/* * 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/. * */ #include "srslte/asn1/rrc_asn1.h" #include using namespace asn1; using namespace asn1::rrc; /******************************************************************************* /* Helper Functions /******************************************************************************/ #define rrc_asn1_warn_assert(cond, file, line) \ if ((cond)) { \ rrc_log_print(LOG_LEVEL_WARN, "Assertion in [%s][%d] failed.\n", (file), (line)); \ } static void log_invalid_choice_id(uint32_t val, const char* choice_type) { rrc_log_print(LOG_LEVEL_ERROR, "Invalid choice id=%d for choice type %s\n", val, choice_type); } /******************************************************************************* /* Struct Methods /******************************************************************************/ // PHICH-Config ::= SEQUENCE SRSASN_CODE phich_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, phich_dur)); HANDLE_CODE(pack_enum(bref, phich_res)); return SRSASN_SUCCESS; } SRSASN_CODE phich_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(phich_dur, bref)); HANDLE_CODE(unpack_enum(phich_res, bref)); return SRSASN_SUCCESS; } void phich_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("phich-Duration", phich_dur.to_string()); j.write_str("phich-Resource", phich_res.to_string()); j.end_obj(); } // MasterInformationBlock ::= SEQUENCE SRSASN_CODE mib_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, dl_bw)); HANDLE_CODE(phich_cfg.pack(bref)); HANDLE_CODE(sys_frame_num.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, sched_info_sib1_br_r13, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(bref.pack(sys_info_unchanged_br_r15, 1)); HANDLE_CODE(spare.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mib_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(dl_bw, bref)); HANDLE_CODE(phich_cfg.unpack(bref)); HANDLE_CODE(sys_frame_num.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(sched_info_sib1_br_r13, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(bref.unpack(sys_info_unchanged_br_r15, 1)); HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } void mib_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("dl-Bandwidth", dl_bw.to_string()); j.write_fieldname("phich-Config"); phich_cfg.to_json(j); j.write_str("systemFrameNumber", sys_frame_num.to_string()); j.write_int("schedulingInfoSIB1-BR-r13", sched_info_sib1_br_r13); j.write_bool("systemInfoUnchanged-BR-r15", sys_info_unchanged_br_r15); j.write_str("spare", spare.to_string()); j.end_obj(); } // BCCH-BCH-Message ::= SEQUENCE SRSASN_CODE bcch_bch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE bcch_bch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void bcch_bch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("BCCH-BCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // MasterInformationBlock-MBMS-r14 ::= SEQUENCE SRSASN_CODE mib_mbms_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, dl_bw_mbms_r14)); HANDLE_CODE(sys_frame_num_r14.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, add_non_mbsfn_sfs_r14, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(spare.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mib_mbms_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(dl_bw_mbms_r14, bref)); HANDLE_CODE(sys_frame_num_r14.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(add_non_mbsfn_sfs_r14, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } void mib_mbms_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("dl-Bandwidth-MBMS-r14", dl_bw_mbms_r14.to_string()); j.write_str("systemFrameNumber-r14", sys_frame_num_r14.to_string()); j.write_int("additionalNonMBSFNSubframes-r14", add_non_mbsfn_sfs_r14); j.write_str("spare", spare.to_string()); j.end_obj(); } // BCCH-BCH-Message-MBMS ::= SEQUENCE SRSASN_CODE bcch_bch_msg_mbms_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE bcch_bch_msg_mbms_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void bcch_bch_msg_mbms_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("BCCH-BCH-Message-MBMS"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // GNSS-ID-r15 ::= SEQUENCE SRSASN_CODE gnss_id_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, gnss_id_r15)); return SRSASN_SUCCESS; } SRSASN_CODE gnss_id_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(gnss_id_r15, bref)); return SRSASN_SUCCESS; } void gnss_id_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("gnss-id-r15", gnss_id_r15.to_string()); j.end_obj(); } // SBAS-ID-r15 ::= SEQUENCE SRSASN_CODE sbas_id_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, sbas_id_r15)); return SRSASN_SUCCESS; } SRSASN_CODE sbas_id_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(sbas_id_r15, bref)); return SRSASN_SUCCESS; } void sbas_id_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sbas-id-r15", sbas_id_r15.to_string()); j.end_obj(); } // PLMN-Identity ::= SEQUENCE SRSASN_CODE plmn_id_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mcc_present, 1)); if (mcc_present) { HANDLE_CODE(pack_fixed_seq_of(bref, &(mcc)[0], mcc.size(), UnalignedIntegerPacker(0, 9))); } HANDLE_CODE(pack_dyn_seq_of(bref, mnc, 2, 3, UnalignedIntegerPacker(0, 9))); return SRSASN_SUCCESS; } SRSASN_CODE plmn_id_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mcc_present, 1)); if (mcc_present) { HANDLE_CODE(unpack_fixed_seq_of(&(mcc)[0], bref, mcc.size(), UnalignedIntegerPacker(0, 9))); } HANDLE_CODE(unpack_dyn_seq_of(mnc, bref, 2, 3, UnalignedIntegerPacker(0, 9))); return SRSASN_SUCCESS; } void plmn_id_s::to_json(json_writer& j) const { j.start_obj(); if (mcc_present) { j.start_array("mcc"); for (uint32_t i1 = 0; i1 < mcc.size(); ++i1) { j.write_int(mcc[i1]); } j.end_array(); } j.start_array("mnc"); for (uint32_t i1 = 0; i1 < mnc.size(); ++i1) { j.write_int(mnc[i1]); } j.end_array(); j.end_obj(); } // PosSIB-Type-r15 ::= SEQUENCE SRSASN_CODE pos_sib_type_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(encrypted_r15_present, 1)); HANDLE_CODE(bref.pack(gnss_id_r15_present, 1)); HANDLE_CODE(bref.pack(sbas_id_r15_present, 1)); if (gnss_id_r15_present) { HANDLE_CODE(gnss_id_r15.pack(bref)); } if (sbas_id_r15_present) { HANDLE_CODE(sbas_id_r15.pack(bref)); } HANDLE_CODE(pack_enum(bref, pos_sib_type_r15)); return SRSASN_SUCCESS; } SRSASN_CODE pos_sib_type_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(encrypted_r15_present, 1)); HANDLE_CODE(bref.unpack(gnss_id_r15_present, 1)); HANDLE_CODE(bref.unpack(sbas_id_r15_present, 1)); if (gnss_id_r15_present) { HANDLE_CODE(gnss_id_r15.unpack(bref)); } if (sbas_id_r15_present) { HANDLE_CODE(sbas_id_r15.unpack(bref)); } HANDLE_CODE(unpack_enum(pos_sib_type_r15, bref)); return SRSASN_SUCCESS; } void pos_sib_type_r15_s::to_json(json_writer& j) const { j.start_obj(); if (encrypted_r15_present) { j.write_str("encrypted-r15", "true"); } if (gnss_id_r15_present) { j.write_fieldname("gnss-id-r15"); gnss_id_r15.to_json(j); } if (sbas_id_r15_present) { j.write_fieldname("sbas-id-r15"); sbas_id_r15.to_json(j); } j.write_str("posSibType-r15", pos_sib_type_r15.to_string()); j.end_obj(); } // PLMN-IdentityInfo-r15 ::= SEQUENCE SRSASN_CODE plmn_id_info_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(plmn_id_minus5_gc_r15.pack(bref)); HANDLE_CODE(pack_enum(bref, cell_reserved_for_oper_r15)); HANDLE_CODE(pack_enum(bref, cell_reserved_for_oper_crs_r15)); return SRSASN_SUCCESS; } SRSASN_CODE plmn_id_info_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(plmn_id_minus5_gc_r15.unpack(bref)); HANDLE_CODE(unpack_enum(cell_reserved_for_oper_r15, bref)); HANDLE_CODE(unpack_enum(cell_reserved_for_oper_crs_r15, bref)); return SRSASN_SUCCESS; } void plmn_id_info_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("plmn-Identity-5GC-r15"); plmn_id_minus5_gc_r15.to_json(j); j.write_str("cellReservedForOperatorUse-r15", cell_reserved_for_oper_r15.to_string()); j.write_str("cellReservedForOperatorUse-CRS-r15", cell_reserved_for_oper_crs_r15.to_string()); j.end_obj(); } void plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::destroy_() { switch (type_) { case types::plmn_id_r15: c.destroy(); break; default: break; } } void plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::plmn_id_r15: c.init(); break; case types::plmn_idx_r15: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_"); } } plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::plmn_id_minus5_gc_r15_c_( const plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_& other) { type_ = other.type(); switch (type_) { case types::plmn_id_r15: c.init(other.c.get()); break; case types::plmn_idx_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_"); } } plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_& plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_:: operator=(const plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::plmn_id_r15: c.set(other.c.get()); break; case types::plmn_idx_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_"); } return *this; } void plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::plmn_id_r15: j.write_fieldname("plmn-Identity-r15"); c.get().to_json(j); break; case types::plmn_idx_r15: j.write_int("plmn-Index-r15", c.get()); break; default: log_invalid_choice_id(type_, "plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_"); } j.end_obj(); } SRSASN_CODE plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::plmn_id_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::plmn_idx_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)6)); break; default: log_invalid_choice_id(type_, "plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::plmn_id_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::plmn_idx_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)6)); break; default: log_invalid_choice_id(type_, "plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CellIdentity-5GC-r15 ::= CHOICE void cell_id_minus5_gc_r15_c::destroy_() { switch (type_) { case types::cell_id_r15: c.destroy >(); break; default: break; } } void cell_id_minus5_gc_r15_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cell_id_r15: c.init >(); break; case types::cell_id_idx_r15: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cell_id_minus5_gc_r15_c"); } } cell_id_minus5_gc_r15_c::cell_id_minus5_gc_r15_c(const cell_id_minus5_gc_r15_c& other) { type_ = other.type(); switch (type_) { case types::cell_id_r15: c.init(other.c.get >()); break; case types::cell_id_idx_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cell_id_minus5_gc_r15_c"); } } cell_id_minus5_gc_r15_c& cell_id_minus5_gc_r15_c::operator=(const cell_id_minus5_gc_r15_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cell_id_r15: c.set(other.c.get >()); break; case types::cell_id_idx_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cell_id_minus5_gc_r15_c"); } return *this; } void cell_id_minus5_gc_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cell_id_r15: j.write_str("cellIdentity-r15", c.get >().to_string()); break; case types::cell_id_idx_r15: j.write_int("cellId-Index-r15", c.get()); break; default: log_invalid_choice_id(type_, "cell_id_minus5_gc_r15_c"); } j.end_obj(); } SRSASN_CODE cell_id_minus5_gc_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cell_id_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::cell_id_idx_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)6)); break; default: log_invalid_choice_id(type_, "cell_id_minus5_gc_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cell_id_minus5_gc_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cell_id_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::cell_id_idx_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)6)); break; default: log_invalid_choice_id(type_, "cell_id_minus5_gc_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PLMN-IdentityInfo-v1530 ::= SEQUENCE SRSASN_CODE plmn_id_info_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, cell_reserved_for_oper_crs_r15)); return SRSASN_SUCCESS; } SRSASN_CODE plmn_id_info_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(cell_reserved_for_oper_crs_r15, bref)); return SRSASN_SUCCESS; } void plmn_id_info_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cellReservedForOperatorUse-CRS-r15", cell_reserved_for_oper_crs_r15.to_string()); j.end_obj(); } // PosSchedulingInfo-r15 ::= SEQUENCE SRSASN_CODE pos_sched_info_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, pos_si_periodicity_r15)); HANDLE_CODE(pack_dyn_seq_of(bref, pos_sib_map_info_r15, 1, 32)); return SRSASN_SUCCESS; } SRSASN_CODE pos_sched_info_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(pos_si_periodicity_r15, bref)); HANDLE_CODE(unpack_dyn_seq_of(pos_sib_map_info_r15, bref, 1, 32)); return SRSASN_SUCCESS; } void pos_sched_info_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("posSI-Periodicity-r15", pos_si_periodicity_r15.to_string()); j.start_array("posSIB-MappingInfo-r15"); for (uint32_t i1 = 0; i1 < pos_sib_map_info_r15.size(); ++i1) { pos_sib_map_info_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } // CellAccessRelatedInfo-5GC-r15 ::= SEQUENCE SRSASN_CODE cell_access_related_info_minus5_gc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ran_area_code_r15_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r15, 1, 6)); if (ran_area_code_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, ran_area_code_r15, (uint8_t)0, (uint8_t)255)); } HANDLE_CODE(tac_minus5_gc_r15.pack(bref)); HANDLE_CODE(cell_id_minus5_gc_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_access_related_info_minus5_gc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ran_area_code_r15_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r15, bref, 1, 6)); if (ran_area_code_r15_present) { HANDLE_CODE(unpack_unalign_integer(ran_area_code_r15, bref, (uint8_t)0, (uint8_t)255)); } HANDLE_CODE(tac_minus5_gc_r15.unpack(bref)); HANDLE_CODE(cell_id_minus5_gc_r15.unpack(bref)); return SRSASN_SUCCESS; } void cell_access_related_info_minus5_gc_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("plmn-IdentityList-r15"); for (uint32_t i1 = 0; i1 < plmn_id_list_r15.size(); ++i1) { plmn_id_list_r15[i1].to_json(j); } j.end_array(); if (ran_area_code_r15_present) { j.write_int("ran-AreaCode-r15", ran_area_code_r15); } j.write_str("trackingAreaCode-5GC-r15", tac_minus5_gc_r15.to_string()); j.write_fieldname("cellIdentity-5GC-r15"); cell_id_minus5_gc_r15.to_json(j); j.end_obj(); } // CellSelectionInfoCE-v1530 ::= SEQUENCE SRSASN_CODE cell_sel_info_ce_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, pwr_class14dbm_offset_r15)); return SRSASN_SUCCESS; } SRSASN_CODE cell_sel_info_ce_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(pwr_class14dbm_offset_r15, bref)); return SRSASN_SUCCESS; } void cell_sel_info_ce_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("powerClass14dBm-Offset-r15", pwr_class14dbm_offset_r15.to_string()); j.end_obj(); } // MCS-PSSCH-Range-r15 ::= SEQUENCE SRSASN_CODE mcs_pssch_range_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, min_mcs_pssch_r15, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, max_mcs_pssch_r15, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } SRSASN_CODE mcs_pssch_range_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(min_mcs_pssch_r15, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(max_mcs_pssch_r15, bref, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } void mcs_pssch_range_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("minMCS-PSSCH-r15", min_mcs_pssch_r15); j.write_int("maxMCS-PSSCH-r15", max_mcs_pssch_r15); j.end_obj(); } // PLMN-IdentityInfo ::= SEQUENCE SRSASN_CODE plmn_id_info_s::pack(bit_ref& bref) const { HANDLE_CODE(plmn_id.pack(bref)); HANDLE_CODE(pack_enum(bref, cell_reserved_for_oper)); return SRSASN_SUCCESS; } SRSASN_CODE plmn_id_info_s::unpack(bit_ref& bref) { HANDLE_CODE(plmn_id.unpack(bref)); HANDLE_CODE(unpack_enum(cell_reserved_for_oper, bref)); return SRSASN_SUCCESS; } void plmn_id_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("plmn-Identity"); plmn_id.to_json(j); j.write_str("cellReservedForOperatorUse", cell_reserved_for_oper.to_string()); j.end_obj(); } // SL-TxPower-r14 ::= CHOICE void sl_tx_pwr_r14_c::set(types::options e) { type_ = e; } void sl_tx_pwr_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::minusinfinity_r14: break; case types::tx_pwr_r14: j.write_int("txPower-r14", c); break; default: log_invalid_choice_id(type_, "sl_tx_pwr_r14_c"); } j.end_obj(); } SRSASN_CODE sl_tx_pwr_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::minusinfinity_r14: break; case types::tx_pwr_r14: HANDLE_CODE(pack_unalign_integer(bref, c, (int8_t)-41, (int8_t)31)); break; default: log_invalid_choice_id(type_, "sl_tx_pwr_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_tx_pwr_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::minusinfinity_r14: break; case types::tx_pwr_r14: HANDLE_CODE(unpack_unalign_integer(c, bref, (int8_t)-41, (int8_t)31)); break; default: log_invalid_choice_id(type_, "sl_tx_pwr_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-MinT2Value-r15 ::= SEQUENCE SRSASN_CODE sl_min_t2_value_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, prio_list_r15, 1, 8, UnalignedIntegerPacker(1, 8))); HANDLE_CODE(pack_unalign_integer(bref, min_t2_value_r15, (uint8_t)10, (uint8_t)20)); return SRSASN_SUCCESS; } SRSASN_CODE sl_min_t2_value_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(prio_list_r15, bref, 1, 8, UnalignedIntegerPacker(1, 8))); HANDLE_CODE(unpack_unalign_integer(min_t2_value_r15, bref, (uint8_t)10, (uint8_t)20)); return SRSASN_SUCCESS; } void sl_min_t2_value_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("priorityList-r15"); for (uint32_t i1 = 0; i1 < prio_list_r15.size(); ++i1) { j.write_int(prio_list_r15[i1]); } j.end_array(); j.write_int("minT2Value-r15", min_t2_value_r15); j.end_obj(); } // SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE SRSASN_CODE sl_pppp_tx_cfg_idx_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, prio_thres_r14, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pack_unalign_integer(bref, default_tx_cfg_idx_r14, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, cbr_cfg_idx_r14, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_dyn_seq_of(bref, tx_cfg_idx_list_r14, 1, 16, UnalignedIntegerPacker(0, 63))); return SRSASN_SUCCESS; } SRSASN_CODE sl_pppp_tx_cfg_idx_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(prio_thres_r14, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_unalign_integer(default_tx_cfg_idx_r14, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(cbr_cfg_idx_r14, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_dyn_seq_of(tx_cfg_idx_list_r14, bref, 1, 16, UnalignedIntegerPacker(0, 63))); return SRSASN_SUCCESS; } void sl_pppp_tx_cfg_idx_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("priorityThreshold-r14", prio_thres_r14); j.write_int("defaultTxConfigIndex-r14", default_tx_cfg_idx_r14); j.write_int("cbr-ConfigIndex-r14", cbr_cfg_idx_r14); j.start_array("tx-ConfigIndexList-r14"); for (uint32_t i1 = 0; i1 < tx_cfg_idx_list_r14.size(); ++i1) { j.write_int(tx_cfg_idx_list_r14[i1]); } j.end_array(); j.end_obj(); } // SL-PPPP-TxConfigIndex-v1530 ::= SEQUENCE SRSASN_CODE sl_pppp_tx_cfg_idx_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mcs_pssch_range_list_r15_present, 1)); if (mcs_pssch_range_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mcs_pssch_range_list_r15, 1, 16)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_pppp_tx_cfg_idx_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mcs_pssch_range_list_r15_present, 1)); if (mcs_pssch_range_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(mcs_pssch_range_list_r15, bref, 1, 16)); } return SRSASN_SUCCESS; } void sl_pppp_tx_cfg_idx_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (mcs_pssch_range_list_r15_present) { j.start_array("mcs-PSSCH-RangeList-r15"); for (uint32_t i1 = 0; i1 < mcs_pssch_range_list_r15.size(); ++i1) { mcs_pssch_range_list_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SL-PSSCH-TxParameters-r14 ::= SEQUENCE SRSASN_CODE sl_pssch_tx_params_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(max_tx_pwr_r14_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, min_mcs_pssch_r14, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, max_mcs_pssch_r14, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, min_sub_ch_num_pssch_r14, (uint8_t)1, (uint8_t)20)); HANDLE_CODE(pack_unalign_integer(bref, max_subch_num_pssch_r14, (uint8_t)1, (uint8_t)20)); HANDLE_CODE(pack_enum(bref, allowed_retx_num_pssch_r14)); if (max_tx_pwr_r14_present) { HANDLE_CODE(max_tx_pwr_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_pssch_tx_params_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(max_tx_pwr_r14_present, 1)); HANDLE_CODE(unpack_unalign_integer(min_mcs_pssch_r14, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(max_mcs_pssch_r14, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(min_sub_ch_num_pssch_r14, bref, (uint8_t)1, (uint8_t)20)); HANDLE_CODE(unpack_unalign_integer(max_subch_num_pssch_r14, bref, (uint8_t)1, (uint8_t)20)); HANDLE_CODE(unpack_enum(allowed_retx_num_pssch_r14, bref)); if (max_tx_pwr_r14_present) { HANDLE_CODE(max_tx_pwr_r14.unpack(bref)); } return SRSASN_SUCCESS; } void sl_pssch_tx_params_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("minMCS-PSSCH-r14", min_mcs_pssch_r14); j.write_int("maxMCS-PSSCH-r14", max_mcs_pssch_r14); j.write_int("minSubChannel-NumberPSSCH-r14", min_sub_ch_num_pssch_r14); j.write_int("maxSubchannel-NumberPSSCH-r14", max_subch_num_pssch_r14); j.write_str("allowedRetxNumberPSSCH-r14", allowed_retx_num_pssch_r14.to_string()); if (max_tx_pwr_r14_present) { j.write_fieldname("maxTxPower-r14"); max_tx_pwr_r14.to_json(j); } j.end_obj(); } // SL-PSSCH-TxParameters-v1530 ::= SEQUENCE SRSASN_CODE sl_pssch_tx_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, min_mcs_pssch_r15, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, max_mcs_pssch_r15, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } SRSASN_CODE sl_pssch_tx_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(min_mcs_pssch_r15, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(max_mcs_pssch_r15, bref, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } void sl_pssch_tx_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("minMCS-PSSCH-r15", min_mcs_pssch_r15); j.write_int("maxMCS-PSSCH-r15", max_mcs_pssch_r15); j.end_obj(); } // SystemInformationBlockType1-v1530-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(hsdn_cell_r15_present, 1)); HANDLE_CODE(bref.pack(cell_sel_info_ce_v1530_present, 1)); HANDLE_CODE(bref.pack(crs_intf_mitig_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(plmn_id_list_v1530_present, 1)); HANDLE_CODE(bref.pack(pos_sched_info_list_r15_present, 1)); HANDLE_CODE(bref.pack(cell_access_related_info_minus5_gc_r15_present, 1)); HANDLE_CODE(bref.pack(ims_emergency_support5_gc_r15_present, 1)); HANDLE_CODE(bref.pack(e_call_over_ims_support5_gc_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (cell_sel_info_ce_v1530_present) { HANDLE_CODE(cell_sel_info_ce_v1530.pack(bref)); } if (crs_intf_mitig_cfg_r15_present) { HANDLE_CODE(crs_intf_mitig_cfg_r15.pack(bref)); } HANDLE_CODE(pack_enum(bref, cell_barred_crs_r15)); if (plmn_id_list_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_v1530, 1, 6)); } if (pos_sched_info_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, pos_sched_info_list_r15, 1, 32)); } if (cell_access_related_info_minus5_gc_r15_present) { HANDLE_CODE(pack_enum(bref, cell_access_related_info_minus5_gc_r15.cell_barred_minus5_gc_r15)); HANDLE_CODE(pack_enum(bref, cell_access_related_info_minus5_gc_r15.cell_barred_minus5_gc_crs_r15)); HANDLE_CODE(pack_dyn_seq_of( bref, cell_access_related_info_minus5_gc_r15.cell_access_related_info_list_minus5_gc_r15, 1, 6)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(hsdn_cell_r15_present, 1)); HANDLE_CODE(bref.unpack(cell_sel_info_ce_v1530_present, 1)); HANDLE_CODE(bref.unpack(crs_intf_mitig_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(plmn_id_list_v1530_present, 1)); HANDLE_CODE(bref.unpack(pos_sched_info_list_r15_present, 1)); HANDLE_CODE(bref.unpack(cell_access_related_info_minus5_gc_r15_present, 1)); HANDLE_CODE(bref.unpack(ims_emergency_support5_gc_r15_present, 1)); HANDLE_CODE(bref.unpack(e_call_over_ims_support5_gc_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (cell_sel_info_ce_v1530_present) { HANDLE_CODE(cell_sel_info_ce_v1530.unpack(bref)); } if (crs_intf_mitig_cfg_r15_present) { HANDLE_CODE(crs_intf_mitig_cfg_r15.unpack(bref)); } HANDLE_CODE(unpack_enum(cell_barred_crs_r15, bref)); if (plmn_id_list_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_v1530, bref, 1, 6)); } if (pos_sched_info_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(pos_sched_info_list_r15, bref, 1, 32)); } if (cell_access_related_info_minus5_gc_r15_present) { HANDLE_CODE(unpack_enum(cell_access_related_info_minus5_gc_r15.cell_barred_minus5_gc_r15, bref)); HANDLE_CODE(unpack_enum(cell_access_related_info_minus5_gc_r15.cell_barred_minus5_gc_crs_r15, bref)); HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info_minus5_gc_r15.cell_access_related_info_list_minus5_gc_r15, bref, 1, 6)); } return SRSASN_SUCCESS; } void sib_type1_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (hsdn_cell_r15_present) { j.write_str("hsdn-Cell-r15", "true"); } if (cell_sel_info_ce_v1530_present) { j.write_fieldname("cellSelectionInfoCE-v1530"); cell_sel_info_ce_v1530.to_json(j); } if (crs_intf_mitig_cfg_r15_present) { j.write_fieldname("crs-IntfMitigConfig-r15"); crs_intf_mitig_cfg_r15.to_json(j); } j.write_str("cellBarred-CRS-r15", cell_barred_crs_r15.to_string()); if (plmn_id_list_v1530_present) { j.start_array("plmn-IdentityList-v1530"); for (uint32_t i1 = 0; i1 < plmn_id_list_v1530.size(); ++i1) { plmn_id_list_v1530[i1].to_json(j); } j.end_array(); } if (pos_sched_info_list_r15_present) { j.start_array("posSchedulingInfoList-r15"); for (uint32_t i1 = 0; i1 < pos_sched_info_list_r15.size(); ++i1) { pos_sched_info_list_r15[i1].to_json(j); } j.end_array(); } if (cell_access_related_info_minus5_gc_r15_present) { j.write_fieldname("cellAccessRelatedInfo-5GC-r15"); j.start_obj(); j.write_str("cellBarred-5GC-r15", cell_access_related_info_minus5_gc_r15.cell_barred_minus5_gc_r15.to_string()); j.write_str("cellBarred-5GC-CRS-r15", cell_access_related_info_minus5_gc_r15.cell_barred_minus5_gc_crs_r15.to_string()); j.start_array("cellAccessRelatedInfoList-5GC-r15"); for (uint32_t i1 = 0; i1 < cell_access_related_info_minus5_gc_r15.cell_access_related_info_list_minus5_gc_r15.size(); ++i1) { cell_access_related_info_minus5_gc_r15.cell_access_related_info_list_minus5_gc_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } if (ims_emergency_support5_gc_r15_present) { j.write_str("ims-EmergencySupport5GC-r15", "true"); } if (e_call_over_ims_support5_gc_r15_present) { j.write_str("eCallOverIMS-Support5GC-r15", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } void sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::set(types::options e) { type_ = e; } void sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::crs_intf_mitig_enabled_minus15: break; case types::crs_intf_mitig_num_prbs_r15: j.write_str("crs-IntfMitigNumPRBs-r15", c.to_string()); break; default: log_invalid_choice_id(type_, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::crs_intf_mitig_enabled_minus15: break; case types::crs_intf_mitig_num_prbs_r15: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::crs_intf_mitig_enabled_minus15: break; case types::crs_intf_mitig_num_prbs_r15: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // TDD-Config-v1450 ::= SEQUENCE SRSASN_CODE tdd_cfg_v1450_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE tdd_cfg_v1450_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void tdd_cfg_v1450_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("specialSubframePatterns-v1450", "ssp10-CRS-LessDwPTS"); j.end_obj(); } // CellAccessRelatedInfo-r14 ::= SEQUENCE SRSASN_CODE cell_access_related_info_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r14, 1, 6)); HANDLE_CODE(tac_r14.pack(bref)); HANDLE_CODE(cell_id_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_access_related_info_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r14, bref, 1, 6)); HANDLE_CODE(tac_r14.unpack(bref)); HANDLE_CODE(cell_id_r14.unpack(bref)); return SRSASN_SUCCESS; } void cell_access_related_info_r14_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("plmn-IdentityList-r14"); for (uint32_t i1 = 0; i1 < plmn_id_list_r14.size(); ++i1) { plmn_id_list_r14[i1].to_json(j); } j.end_array(); j.write_str("trackingAreaCode-r14", tac_r14.to_string()); j.write_str("cellIdentity-r14", cell_id_r14.to_string()); j.end_obj(); } // CellSelectionInfoCE1-v1360 ::= SEQUENCE SRSASN_CODE cell_sel_info_ce1_v1360_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, delta_rx_lev_min_ce1_v1360, (int8_t)-8, (int8_t)-1)); return SRSASN_SUCCESS; } SRSASN_CODE cell_sel_info_ce1_v1360_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(delta_rx_lev_min_ce1_v1360, bref, (int8_t)-8, (int8_t)-1)); return SRSASN_SUCCESS; } void cell_sel_info_ce1_v1360_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("delta-RxLevMinCE1-v1360", delta_rx_lev_min_ce1_v1360); j.end_obj(); } // NS-PmaxValue-v10l0 ::= SEQUENCE SRSASN_CODE ns_pmax_value_v10l0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(add_spec_emission_v10l0_present, 1)); if (add_spec_emission_v10l0_present) { HANDLE_CODE(pack_unalign_integer(bref, add_spec_emission_v10l0, (uint16_t)33, (uint16_t)288)); } return SRSASN_SUCCESS; } SRSASN_CODE ns_pmax_value_v10l0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(add_spec_emission_v10l0_present, 1)); if (add_spec_emission_v10l0_present) { HANDLE_CODE(unpack_unalign_integer(add_spec_emission_v10l0, bref, (uint16_t)33, (uint16_t)288)); } return SRSASN_SUCCESS; } void ns_pmax_value_v10l0_s::to_json(json_writer& j) const { j.start_obj(); if (add_spec_emission_v10l0_present) { j.write_int("additionalSpectrumEmission-v10l0", add_spec_emission_v10l0); } j.end_obj(); } // SL-OffsetIndicator-r12 ::= CHOICE void sl_offset_ind_r12_c::destroy_() {} void sl_offset_ind_r12_c::set(types::options e) { destroy_(); type_ = e; } sl_offset_ind_r12_c::sl_offset_ind_r12_c(const sl_offset_ind_r12_c& other) { type_ = other.type(); switch (type_) { case types::small_r12: c.init(other.c.get()); break; case types::large_r12: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_offset_ind_r12_c"); } } sl_offset_ind_r12_c& sl_offset_ind_r12_c::operator=(const sl_offset_ind_r12_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::small_r12: c.set(other.c.get()); break; case types::large_r12: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_offset_ind_r12_c"); } return *this; } void sl_offset_ind_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::small_r12: j.write_int("small-r12", c.get()); break; case types::large_r12: j.write_int("large-r12", c.get()); break; default: log_invalid_choice_id(type_, "sl_offset_ind_r12_c"); } j.end_obj(); } SRSASN_CODE sl_offset_ind_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::small_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::large_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)10239)); break; default: log_invalid_choice_id(type_, "sl_offset_ind_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_offset_ind_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::small_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::large_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)10239)); break; default: log_invalid_choice_id(type_, "sl_offset_ind_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE SRSASN_CODE sl_p2_x_res_sel_cfg_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(partial_sensing_r14_present, 1)); HANDLE_CODE(bref.pack(random_sel_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE sl_p2_x_res_sel_cfg_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(partial_sensing_r14_present, 1)); HANDLE_CODE(bref.unpack(random_sel_r14_present, 1)); return SRSASN_SUCCESS; } void sl_p2_x_res_sel_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); if (partial_sensing_r14_present) { j.write_str("partialSensing-r14", "true"); } if (random_sel_r14_present) { j.write_str("randomSelection-r14", "true"); } j.end_obj(); } // SL-PSSCH-TxConfig-r14 ::= SEQUENCE SRSASN_CODE sl_pssch_tx_cfg_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(type_tx_sync_r14_present, 1)); if (type_tx_sync_r14_present) { HANDLE_CODE(pack_enum(bref, type_tx_sync_r14)); } HANDLE_CODE(pack_enum(bref, thres_ue_speed_r14)); HANDLE_CODE(params_above_thres_r14.pack(bref)); HANDLE_CODE(params_below_thres_r14.pack(bref)); if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(params_above_thres_v1530_present != (params_above_thres_v1530.get() != NULL), __FILE__, __LINE__); group_flags[0] |= params_above_thres_v1530_present; rrc_asn1_warn_assert(params_below_thres_v1530_present != (params_below_thres_v1530.get() != NULL), __FILE__, __LINE__); group_flags[0] |= params_below_thres_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(params_above_thres_v1530_present, 1)); HANDLE_CODE(bref.pack(params_below_thres_v1530_present, 1)); if (params_above_thres_v1530_present) { HANDLE_CODE(params_above_thres_v1530->pack(bref)); } if (params_below_thres_v1530_present) { HANDLE_CODE(params_below_thres_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_pssch_tx_cfg_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(type_tx_sync_r14_present, 1)); if (type_tx_sync_r14_present) { HANDLE_CODE(unpack_enum(type_tx_sync_r14, bref)); } HANDLE_CODE(unpack_enum(thres_ue_speed_r14, bref)); HANDLE_CODE(params_above_thres_r14.unpack(bref)); HANDLE_CODE(params_below_thres_r14.unpack(bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(params_above_thres_v1530_present, 1)); HANDLE_CODE(bref.unpack(params_below_thres_v1530_present, 1)); if (params_above_thres_v1530_present) { params_above_thres_v1530 = make_copy_ptr(sl_pssch_tx_params_v1530_s()); HANDLE_CODE(params_above_thres_v1530->unpack(bref)); } if (params_below_thres_v1530_present) { params_below_thres_v1530 = make_copy_ptr(sl_pssch_tx_params_v1530_s()); HANDLE_CODE(params_below_thres_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void sl_pssch_tx_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); if (type_tx_sync_r14_present) { j.write_str("typeTxSync-r14", type_tx_sync_r14.to_string()); } j.write_str("thresUE-Speed-r14", thres_ue_speed_r14.to_string()); j.write_fieldname("parametersAboveThres-r14"); params_above_thres_r14.to_json(j); j.write_fieldname("parametersBelowThres-r14"); params_below_thres_r14.to_json(j); if (ext) { rrc_asn1_warn_assert(params_above_thres_v1530_present != (params_above_thres_v1530.get() != NULL), __FILE__, __LINE__); if (params_above_thres_v1530_present) { j.write_fieldname("parametersAboveThres-v1530"); params_above_thres_v1530->to_json(j); } rrc_asn1_warn_assert(params_below_thres_v1530_present != (params_below_thres_v1530.get() != NULL), __FILE__, __LINE__); if (params_below_thres_v1530_present) { j.write_fieldname("parametersBelowThres-v1530"); params_below_thres_v1530->to_json(j); } } j.end_obj(); } // SL-SyncAllowed-r14 ::= SEQUENCE SRSASN_CODE sl_sync_allowed_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(gnss_sync_r14_present, 1)); HANDLE_CODE(bref.pack(enb_sync_r14_present, 1)); HANDLE_CODE(bref.pack(ue_sync_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE sl_sync_allowed_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(gnss_sync_r14_present, 1)); HANDLE_CODE(bref.unpack(enb_sync_r14_present, 1)); HANDLE_CODE(bref.unpack(ue_sync_r14_present, 1)); return SRSASN_SUCCESS; } void sl_sync_allowed_r14_s::to_json(json_writer& j) const { j.start_obj(); if (gnss_sync_r14_present) { j.write_str("gnss-Sync-r14", "true"); } if (enb_sync_r14_present) { j.write_str("enb-Sync-r14", "true"); } if (ue_sync_r14_present) { j.write_str("ue-Sync-r14", "true"); } j.end_obj(); } // SL-TxParameters-r12 ::= SEQUENCE SRSASN_CODE sl_tx_params_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, alpha_r12)); HANDLE_CODE(pack_unalign_integer(bref, p0_r12, (int8_t)-126, (int8_t)31)); return SRSASN_SUCCESS; } SRSASN_CODE sl_tx_params_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(alpha_r12, bref)); HANDLE_CODE(unpack_unalign_integer(p0_r12, bref, (int8_t)-126, (int8_t)31)); return SRSASN_SUCCESS; } void sl_tx_params_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("alpha-r12", alpha_r12.to_string()); j.write_int("p0-r12", p0_r12); j.end_obj(); } // SubframeBitmapSL-r12 ::= CHOICE void sf_bitmap_sl_r12_c::destroy_() { switch (type_) { case types::bs4_r12: c.destroy >(); break; case types::bs8_r12: c.destroy >(); break; case types::bs12_r12: c.destroy >(); break; case types::bs16_r12: c.destroy >(); break; case types::bs30_r12: c.destroy >(); break; case types::bs40_r12: c.destroy >(); break; case types::bs42_r12: c.destroy >(); break; default: break; } } void sf_bitmap_sl_r12_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::bs4_r12: c.init >(); break; case types::bs8_r12: c.init >(); break; case types::bs12_r12: c.init >(); break; case types::bs16_r12: c.init >(); break; case types::bs30_r12: c.init >(); break; case types::bs40_r12: c.init >(); break; case types::bs42_r12: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r12_c"); } } sf_bitmap_sl_r12_c::sf_bitmap_sl_r12_c(const sf_bitmap_sl_r12_c& other) { type_ = other.type(); switch (type_) { case types::bs4_r12: c.init(other.c.get >()); break; case types::bs8_r12: c.init(other.c.get >()); break; case types::bs12_r12: c.init(other.c.get >()); break; case types::bs16_r12: c.init(other.c.get >()); break; case types::bs30_r12: c.init(other.c.get >()); break; case types::bs40_r12: c.init(other.c.get >()); break; case types::bs42_r12: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r12_c"); } } sf_bitmap_sl_r12_c& sf_bitmap_sl_r12_c::operator=(const sf_bitmap_sl_r12_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::bs4_r12: c.set(other.c.get >()); break; case types::bs8_r12: c.set(other.c.get >()); break; case types::bs12_r12: c.set(other.c.get >()); break; case types::bs16_r12: c.set(other.c.get >()); break; case types::bs30_r12: c.set(other.c.get >()); break; case types::bs40_r12: c.set(other.c.get >()); break; case types::bs42_r12: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r12_c"); } return *this; } void sf_bitmap_sl_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::bs4_r12: j.write_str("bs4-r12", c.get >().to_string()); break; case types::bs8_r12: j.write_str("bs8-r12", c.get >().to_string()); break; case types::bs12_r12: j.write_str("bs12-r12", c.get >().to_string()); break; case types::bs16_r12: j.write_str("bs16-r12", c.get >().to_string()); break; case types::bs30_r12: j.write_str("bs30-r12", c.get >().to_string()); break; case types::bs40_r12: j.write_str("bs40-r12", c.get >().to_string()); break; case types::bs42_r12: j.write_str("bs42-r12", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r12_c"); } j.end_obj(); } SRSASN_CODE sf_bitmap_sl_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::bs4_r12: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs8_r12: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs12_r12: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs16_r12: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs30_r12: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs40_r12: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs42_r12: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sf_bitmap_sl_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::bs4_r12: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs8_r12: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs12_r12: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs16_r12: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs30_r12: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs40_r12: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs42_r12: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SubframeBitmapSL-r14 ::= CHOICE void sf_bitmap_sl_r14_c::destroy_() { switch (type_) { case types::bs10_r14: c.destroy >(); break; case types::bs16_r14: c.destroy >(); break; case types::bs20_r14: c.destroy >(); break; case types::bs30_r14: c.destroy >(); break; case types::bs40_r14: c.destroy >(); break; case types::bs50_r14: c.destroy >(); break; case types::bs60_r14: c.destroy >(); break; case types::bs100_r14: c.destroy >(); break; default: break; } } void sf_bitmap_sl_r14_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::bs10_r14: c.init >(); break; case types::bs16_r14: c.init >(); break; case types::bs20_r14: c.init >(); break; case types::bs30_r14: c.init >(); break; case types::bs40_r14: c.init >(); break; case types::bs50_r14: c.init >(); break; case types::bs60_r14: c.init >(); break; case types::bs100_r14: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r14_c"); } } sf_bitmap_sl_r14_c::sf_bitmap_sl_r14_c(const sf_bitmap_sl_r14_c& other) { type_ = other.type(); switch (type_) { case types::bs10_r14: c.init(other.c.get >()); break; case types::bs16_r14: c.init(other.c.get >()); break; case types::bs20_r14: c.init(other.c.get >()); break; case types::bs30_r14: c.init(other.c.get >()); break; case types::bs40_r14: c.init(other.c.get >()); break; case types::bs50_r14: c.init(other.c.get >()); break; case types::bs60_r14: c.init(other.c.get >()); break; case types::bs100_r14: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r14_c"); } } sf_bitmap_sl_r14_c& sf_bitmap_sl_r14_c::operator=(const sf_bitmap_sl_r14_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::bs10_r14: c.set(other.c.get >()); break; case types::bs16_r14: c.set(other.c.get >()); break; case types::bs20_r14: c.set(other.c.get >()); break; case types::bs30_r14: c.set(other.c.get >()); break; case types::bs40_r14: c.set(other.c.get >()); break; case types::bs50_r14: c.set(other.c.get >()); break; case types::bs60_r14: c.set(other.c.get >()); break; case types::bs100_r14: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r14_c"); } return *this; } void sf_bitmap_sl_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::bs10_r14: j.write_str("bs10-r14", c.get >().to_string()); break; case types::bs16_r14: j.write_str("bs16-r14", c.get >().to_string()); break; case types::bs20_r14: j.write_str("bs20-r14", c.get >().to_string()); break; case types::bs30_r14: j.write_str("bs30-r14", c.get >().to_string()); break; case types::bs40_r14: j.write_str("bs40-r14", c.get >().to_string()); break; case types::bs50_r14: j.write_str("bs50-r14", c.get >().to_string()); break; case types::bs60_r14: j.write_str("bs60-r14", c.get >().to_string()); break; case types::bs100_r14: j.write_str("bs100-r14", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r14_c"); } j.end_obj(); } SRSASN_CODE sf_bitmap_sl_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::bs10_r14: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs16_r14: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs20_r14: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs30_r14: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs40_r14: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs50_r14: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs60_r14: HANDLE_CODE(c.get >().pack(bref)); break; case types::bs100_r14: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sf_bitmap_sl_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::bs10_r14: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs16_r14: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs20_r14: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs30_r14: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs40_r14: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs50_r14: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs60_r14: HANDLE_CODE(c.get >().unpack(bref)); break; case types::bs100_r14: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "sf_bitmap_sl_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType1-v1450-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1450_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tdd_cfg_v1450_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (tdd_cfg_v1450_present) { HANDLE_CODE(tdd_cfg_v1450.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1450_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tdd_cfg_v1450_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (tdd_cfg_v1450_present) { HANDLE_CODE(tdd_cfg_v1450.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v1450_ies_s::to_json(json_writer& j) const { j.start_obj(); if (tdd_cfg_v1450_present) { j.write_fieldname("tdd-Config-v1450"); tdd_cfg_v1450.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // TDD-Config ::= SEQUENCE SRSASN_CODE tdd_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sf_assign)); HANDLE_CODE(pack_enum(bref, special_sf_patterns)); return SRSASN_SUCCESS; } SRSASN_CODE tdd_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sf_assign, bref)); HANDLE_CODE(unpack_enum(special_sf_patterns, bref)); return SRSASN_SUCCESS; } void tdd_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("subframeAssignment", sf_assign.to_string()); j.write_str("specialSubframePatterns", special_sf_patterns.to_string()); j.end_obj(); } // TDD-Config-v1430 ::= SEQUENCE SRSASN_CODE tdd_cfg_v1430_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE tdd_cfg_v1430_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void tdd_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("specialSubframePatterns-v1430", "ssp10"); j.end_obj(); } // InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v1360_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_sel_info_ce1_v1360_present, 1)); if (cell_sel_info_ce1_v1360_present) { HANDLE_CODE(cell_sel_info_ce1_v1360.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v1360_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_sel_info_ce1_v1360_present, 1)); if (cell_sel_info_ce1_v1360_present) { HANDLE_CODE(cell_sel_info_ce1_v1360.unpack(bref)); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v1360_s::to_json(json_writer& j) const { j.start_obj(); if (cell_sel_info_ce1_v1360_present) { j.write_fieldname("cellSelectionInfoCE1-v1360"); cell_sel_info_ce1_v1360.to_json(j); } j.end_obj(); } // NS-PmaxValue-r10 ::= SEQUENCE SRSASN_CODE ns_pmax_value_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(add_pmax_r10_present, 1)); if (add_pmax_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, add_pmax_r10, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(pack_unalign_integer(bref, add_spec_emission, (uint8_t)1, (uint8_t)32)); return SRSASN_SUCCESS; } SRSASN_CODE ns_pmax_value_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(add_pmax_r10_present, 1)); if (add_pmax_r10_present) { HANDLE_CODE(unpack_unalign_integer(add_pmax_r10, bref, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(unpack_unalign_integer(add_spec_emission, bref, (uint8_t)1, (uint8_t)32)); return SRSASN_SUCCESS; } void ns_pmax_value_r10_s::to_json(json_writer& j) const { j.start_obj(); if (add_pmax_r10_present) { j.write_int("additionalPmax-r10", add_pmax_r10); } j.write_int("additionalSpectrumEmission", add_spec_emission); j.end_obj(); } // SL-CommResourcePoolV2X-r14 ::= SEQUENCE SRSASN_CODE sl_comm_res_pool_v2x_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sl_offset_ind_r14_present, 1)); HANDLE_CODE(bref.pack(start_rb_pscch_pool_r14_present, 1)); HANDLE_CODE(bref.pack(rx_params_ncell_r14_present, 1)); HANDLE_CODE(bref.pack(data_tx_params_r14_present, 1)); HANDLE_CODE(bref.pack(zone_id_r14_present, 1)); HANDLE_CODE(bref.pack(thresh_s_rssi_cbr_r14_present, 1)); HANDLE_CODE(bref.pack(pool_report_id_r14_present, 1)); HANDLE_CODE(bref.pack(cbr_pssch_tx_cfg_list_r14_present, 1)); HANDLE_CODE(bref.pack(res_sel_cfg_p2_x_r14_present, 1)); HANDLE_CODE(bref.pack(sync_allowed_r14_present, 1)); HANDLE_CODE(bref.pack(restrict_res_reserv_period_r14_present, 1)); if (sl_offset_ind_r14_present) { HANDLE_CODE(sl_offset_ind_r14.pack(bref)); } HANDLE_CODE(sl_sf_r14.pack(bref)); HANDLE_CODE(bref.pack(adjacency_pscch_pssch_r14, 1)); HANDLE_CODE(pack_enum(bref, size_subch_r14)); HANDLE_CODE(pack_enum(bref, num_subch_r14)); HANDLE_CODE(pack_unalign_integer(bref, start_rb_subch_r14, (uint8_t)0, (uint8_t)99)); if (start_rb_pscch_pool_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, start_rb_pscch_pool_r14, (uint8_t)0, (uint8_t)99)); } if (rx_params_ncell_r14_present) { HANDLE_CODE(bref.pack(rx_params_ncell_r14.tdd_cfg_r14_present, 1)); if (rx_params_ncell_r14.tdd_cfg_r14_present) { HANDLE_CODE(rx_params_ncell_r14.tdd_cfg_r14.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, rx_params_ncell_r14.sync_cfg_idx_r14, (uint8_t)0, (uint8_t)15)); } if (data_tx_params_r14_present) { HANDLE_CODE(data_tx_params_r14.pack(bref)); } if (zone_id_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, zone_id_r14, (uint8_t)0, (uint8_t)7)); } if (thresh_s_rssi_cbr_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_s_rssi_cbr_r14, (uint8_t)0, (uint8_t)45)); } if (pool_report_id_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, pool_report_id_r14, (uint8_t)1, (uint8_t)72)); } if (cbr_pssch_tx_cfg_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cbr_pssch_tx_cfg_list_r14, 1, 8)); } if (res_sel_cfg_p2_x_r14_present) { HANDLE_CODE(res_sel_cfg_p2_x_r14.pack(bref)); } if (sync_allowed_r14_present) { HANDLE_CODE(sync_allowed_r14.pack(bref)); } if (restrict_res_reserv_period_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, restrict_res_reserv_period_r14, 1, 16, EnumPacker())); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(sl_min_t2_value_list_r15_present != (sl_min_t2_value_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= sl_min_t2_value_list_r15_present; rrc_asn1_warn_assert(cbr_pssch_tx_cfg_list_v1530_present != (cbr_pssch_tx_cfg_list_v1530.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cbr_pssch_tx_cfg_list_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sl_min_t2_value_list_r15_present, 1)); HANDLE_CODE(bref.pack(cbr_pssch_tx_cfg_list_v1530_present, 1)); if (sl_min_t2_value_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *sl_min_t2_value_list_r15, 1, 8)); } if (cbr_pssch_tx_cfg_list_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *cbr_pssch_tx_cfg_list_v1530, 1, 8)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_res_pool_v2x_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sl_offset_ind_r14_present, 1)); HANDLE_CODE(bref.unpack(start_rb_pscch_pool_r14_present, 1)); HANDLE_CODE(bref.unpack(rx_params_ncell_r14_present, 1)); HANDLE_CODE(bref.unpack(data_tx_params_r14_present, 1)); HANDLE_CODE(bref.unpack(zone_id_r14_present, 1)); HANDLE_CODE(bref.unpack(thresh_s_rssi_cbr_r14_present, 1)); HANDLE_CODE(bref.unpack(pool_report_id_r14_present, 1)); HANDLE_CODE(bref.unpack(cbr_pssch_tx_cfg_list_r14_present, 1)); HANDLE_CODE(bref.unpack(res_sel_cfg_p2_x_r14_present, 1)); HANDLE_CODE(bref.unpack(sync_allowed_r14_present, 1)); HANDLE_CODE(bref.unpack(restrict_res_reserv_period_r14_present, 1)); if (sl_offset_ind_r14_present) { HANDLE_CODE(sl_offset_ind_r14.unpack(bref)); } HANDLE_CODE(sl_sf_r14.unpack(bref)); HANDLE_CODE(bref.unpack(adjacency_pscch_pssch_r14, 1)); HANDLE_CODE(unpack_enum(size_subch_r14, bref)); HANDLE_CODE(unpack_enum(num_subch_r14, bref)); HANDLE_CODE(unpack_unalign_integer(start_rb_subch_r14, bref, (uint8_t)0, (uint8_t)99)); if (start_rb_pscch_pool_r14_present) { HANDLE_CODE(unpack_unalign_integer(start_rb_pscch_pool_r14, bref, (uint8_t)0, (uint8_t)99)); } if (rx_params_ncell_r14_present) { HANDLE_CODE(bref.unpack(rx_params_ncell_r14.tdd_cfg_r14_present, 1)); if (rx_params_ncell_r14.tdd_cfg_r14_present) { HANDLE_CODE(rx_params_ncell_r14.tdd_cfg_r14.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(rx_params_ncell_r14.sync_cfg_idx_r14, bref, (uint8_t)0, (uint8_t)15)); } if (data_tx_params_r14_present) { HANDLE_CODE(data_tx_params_r14.unpack(bref)); } if (zone_id_r14_present) { HANDLE_CODE(unpack_unalign_integer(zone_id_r14, bref, (uint8_t)0, (uint8_t)7)); } if (thresh_s_rssi_cbr_r14_present) { HANDLE_CODE(unpack_unalign_integer(thresh_s_rssi_cbr_r14, bref, (uint8_t)0, (uint8_t)45)); } if (pool_report_id_r14_present) { HANDLE_CODE(unpack_unalign_integer(pool_report_id_r14, bref, (uint8_t)1, (uint8_t)72)); } if (cbr_pssch_tx_cfg_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(cbr_pssch_tx_cfg_list_r14, bref, 1, 8)); } if (res_sel_cfg_p2_x_r14_present) { HANDLE_CODE(res_sel_cfg_p2_x_r14.unpack(bref)); } if (sync_allowed_r14_present) { HANDLE_CODE(sync_allowed_r14.unpack(bref)); } if (restrict_res_reserv_period_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(restrict_res_reserv_period_r14, bref, 1, 16, EnumPacker())); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sl_min_t2_value_list_r15_present, 1)); HANDLE_CODE(bref.unpack(cbr_pssch_tx_cfg_list_v1530_present, 1)); if (sl_min_t2_value_list_r15_present) { sl_min_t2_value_list_r15 = make_copy_ptr(sl_min_t2_value_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*sl_min_t2_value_list_r15, bref, 1, 8)); } if (cbr_pssch_tx_cfg_list_v1530_present) { cbr_pssch_tx_cfg_list_v1530 = make_copy_ptr(sl_cbr_pppp_tx_cfg_list_v1530_l()); HANDLE_CODE(unpack_dyn_seq_of(*cbr_pssch_tx_cfg_list_v1530, bref, 1, 8)); } } } return SRSASN_SUCCESS; } void sl_comm_res_pool_v2x_r14_s::to_json(json_writer& j) const { j.start_obj(); if (sl_offset_ind_r14_present) { j.write_fieldname("sl-OffsetIndicator-r14"); sl_offset_ind_r14.to_json(j); } j.write_fieldname("sl-Subframe-r14"); sl_sf_r14.to_json(j); j.write_bool("adjacencyPSCCH-PSSCH-r14", adjacency_pscch_pssch_r14); j.write_str("sizeSubchannel-r14", size_subch_r14.to_string()); j.write_str("numSubchannel-r14", num_subch_r14.to_string()); j.write_int("startRB-Subchannel-r14", start_rb_subch_r14); if (start_rb_pscch_pool_r14_present) { j.write_int("startRB-PSCCH-Pool-r14", start_rb_pscch_pool_r14); } if (rx_params_ncell_r14_present) { j.write_fieldname("rxParametersNCell-r14"); j.start_obj(); if (rx_params_ncell_r14.tdd_cfg_r14_present) { j.write_fieldname("tdd-Config-r14"); rx_params_ncell_r14.tdd_cfg_r14.to_json(j); } j.write_int("syncConfigIndex-r14", rx_params_ncell_r14.sync_cfg_idx_r14); j.end_obj(); } if (data_tx_params_r14_present) { j.write_fieldname("dataTxParameters-r14"); data_tx_params_r14.to_json(j); } if (zone_id_r14_present) { j.write_int("zoneID-r14", zone_id_r14); } if (thresh_s_rssi_cbr_r14_present) { j.write_int("threshS-RSSI-CBR-r14", thresh_s_rssi_cbr_r14); } if (pool_report_id_r14_present) { j.write_int("poolReportId-r14", pool_report_id_r14); } if (cbr_pssch_tx_cfg_list_r14_present) { j.start_array("cbr-pssch-TxConfigList-r14"); for (uint32_t i1 = 0; i1 < cbr_pssch_tx_cfg_list_r14.size(); ++i1) { cbr_pssch_tx_cfg_list_r14[i1].to_json(j); } j.end_array(); } if (res_sel_cfg_p2_x_r14_present) { j.write_fieldname("resourceSelectionConfigP2X-r14"); res_sel_cfg_p2_x_r14.to_json(j); } if (sync_allowed_r14_present) { j.write_fieldname("syncAllowed-r14"); sync_allowed_r14.to_json(j); } if (restrict_res_reserv_period_r14_present) { j.start_array("restrictResourceReservationPeriod-r14"); for (uint32_t i1 = 0; i1 < restrict_res_reserv_period_r14.size(); ++i1) { j.write_str(restrict_res_reserv_period_r14[i1].to_string()); } j.end_array(); } if (ext) { rrc_asn1_warn_assert(sl_min_t2_value_list_r15_present != (sl_min_t2_value_list_r15.get() != NULL), __FILE__, __LINE__); if (sl_min_t2_value_list_r15_present) { j.start_array("sl-MinT2ValueList-r15"); for (uint32_t i1 = 0; i1 < sl_min_t2_value_list_r15->size(); ++i1) { ((*sl_min_t2_value_list_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(cbr_pssch_tx_cfg_list_v1530_present != (cbr_pssch_tx_cfg_list_v1530.get() != NULL), __FILE__, __LINE__); if (cbr_pssch_tx_cfg_list_v1530_present) { j.start_array("cbr-pssch-TxConfigList-v1530"); for (uint32_t i1 = 0; i1 < cbr_pssch_tx_cfg_list_v1530->size(); ++i1) { ((*cbr_pssch_tx_cfg_list_v1530)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SL-PoolSelectionConfig-r12 ::= SEQUENCE SRSASN_CODE sl_pool_sel_cfg_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, thresh_low_r12, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, thresh_high_r12, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE sl_pool_sel_cfg_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(thresh_low_r12, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(thresh_high_r12, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void sl_pool_sel_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("threshLow-r12", thresh_low_r12); j.write_int("threshHigh-r12", thresh_high_r12); j.end_obj(); } // SL-SyncConfigNFreq-r13 ::= SEQUENCE SRSASN_CODE sl_sync_cfg_nfreq_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(async_params_r13_present, 1)); HANDLE_CODE(bref.pack(tx_params_r13_present, 1)); HANDLE_CODE(bref.pack(rx_params_r13_present, 1)); if (async_params_r13_present) { HANDLE_CODE(pack_enum(bref, async_params_r13.sync_cp_len_r13)); HANDLE_CODE(pack_unalign_integer(bref, async_params_r13.sync_offset_ind_r13, (uint8_t)0, (uint8_t)39)); HANDLE_CODE(pack_unalign_integer(bref, async_params_r13.slssid_r13, (uint8_t)0, (uint8_t)167)); } if (tx_params_r13_present) { HANDLE_CODE(bref.pack(tx_params_r13.sync_info_reserved_r13_present, 1)); HANDLE_CODE(bref.pack(tx_params_r13.sync_tx_periodic_r13_present, 1)); HANDLE_CODE(tx_params_r13.sync_tx_params_r13.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, tx_params_r13.sync_tx_thresh_ic_r13, (uint8_t)0, (uint8_t)13)); if (tx_params_r13.sync_info_reserved_r13_present) { HANDLE_CODE(tx_params_r13.sync_info_reserved_r13.pack(bref)); } } if (rx_params_r13_present) { HANDLE_CODE(pack_enum(bref, rx_params_r13.disc_sync_win_r13)); } if (ext) { ext_groups_header group_flags(3); group_flags[0] |= sync_offset_ind_v1430_present; group_flags[0] |= gnss_sync_r14_present; group_flags[1] |= sync_offset_ind2_r14_present; group_flags[1] |= sync_offset_ind3_r14_present; group_flags[2] |= slss_tx_disabled_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sync_offset_ind_v1430_present, 1)); HANDLE_CODE(bref.pack(gnss_sync_r14_present, 1)); if (sync_offset_ind_v1430_present) { HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind_v1430, (uint8_t)40, (uint8_t)159)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sync_offset_ind2_r14_present, 1)); HANDLE_CODE(bref.pack(sync_offset_ind3_r14_present, 1)); if (sync_offset_ind2_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind2_r14, (uint8_t)0, (uint8_t)159)); } if (sync_offset_ind3_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind3_r14, (uint8_t)0, (uint8_t)159)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(slss_tx_disabled_r15_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE sl_sync_cfg_nfreq_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(async_params_r13_present, 1)); HANDLE_CODE(bref.unpack(tx_params_r13_present, 1)); HANDLE_CODE(bref.unpack(rx_params_r13_present, 1)); if (async_params_r13_present) { HANDLE_CODE(unpack_enum(async_params_r13.sync_cp_len_r13, bref)); HANDLE_CODE(unpack_unalign_integer(async_params_r13.sync_offset_ind_r13, bref, (uint8_t)0, (uint8_t)39)); HANDLE_CODE(unpack_unalign_integer(async_params_r13.slssid_r13, bref, (uint8_t)0, (uint8_t)167)); } if (tx_params_r13_present) { HANDLE_CODE(bref.unpack(tx_params_r13.sync_info_reserved_r13_present, 1)); HANDLE_CODE(bref.unpack(tx_params_r13.sync_tx_periodic_r13_present, 1)); HANDLE_CODE(tx_params_r13.sync_tx_params_r13.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(tx_params_r13.sync_tx_thresh_ic_r13, bref, (uint8_t)0, (uint8_t)13)); if (tx_params_r13.sync_info_reserved_r13_present) { HANDLE_CODE(tx_params_r13.sync_info_reserved_r13.unpack(bref)); } } if (rx_params_r13_present) { HANDLE_CODE(unpack_enum(rx_params_r13.disc_sync_win_r13, bref)); } if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sync_offset_ind_v1430_present, 1)); HANDLE_CODE(bref.unpack(gnss_sync_r14_present, 1)); if (sync_offset_ind_v1430_present) { HANDLE_CODE(unpack_unalign_integer(sync_offset_ind_v1430, bref, (uint8_t)40, (uint8_t)159)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sync_offset_ind2_r14_present, 1)); HANDLE_CODE(bref.unpack(sync_offset_ind3_r14_present, 1)); if (sync_offset_ind2_r14_present) { HANDLE_CODE(unpack_unalign_integer(sync_offset_ind2_r14, bref, (uint8_t)0, (uint8_t)159)); } if (sync_offset_ind3_r14_present) { HANDLE_CODE(unpack_unalign_integer(sync_offset_ind3_r14, bref, (uint8_t)0, (uint8_t)159)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(slss_tx_disabled_r15_present, 1)); } } return SRSASN_SUCCESS; } void sl_sync_cfg_nfreq_r13_s::to_json(json_writer& j) const { j.start_obj(); if (async_params_r13_present) { j.write_fieldname("asyncParameters-r13"); j.start_obj(); j.write_str("syncCP-Len-r13", async_params_r13.sync_cp_len_r13.to_string()); j.write_int("syncOffsetIndicator-r13", async_params_r13.sync_offset_ind_r13); j.write_int("slssid-r13", async_params_r13.slssid_r13); j.end_obj(); } if (tx_params_r13_present) { j.write_fieldname("txParameters-r13"); j.start_obj(); j.write_fieldname("syncTxParameters-r13"); tx_params_r13.sync_tx_params_r13.to_json(j); j.write_int("syncTxThreshIC-r13", tx_params_r13.sync_tx_thresh_ic_r13); if (tx_params_r13.sync_info_reserved_r13_present) { j.write_str("syncInfoReserved-r13", tx_params_r13.sync_info_reserved_r13.to_string()); } if (tx_params_r13.sync_tx_periodic_r13_present) { j.write_str("syncTxPeriodic-r13", "true"); } j.end_obj(); } if (rx_params_r13_present) { j.write_fieldname("rxParameters-r13"); j.start_obj(); j.write_str("discSyncWindow-r13", rx_params_r13.disc_sync_win_r13.to_string()); j.end_obj(); } if (ext) { if (sync_offset_ind_v1430_present) { j.write_int("syncOffsetIndicator-v1430", sync_offset_ind_v1430); } if (gnss_sync_r14_present) { j.write_str("gnss-Sync-r14", "true"); } if (sync_offset_ind2_r14_present) { j.write_int("syncOffsetIndicator2-r14", sync_offset_ind2_r14); } if (sync_offset_ind3_r14_present) { j.write_int("syncOffsetIndicator3-r14", sync_offset_ind3_r14); } if (slss_tx_disabled_r15_present) { j.write_str("slss-TxDisabled-r15", "true"); } } j.end_obj(); } // SL-TF-ResourceConfig-r12 ::= SEQUENCE SRSASN_CODE sl_tf_res_cfg_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, prb_num_r12, (uint8_t)1, (uint8_t)100)); HANDLE_CODE(pack_unalign_integer(bref, prb_start_r12, (uint8_t)0, (uint8_t)99)); HANDLE_CODE(pack_unalign_integer(bref, prb_end_r12, (uint8_t)0, (uint8_t)99)); HANDLE_CODE(offset_ind_r12.pack(bref)); HANDLE_CODE(sf_bitmap_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_tf_res_cfg_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(prb_num_r12, bref, (uint8_t)1, (uint8_t)100)); HANDLE_CODE(unpack_unalign_integer(prb_start_r12, bref, (uint8_t)0, (uint8_t)99)); HANDLE_CODE(unpack_unalign_integer(prb_end_r12, bref, (uint8_t)0, (uint8_t)99)); HANDLE_CODE(offset_ind_r12.unpack(bref)); HANDLE_CODE(sf_bitmap_r12.unpack(bref)); return SRSASN_SUCCESS; } void sl_tf_res_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("prb-Num-r12", prb_num_r12); j.write_int("prb-Start-r12", prb_start_r12); j.write_int("prb-End-r12", prb_end_r12); j.write_fieldname("offsetIndicator-r12"); offset_ind_r12.to_json(j); j.write_fieldname("subframeBitmap-r12"); sf_bitmap_r12.to_json(j); j.end_obj(); } // SystemInformationBlockType1-v1430-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(e_call_over_ims_support_r14_present, 1)); HANDLE_CODE(bref.pack(tdd_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(cell_access_related_info_list_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (tdd_cfg_v1430_present) { HANDLE_CODE(tdd_cfg_v1430.pack(bref)); } if (cell_access_related_info_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cell_access_related_info_list_r14, 1, 5)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(e_call_over_ims_support_r14_present, 1)); HANDLE_CODE(bref.unpack(tdd_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(cell_access_related_info_list_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (tdd_cfg_v1430_present) { HANDLE_CODE(tdd_cfg_v1430.unpack(bref)); } if (cell_access_related_info_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info_list_r14, bref, 1, 5)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (e_call_over_ims_support_r14_present) { j.write_str("eCallOverIMS-Support-r14", "true"); } if (tdd_cfg_v1430_present) { j.write_fieldname("tdd-Config-v1430"); tdd_cfg_v1430.to_json(j); } if (cell_access_related_info_list_r14_present) { j.start_array("cellAccessRelatedInfoList-r14"); for (uint32_t i1 = 0; i1 < cell_access_related_info_list_r14.size(); ++i1) { cell_access_related_info_list_r14[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // TDD-Config-v1130 ::= SEQUENCE SRSASN_CODE tdd_cfg_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, special_sf_patterns_v1130)); return SRSASN_SUCCESS; } SRSASN_CODE tdd_cfg_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(special_sf_patterns_v1130, bref)); return SRSASN_SUCCESS; } void tdd_cfg_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("specialSubframePatterns-v1130", special_sf_patterns_v1130.to_string()); j.end_obj(); } // BandClassInfoCDMA2000 ::= SEQUENCE SRSASN_CODE band_class_info_cdma2000_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); HANDLE_CODE(pack_enum(bref, band_class)); if (cell_resel_prio_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(pack_unalign_integer(bref, thresh_x_high, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_low, (uint8_t)0, (uint8_t)63)); return SRSASN_SUCCESS; } SRSASN_CODE band_class_info_cdma2000_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); HANDLE_CODE(unpack_enum(band_class, bref)); if (cell_resel_prio_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(unpack_unalign_integer(thresh_x_high, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(unpack_unalign_integer(thresh_x_low, bref, (uint8_t)0, (uint8_t)63)); return SRSASN_SUCCESS; } void band_class_info_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("bandClass", band_class.to_string()); if (cell_resel_prio_present) { j.write_int("cellReselectionPriority", cell_resel_prio); } j.write_int("threshX-High", thresh_x_high); j.write_int("threshX-Low", thresh_x_low); j.end_obj(); } // CellSelectionInfoCE1-r13 ::= SEQUENCE SRSASN_CODE cell_sel_info_ce1_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(q_qual_min_rsrq_ce1_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_ce1_r13, (int8_t)-70, (int8_t)-22)); if (q_qual_min_rsrq_ce1_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_rsrq_ce1_r13, (int8_t)-34, (int8_t)-3)); } return SRSASN_SUCCESS; } SRSASN_CODE cell_sel_info_ce1_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(q_qual_min_rsrq_ce1_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_ce1_r13, bref, (int8_t)-70, (int8_t)-22)); if (q_qual_min_rsrq_ce1_r13_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_rsrq_ce1_r13, bref, (int8_t)-34, (int8_t)-3)); } return SRSASN_SUCCESS; } void cell_sel_info_ce1_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("q-RxLevMinCE1-r13", q_rx_lev_min_ce1_r13); if (q_qual_min_rsrq_ce1_r13_present) { j.write_int("q-QualMinRSRQ-CE1-r13", q_qual_min_rsrq_ce1_r13); } j.end_obj(); } // NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE SRSASN_CODE neigh_cells_per_bandclass_cdma2000_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, arfcn, (uint16_t)0, (uint16_t)2047)); HANDLE_CODE(pack_dyn_seq_of(bref, pci_list_r11, 1, 40, UnalignedIntegerPacker(0, 511))); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cells_per_bandclass_cdma2000_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(arfcn, bref, (uint16_t)0, (uint16_t)2047)); HANDLE_CODE(unpack_dyn_seq_of(pci_list_r11, bref, 1, 40, UnalignedIntegerPacker(0, 511))); return SRSASN_SUCCESS; } void neigh_cells_per_bandclass_cdma2000_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("arfcn", arfcn); j.start_array("physCellIdList-r11"); for (uint32_t i1 = 0; i1 < pci_list_r11.size(); ++i1) { j.write_int(pci_list_r11[i1]); } j.end_array(); j.end_obj(); } // SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE SRSASN_CODE sl_comm_tx_pool_sensing_cfg_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(restrict_res_reserv_period_r14_present, 1)); HANDLE_CODE(bref.pack(p2x_sensing_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(sl_reselect_after_r14_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, pssch_tx_cfg_list_r14, 1, 16)); HANDLE_CODE(pack_fixed_seq_of(bref, &(*thres_pssch_rsrp_list_r14)[0], thres_pssch_rsrp_list_r14->size(), UnalignedIntegerPacker(0, 66))); if (restrict_res_reserv_period_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, restrict_res_reserv_period_r14, 1, 16, EnumPacker())); } HANDLE_CODE(pack_enum(bref, prob_res_keep_r14)); if (p2x_sensing_cfg_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, p2x_sensing_cfg_r14.min_num_candidate_sf_r14, (uint8_t)1, (uint8_t)13)); HANDLE_CODE(p2x_sensing_cfg_r14.gap_candidate_sensing_r14.pack(bref)); } if (sl_reselect_after_r14_present) { HANDLE_CODE(pack_enum(bref, sl_reselect_after_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_tx_pool_sensing_cfg_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(restrict_res_reserv_period_r14_present, 1)); HANDLE_CODE(bref.unpack(p2x_sensing_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(sl_reselect_after_r14_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(pssch_tx_cfg_list_r14, bref, 1, 16)); thres_pssch_rsrp_list_r14 = make_copy_ptr(sl_thres_pssch_rsrp_list_r14_l()); HANDLE_CODE(unpack_fixed_seq_of(&(*thres_pssch_rsrp_list_r14)[0], bref, thres_pssch_rsrp_list_r14->size(), UnalignedIntegerPacker(0, 66))); if (restrict_res_reserv_period_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(restrict_res_reserv_period_r14, bref, 1, 16, EnumPacker())); } HANDLE_CODE(unpack_enum(prob_res_keep_r14, bref)); if (p2x_sensing_cfg_r14_present) { HANDLE_CODE(unpack_unalign_integer(p2x_sensing_cfg_r14.min_num_candidate_sf_r14, bref, (uint8_t)1, (uint8_t)13)); HANDLE_CODE(p2x_sensing_cfg_r14.gap_candidate_sensing_r14.unpack(bref)); } if (sl_reselect_after_r14_present) { HANDLE_CODE(unpack_enum(sl_reselect_after_r14, bref)); } return SRSASN_SUCCESS; } void sl_comm_tx_pool_sensing_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("pssch-TxConfigList-r14"); for (uint32_t i1 = 0; i1 < pssch_tx_cfg_list_r14.size(); ++i1) { pssch_tx_cfg_list_r14[i1].to_json(j); } j.end_array(); j.start_array("thresPSSCH-RSRP-List-r14"); for (uint32_t i1 = 0; i1 < thres_pssch_rsrp_list_r14->size(); ++i1) { j.write_int(((*thres_pssch_rsrp_list_r14)[i1])); } j.end_array(); if (restrict_res_reserv_period_r14_present) { j.start_array("restrictResourceReservationPeriod-r14"); for (uint32_t i1 = 0; i1 < restrict_res_reserv_period_r14.size(); ++i1) { j.write_str(restrict_res_reserv_period_r14[i1].to_string()); } j.end_array(); } j.write_str("probResourceKeep-r14", prob_res_keep_r14.to_string()); if (p2x_sensing_cfg_r14_present) { j.write_fieldname("p2x-SensingConfig-r14"); j.start_obj(); j.write_int("minNumCandidateSF-r14", p2x_sensing_cfg_r14.min_num_candidate_sf_r14); j.write_str("gapCandidateSensing-r14", p2x_sensing_cfg_r14.gap_candidate_sensing_r14.to_string()); j.end_obj(); } if (sl_reselect_after_r14_present) { j.write_str("sl-ReselectAfter-r14", sl_reselect_after_r14.to_string()); } j.end_obj(); } // SL-DiscResourcePool-r12 ::= SEQUENCE SRSASN_CODE sl_disc_res_pool_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(tx_params_r12_present, 1)); HANDLE_CODE(bref.pack(rx_params_r12_present, 1)); HANDLE_CODE(pack_enum(bref, cp_len_r12)); HANDLE_CODE(pack_enum(bref, disc_period_r12)); HANDLE_CODE(pack_unalign_integer(bref, num_retx_r12, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_unalign_integer(bref, num_repeat_r12, (uint8_t)1, (uint8_t)50)); HANDLE_CODE(tf_res_cfg_r12.pack(bref)); if (tx_params_r12_present) { HANDLE_CODE(bref.pack(tx_params_r12.ue_sel_res_cfg_r12_present, 1)); HANDLE_CODE(tx_params_r12.tx_params_general_r12.pack(bref)); if (tx_params_r12.ue_sel_res_cfg_r12_present) { HANDLE_CODE(tx_params_r12.ue_sel_res_cfg_r12.pool_sel_r12.pack(bref)); HANDLE_CODE(pack_enum(bref, tx_params_r12.ue_sel_res_cfg_r12.tx_probability_r12)); } } if (rx_params_r12_present) { HANDLE_CODE(bref.pack(rx_params_r12.tdd_cfg_r12_present, 1)); if (rx_params_r12.tdd_cfg_r12_present) { HANDLE_CODE(rx_params_r12.tdd_cfg_r12.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, rx_params_r12.sync_cfg_idx_r12, (uint8_t)0, (uint8_t)15)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(disc_period_v1310_present != (disc_period_v1310.get() != NULL), __FILE__, __LINE__); group_flags[0] |= disc_period_v1310_present; rrc_asn1_warn_assert(rx_params_add_neigh_freq_r13_present != (rx_params_add_neigh_freq_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= rx_params_add_neigh_freq_r13_present; rrc_asn1_warn_assert(tx_params_add_neigh_freq_r13_present != (tx_params_add_neigh_freq_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= tx_params_add_neigh_freq_r13_present; rrc_asn1_warn_assert(tx_params_add_neigh_freq_v1370_present != (tx_params_add_neigh_freq_v1370.get() != NULL), __FILE__, __LINE__); group_flags[1] |= tx_params_add_neigh_freq_v1370_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(disc_period_v1310_present, 1)); HANDLE_CODE(bref.pack(rx_params_add_neigh_freq_r13_present, 1)); HANDLE_CODE(bref.pack(tx_params_add_neigh_freq_r13_present, 1)); if (disc_period_v1310_present) { HANDLE_CODE(disc_period_v1310->pack(bref)); } if (rx_params_add_neigh_freq_r13_present) { HANDLE_CODE(rx_params_add_neigh_freq_r13->pack(bref)); } if (tx_params_add_neigh_freq_r13_present) { HANDLE_CODE(tx_params_add_neigh_freq_r13->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(tx_params_add_neigh_freq_v1370_present, 1)); if (tx_params_add_neigh_freq_v1370_present) { HANDLE_CODE(tx_params_add_neigh_freq_v1370->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_res_pool_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(tx_params_r12_present, 1)); HANDLE_CODE(bref.unpack(rx_params_r12_present, 1)); HANDLE_CODE(unpack_enum(cp_len_r12, bref)); HANDLE_CODE(unpack_enum(disc_period_r12, bref)); HANDLE_CODE(unpack_unalign_integer(num_retx_r12, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_unalign_integer(num_repeat_r12, bref, (uint8_t)1, (uint8_t)50)); HANDLE_CODE(tf_res_cfg_r12.unpack(bref)); if (tx_params_r12_present) { HANDLE_CODE(bref.unpack(tx_params_r12.ue_sel_res_cfg_r12_present, 1)); HANDLE_CODE(tx_params_r12.tx_params_general_r12.unpack(bref)); if (tx_params_r12.ue_sel_res_cfg_r12_present) { HANDLE_CODE(tx_params_r12.ue_sel_res_cfg_r12.pool_sel_r12.unpack(bref)); HANDLE_CODE(unpack_enum(tx_params_r12.ue_sel_res_cfg_r12.tx_probability_r12, bref)); } } if (rx_params_r12_present) { HANDLE_CODE(bref.unpack(rx_params_r12.tdd_cfg_r12_present, 1)); if (rx_params_r12.tdd_cfg_r12_present) { HANDLE_CODE(rx_params_r12.tdd_cfg_r12.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(rx_params_r12.sync_cfg_idx_r12, bref, (uint8_t)0, (uint8_t)15)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(disc_period_v1310_present, 1)); HANDLE_CODE(bref.unpack(rx_params_add_neigh_freq_r13_present, 1)); HANDLE_CODE(bref.unpack(tx_params_add_neigh_freq_r13_present, 1)); if (disc_period_v1310_present) { disc_period_v1310 = make_copy_ptr(disc_period_v1310_c_()); HANDLE_CODE(disc_period_v1310->unpack(bref)); } if (rx_params_add_neigh_freq_r13_present) { rx_params_add_neigh_freq_r13 = make_copy_ptr(rx_params_add_neigh_freq_r13_c_()); HANDLE_CODE(rx_params_add_neigh_freq_r13->unpack(bref)); } if (tx_params_add_neigh_freq_r13_present) { tx_params_add_neigh_freq_r13 = make_copy_ptr(tx_params_add_neigh_freq_r13_c_()); HANDLE_CODE(tx_params_add_neigh_freq_r13->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(tx_params_add_neigh_freq_v1370_present, 1)); if (tx_params_add_neigh_freq_v1370_present) { tx_params_add_neigh_freq_v1370 = make_copy_ptr(tx_params_add_neigh_freq_v1370_c_()); HANDLE_CODE(tx_params_add_neigh_freq_v1370->unpack(bref)); } } } return SRSASN_SUCCESS; } void sl_disc_res_pool_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cp-Len-r12", cp_len_r12.to_string()); j.write_str("discPeriod-r12", disc_period_r12.to_string()); j.write_int("numRetx-r12", num_retx_r12); j.write_int("numRepetition-r12", num_repeat_r12); j.write_fieldname("tf-ResourceConfig-r12"); tf_res_cfg_r12.to_json(j); if (tx_params_r12_present) { j.write_fieldname("txParameters-r12"); j.start_obj(); j.write_fieldname("txParametersGeneral-r12"); tx_params_r12.tx_params_general_r12.to_json(j); if (tx_params_r12.ue_sel_res_cfg_r12_present) { j.write_fieldname("ue-SelectedResourceConfig-r12"); j.start_obj(); j.write_fieldname("poolSelection-r12"); tx_params_r12.ue_sel_res_cfg_r12.pool_sel_r12.to_json(j); j.write_str("txProbability-r12", tx_params_r12.ue_sel_res_cfg_r12.tx_probability_r12.to_string()); j.end_obj(); } j.end_obj(); } if (rx_params_r12_present) { j.write_fieldname("rxParameters-r12"); j.start_obj(); if (rx_params_r12.tdd_cfg_r12_present) { j.write_fieldname("tdd-Config-r12"); rx_params_r12.tdd_cfg_r12.to_json(j); } j.write_int("syncConfigIndex-r12", rx_params_r12.sync_cfg_idx_r12); j.end_obj(); } if (ext) { rrc_asn1_warn_assert(disc_period_v1310_present != (disc_period_v1310.get() != NULL), __FILE__, __LINE__); if (disc_period_v1310_present) { j.write_fieldname("discPeriod-v1310"); disc_period_v1310->to_json(j); } rrc_asn1_warn_assert(rx_params_add_neigh_freq_r13_present != (rx_params_add_neigh_freq_r13.get() != NULL), __FILE__, __LINE__); if (rx_params_add_neigh_freq_r13_present) { j.write_fieldname("rxParamsAddNeighFreq-r13"); rx_params_add_neigh_freq_r13->to_json(j); } rrc_asn1_warn_assert(tx_params_add_neigh_freq_r13_present != (tx_params_add_neigh_freq_r13.get() != NULL), __FILE__, __LINE__); if (tx_params_add_neigh_freq_r13_present) { j.write_fieldname("txParamsAddNeighFreq-r13"); tx_params_add_neigh_freq_r13->to_json(j); } rrc_asn1_warn_assert(tx_params_add_neigh_freq_v1370_present != (tx_params_add_neigh_freq_v1370.get() != NULL), __FILE__, __LINE__); if (tx_params_add_neigh_freq_v1370_present) { j.write_fieldname("txParamsAddNeighFreq-v1370"); tx_params_add_neigh_freq_v1370->to_json(j); } } j.end_obj(); } void sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::set(types::options e) { type_ = e; } void sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rsrp_based_r12: j.write_fieldname("rsrpBased-r12"); c.to_json(j); break; case types::random_r12: break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rsrp_based_r12: HANDLE_CODE(c.pack(bref)); break; case types::random_r12: break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rsrp_based_r12: HANDLE_CODE(c.unpack(bref)); break; case types::random_r12: break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_res_pool_r12_s::disc_period_v1310_c_::set(types::options e) { type_ = e; } void sl_disc_res_pool_r12_s::disc_period_v1310_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::disc_period_v1310_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_res_pool_r12_s::disc_period_v1310_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::disc_period_v1310_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_res_pool_r12_s::disc_period_v1310_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::disc_period_v1310_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::set(types::options e) { type_ = e; } void sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("physCellId-r13"); for (uint32_t i1 = 0; i1 < c.pci_r13.size(); ++i1) { j.write_int(c.pci_r13[i1]); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.pci_r13, 1, 16, UnalignedIntegerPacker(0, 503))); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.pci_r13, bref, 1, 16, UnalignedIntegerPacker(0, 503))); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::set(types::options e) { type_ = e; } void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("physCellId-r13"); for (uint32_t i1 = 0; i1 < c.pci_r13.size(); ++i1) { j.write_int(c.pci_r13[i1]); } j.end_array(); if (c.p_max_present) { j.write_int("p-Max", c.p_max); } if (c.tdd_cfg_r13_present) { j.write_fieldname("tdd-Config-r13"); c.tdd_cfg_r13.to_json(j); } if (c.tdd_cfg_v1130_present) { j.write_fieldname("tdd-Config-v1130"); c.tdd_cfg_v1130.to_json(j); } j.write_fieldname("freqInfo"); j.start_obj(); if (c.freq_info.ul_carrier_freq_present) { j.write_int("ul-CarrierFreq", c.freq_info.ul_carrier_freq); } if (c.freq_info.ul_bw_present) { j.write_str("ul-Bandwidth", c.freq_info.ul_bw.to_string()); } j.write_int("additionalSpectrumEmission", c.freq_info.add_spec_emission); j.end_obj(); j.write_int("referenceSignalPower", c.ref_sig_pwr); if (c.sync_cfg_idx_r13_present) { j.write_int("syncConfigIndex-r13", c.sync_cfg_idx_r13); } j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.p_max_present, 1)); HANDLE_CODE(bref.pack(c.tdd_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(c.tdd_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(c.sync_cfg_idx_r13_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, c.pci_r13, 1, 16, UnalignedIntegerPacker(0, 503))); if (c.p_max_present) { HANDLE_CODE(pack_unalign_integer(bref, c.p_max, (int8_t)-30, (int8_t)33)); } if (c.tdd_cfg_r13_present) { HANDLE_CODE(c.tdd_cfg_r13.pack(bref)); } if (c.tdd_cfg_v1130_present) { HANDLE_CODE(c.tdd_cfg_v1130.pack(bref)); } HANDLE_CODE(bref.pack(c.freq_info.ul_carrier_freq_present, 1)); HANDLE_CODE(bref.pack(c.freq_info.ul_bw_present, 1)); if (c.freq_info.ul_carrier_freq_present) { HANDLE_CODE(pack_unalign_integer(bref, c.freq_info.ul_carrier_freq, (uint16_t)0, (uint16_t)65535)); } if (c.freq_info.ul_bw_present) { HANDLE_CODE(pack_enum(bref, c.freq_info.ul_bw)); } HANDLE_CODE(pack_unalign_integer(bref, c.freq_info.add_spec_emission, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, c.ref_sig_pwr, (int8_t)-60, (int8_t)50)); if (c.sync_cfg_idx_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.sync_cfg_idx_r13, (uint8_t)0, (uint8_t)15)); } break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.p_max_present, 1)); HANDLE_CODE(bref.unpack(c.tdd_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(c.tdd_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(c.sync_cfg_idx_r13_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(c.pci_r13, bref, 1, 16, UnalignedIntegerPacker(0, 503))); if (c.p_max_present) { HANDLE_CODE(unpack_unalign_integer(c.p_max, bref, (int8_t)-30, (int8_t)33)); } if (c.tdd_cfg_r13_present) { HANDLE_CODE(c.tdd_cfg_r13.unpack(bref)); } if (c.tdd_cfg_v1130_present) { HANDLE_CODE(c.tdd_cfg_v1130.unpack(bref)); } HANDLE_CODE(bref.unpack(c.freq_info.ul_carrier_freq_present, 1)); HANDLE_CODE(bref.unpack(c.freq_info.ul_bw_present, 1)); if (c.freq_info.ul_carrier_freq_present) { HANDLE_CODE(unpack_unalign_integer(c.freq_info.ul_carrier_freq, bref, (uint16_t)0, (uint16_t)65535)); } if (c.freq_info.ul_bw_present) { HANDLE_CODE(unpack_enum(c.freq_info.ul_bw, bref)); } HANDLE_CODE(unpack_unalign_integer(c.freq_info.add_spec_emission, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(c.ref_sig_pwr, bref, (int8_t)-60, (int8_t)50)); if (c.sync_cfg_idx_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.sync_cfg_idx_r13, bref, (uint8_t)0, (uint8_t)15)); } break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::set(types::options e) { type_ = e; } void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("freqInfo-v1370"); j.start_obj(); j.write_int("additionalSpectrumEmission-v1370", c.freq_info_v1370.add_spec_emission_v1370); j.end_obj(); j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.freq_info_v1370.add_spec_emission_v1370, (uint16_t)33, (uint16_t)288)); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.freq_info_v1370.add_spec_emission_v1370, bref, (uint16_t)33, (uint16_t)288)); break; default: log_invalid_choice_id(type_, "sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-ZoneConfig-r14 ::= SEQUENCE SRSASN_CODE sl_zone_cfg_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, zone_len_r14)); HANDLE_CODE(pack_enum(bref, zone_width_r14)); HANDLE_CODE(pack_unalign_integer(bref, zone_id_longi_mod_r14, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_unalign_integer(bref, zone_id_lati_mod_r14, (uint8_t)1, (uint8_t)4)); return SRSASN_SUCCESS; } SRSASN_CODE sl_zone_cfg_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(zone_len_r14, bref)); HANDLE_CODE(unpack_enum(zone_width_r14, bref)); HANDLE_CODE(unpack_unalign_integer(zone_id_longi_mod_r14, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_unalign_integer(zone_id_lati_mod_r14, bref, (uint8_t)1, (uint8_t)4)); return SRSASN_SUCCESS; } void sl_zone_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("zoneLength-r14", zone_len_r14.to_string()); j.write_str("zoneWidth-r14", zone_width_r14.to_string()); j.write_int("zoneIdLongiMod-r14", zone_id_longi_mod_r14); j.write_int("zoneIdLatiMod-r14", zone_id_lati_mod_r14); j.end_obj(); } // SystemInformationBlockType1-v1360-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1360_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_sel_info_ce1_v1360_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (cell_sel_info_ce1_v1360_present) { HANDLE_CODE(cell_sel_info_ce1_v1360.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1360_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_sel_info_ce1_v1360_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (cell_sel_info_ce1_v1360_present) { HANDLE_CODE(cell_sel_info_ce1_v1360.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v1360_ies_s::to_json(json_writer& j) const { j.start_obj(); if (cell_sel_info_ce1_v1360_present) { j.write_fieldname("cellSelectionInfoCE1-v1360"); cell_sel_info_ce1_v1360.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v10l0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); if (freq_band_info_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); } if (multi_band_info_list_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v10l0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); if (freq_band_info_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); } if (multi_band_info_list_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v10l0_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_info_v10l0_present) { j.start_array("freqBandInfo-v10l0"); for (uint32_t i1 = 0; i1 < freq_band_info_v10l0.size(); ++i1) { freq_band_info_v10l0[i1].to_json(j); } j.end_array(); } if (multi_band_info_list_v10l0_present) { j.start_array("multiBandInfoList-v10l0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v10l0.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < multi_band_info_list_v10l0[i1].size(); ++i2) { multi_band_info_list_v10l0[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } j.end_obj(); } // MultiBandInfo-v9e0 ::= SEQUENCE SRSASN_CODE multi_band_info_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_ind_v9e0_present, 1)); if (freq_band_ind_v9e0_present) { HANDLE_CODE(pack_unalign_integer(bref, freq_band_ind_v9e0, (uint16_t)65, (uint16_t)256)); } return SRSASN_SUCCESS; } SRSASN_CODE multi_band_info_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_ind_v9e0_present, 1)); if (freq_band_ind_v9e0_present) { HANDLE_CODE(unpack_unalign_integer(freq_band_ind_v9e0, bref, (uint16_t)65, (uint16_t)256)); } return SRSASN_SUCCESS; } void multi_band_info_v9e0_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_ind_v9e0_present) { j.write_int("freqBandIndicator-v9e0", freq_band_ind_v9e0); } j.end_obj(); } // NeighCellCDMA2000-r11 ::= SEQUENCE SRSASN_CODE neigh_cell_cdma2000_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, band_class)); HANDLE_CODE(pack_dyn_seq_of(bref, neigh_freq_info_list_r11, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cell_cdma2000_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(band_class, bref)); HANDLE_CODE(unpack_dyn_seq_of(neigh_freq_info_list_r11, bref, 1, 16)); return SRSASN_SUCCESS; } void neigh_cell_cdma2000_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("bandClass", band_class.to_string()); j.start_array("neighFreqInfoList-r11"); for (uint32_t i1 = 0; i1 < neigh_freq_info_list_r11.size(); ++i1) { neigh_freq_info_list_r11[i1].to_json(j); } j.end_array(); j.end_obj(); } // NeighCellsPerBandclassCDMA2000 ::= SEQUENCE SRSASN_CODE neigh_cells_per_bandclass_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, arfcn, (uint16_t)0, (uint16_t)2047)); HANDLE_CODE(pack_dyn_seq_of(bref, pci_list, 1, 16, UnalignedIntegerPacker(0, 511))); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cells_per_bandclass_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(arfcn, bref, (uint16_t)0, (uint16_t)2047)); HANDLE_CODE(unpack_dyn_seq_of(pci_list, bref, 1, 16, UnalignedIntegerPacker(0, 511))); return SRSASN_SUCCESS; } void neigh_cells_per_bandclass_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("arfcn", arfcn); j.start_array("physCellIdList"); for (uint32_t i1 = 0; i1 < pci_list.size(); ++i1) { j.write_int(pci_list[i1]); } j.end_array(); j.end_obj(); } // NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE SRSASN_CODE neigh_cells_per_bandclass_cdma2000_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, pci_list_v920, 0, 24, UnalignedIntegerPacker(0, 511))); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cells_per_bandclass_cdma2000_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(pci_list_v920, bref, 0, 24, UnalignedIntegerPacker(0, 511))); return SRSASN_SUCCESS; } void neigh_cells_per_bandclass_cdma2000_v920_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("physCellIdList-v920"); for (uint32_t i1 = 0; i1 < pci_list_v920.size(); ++i1) { j.write_int(pci_list_v920[i1]); } j.end_array(); j.end_obj(); } // PhysCellIdRange ::= SEQUENCE SRSASN_CODE pci_range_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(range_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, start, (uint16_t)0, (uint16_t)503)); if (range_present) { HANDLE_CODE(pack_enum(bref, range)); } return SRSASN_SUCCESS; } SRSASN_CODE pci_range_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(range_present, 1)); HANDLE_CODE(unpack_unalign_integer(start, bref, (uint16_t)0, (uint16_t)503)); if (range_present) { HANDLE_CODE(unpack_enum(range, bref)); } return SRSASN_SUCCESS; } void pci_range_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("start", start); if (range_present) { j.write_str("range", range.to_string()); } j.end_obj(); } // RedistributionNeighCell-r13 ::= SEQUENCE SRSASN_CODE redist_neigh_cell_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pci_r13, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, redist_factor_cell_r13, (uint8_t)1, (uint8_t)10)); return SRSASN_SUCCESS; } SRSASN_CODE redist_neigh_cell_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pci_r13, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(redist_factor_cell_r13, bref, (uint8_t)1, (uint8_t)10)); return SRSASN_SUCCESS; } void redist_neigh_cell_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r13", pci_r13); j.write_int("redistributionFactorCell-r13", redist_factor_cell_r13); j.end_obj(); } // SL-DiscTxPowerInfo-r12 ::= SEQUENCE SRSASN_CODE sl_disc_tx_pwr_info_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, disc_max_tx_pwr_r12, (int8_t)-30, (int8_t)33)); return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_pwr_info_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(disc_max_tx_pwr_r12, bref, (int8_t)-30, (int8_t)33)); return SRSASN_SUCCESS; } void sl_disc_tx_pwr_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("discMaxTxPower-r12", disc_max_tx_pwr_r12); j.end_obj(); } // SL-V2X-FreqSelectionConfig-r15 ::= SEQUENCE SRSASN_CODE sl_v2x_freq_sel_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(thresh_cbr_freq_resel_r15_present, 1)); HANDLE_CODE(bref.pack(thresh_cbr_freq_keeping_r15_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, prio_list_r15, 1, 8, UnalignedIntegerPacker(1, 8))); if (thresh_cbr_freq_resel_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_cbr_freq_resel_r15, (uint8_t)0, (uint8_t)100)); } if (thresh_cbr_freq_keeping_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_cbr_freq_keeping_r15, (uint8_t)0, (uint8_t)100)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_freq_sel_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(thresh_cbr_freq_resel_r15_present, 1)); HANDLE_CODE(bref.unpack(thresh_cbr_freq_keeping_r15_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(prio_list_r15, bref, 1, 8, UnalignedIntegerPacker(1, 8))); if (thresh_cbr_freq_resel_r15_present) { HANDLE_CODE(unpack_unalign_integer(thresh_cbr_freq_resel_r15, bref, (uint8_t)0, (uint8_t)100)); } if (thresh_cbr_freq_keeping_r15_present) { HANDLE_CODE(unpack_unalign_integer(thresh_cbr_freq_keeping_r15, bref, (uint8_t)0, (uint8_t)100)); } return SRSASN_SUCCESS; } void sl_v2x_freq_sel_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("priorityList-r15"); for (uint32_t i1 = 0; i1 < prio_list_r15.size(); ++i1) { j.write_int(prio_list_r15[i1]); } j.end_array(); if (thresh_cbr_freq_resel_r15_present) { j.write_int("threshCBR-FreqReselection-r15", thresh_cbr_freq_resel_r15); } if (thresh_cbr_freq_keeping_r15_present) { j.write_int("threshCBR-FreqKeeping-r15", thresh_cbr_freq_keeping_r15); } j.end_obj(); } // SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE SRSASN_CODE sl_v2x_inter_freq_ue_cfg_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(pci_list_r14_present, 1)); HANDLE_CODE(bref.pack(type_tx_sync_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_sync_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_comm_rx_pool_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_comm_tx_pool_normal_r14_present, 1)); HANDLE_CODE(bref.pack(p2x_comm_tx_pool_normal_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_comm_tx_pool_exceptional_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_res_sel_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(zone_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(offset_dfn_r14_present, 1)); if (pci_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, pci_list_r14, 1, 16, UnalignedIntegerPacker(0, 503))); } if (type_tx_sync_r14_present) { HANDLE_CODE(pack_enum(bref, type_tx_sync_r14)); } if (v2x_sync_cfg_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_sync_cfg_r14, 1, 16)); } if (v2x_comm_rx_pool_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_rx_pool_r14, 1, 16)); } if (v2x_comm_tx_pool_normal_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_tx_pool_normal_r14, 1, 8)); } if (p2x_comm_tx_pool_normal_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, p2x_comm_tx_pool_normal_r14, 1, 8)); } if (v2x_comm_tx_pool_exceptional_r14_present) { HANDLE_CODE(v2x_comm_tx_pool_exceptional_r14.pack(bref)); } if (v2x_res_sel_cfg_r14_present) { HANDLE_CODE(v2x_res_sel_cfg_r14.pack(bref)); } if (zone_cfg_r14_present) { HANDLE_CODE(zone_cfg_r14.pack(bref)); } if (offset_dfn_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, offset_dfn_r14, (uint16_t)0, (uint16_t)1000)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_inter_freq_ue_cfg_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(pci_list_r14_present, 1)); HANDLE_CODE(bref.unpack(type_tx_sync_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_sync_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_comm_rx_pool_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_comm_tx_pool_normal_r14_present, 1)); HANDLE_CODE(bref.unpack(p2x_comm_tx_pool_normal_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_comm_tx_pool_exceptional_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_res_sel_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(zone_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(offset_dfn_r14_present, 1)); if (pci_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(pci_list_r14, bref, 1, 16, UnalignedIntegerPacker(0, 503))); } if (type_tx_sync_r14_present) { HANDLE_CODE(unpack_enum(type_tx_sync_r14, bref)); } if (v2x_sync_cfg_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_sync_cfg_r14, bref, 1, 16)); } if (v2x_comm_rx_pool_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_rx_pool_r14, bref, 1, 16)); } if (v2x_comm_tx_pool_normal_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_tx_pool_normal_r14, bref, 1, 8)); } if (p2x_comm_tx_pool_normal_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(p2x_comm_tx_pool_normal_r14, bref, 1, 8)); } if (v2x_comm_tx_pool_exceptional_r14_present) { HANDLE_CODE(v2x_comm_tx_pool_exceptional_r14.unpack(bref)); } if (v2x_res_sel_cfg_r14_present) { HANDLE_CODE(v2x_res_sel_cfg_r14.unpack(bref)); } if (zone_cfg_r14_present) { HANDLE_CODE(zone_cfg_r14.unpack(bref)); } if (offset_dfn_r14_present) { HANDLE_CODE(unpack_unalign_integer(offset_dfn_r14, bref, (uint16_t)0, (uint16_t)1000)); } return SRSASN_SUCCESS; } void sl_v2x_inter_freq_ue_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); if (pci_list_r14_present) { j.start_array("physCellIdList-r14"); for (uint32_t i1 = 0; i1 < pci_list_r14.size(); ++i1) { j.write_int(pci_list_r14[i1]); } j.end_array(); } if (type_tx_sync_r14_present) { j.write_str("typeTxSync-r14", type_tx_sync_r14.to_string()); } if (v2x_sync_cfg_r14_present) { j.start_array("v2x-SyncConfig-r14"); for (uint32_t i1 = 0; i1 < v2x_sync_cfg_r14.size(); ++i1) { v2x_sync_cfg_r14[i1].to_json(j); } j.end_array(); } if (v2x_comm_rx_pool_r14_present) { j.start_array("v2x-CommRxPool-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_rx_pool_r14.size(); ++i1) { v2x_comm_rx_pool_r14[i1].to_json(j); } j.end_array(); } if (v2x_comm_tx_pool_normal_r14_present) { j.start_array("v2x-CommTxPoolNormal-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_tx_pool_normal_r14.size(); ++i1) { v2x_comm_tx_pool_normal_r14[i1].to_json(j); } j.end_array(); } if (p2x_comm_tx_pool_normal_r14_present) { j.start_array("p2x-CommTxPoolNormal-r14"); for (uint32_t i1 = 0; i1 < p2x_comm_tx_pool_normal_r14.size(); ++i1) { p2x_comm_tx_pool_normal_r14[i1].to_json(j); } j.end_array(); } if (v2x_comm_tx_pool_exceptional_r14_present) { j.write_fieldname("v2x-CommTxPoolExceptional-r14"); v2x_comm_tx_pool_exceptional_r14.to_json(j); } if (v2x_res_sel_cfg_r14_present) { j.write_fieldname("v2x-ResourceSelectionConfig-r14"); v2x_res_sel_cfg_r14.to_json(j); } if (zone_cfg_r14_present) { j.write_fieldname("zoneConfig-r14"); zone_cfg_r14.to_json(j); } if (offset_dfn_r14_present) { j.write_int("offsetDFN-r14", offset_dfn_r14); } j.end_obj(); } // SchedulingInfo-BR-r13 ::= SEQUENCE SRSASN_CODE sched_info_br_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, si_nb_r13, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_enum(bref, si_tbs_r13)); return SRSASN_SUCCESS; } SRSASN_CODE sched_info_br_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(si_nb_r13, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_enum(si_tbs_r13, bref)); return SRSASN_SUCCESS; } void sched_info_br_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("si-Narrowband-r13", si_nb_r13); j.write_str("si-TBS-r13", si_tbs_r13.to_string()); j.end_obj(); } // SpeedStateScaleFactors ::= SEQUENCE SRSASN_CODE speed_state_scale_factors_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sf_medium)); HANDLE_CODE(pack_enum(bref, sf_high)); return SRSASN_SUCCESS; } SRSASN_CODE speed_state_scale_factors_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sf_medium, bref)); HANDLE_CODE(unpack_enum(sf_high, bref)); return SRSASN_SUCCESS; } void speed_state_scale_factors_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sf-Medium", sf_medium.to_string()); j.write_str("sf-High", sf_high.to_string()); j.end_obj(); } // SystemInformationBlockType1-v1350-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1350_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_sel_info_ce1_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (cell_sel_info_ce1_r13_present) { HANDLE_CODE(cell_sel_info_ce1_r13.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1350_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_sel_info_ce1_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (cell_sel_info_ce1_r13_present) { HANDLE_CODE(cell_sel_info_ce1_r13.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v1350_ies_s::to_json(json_writer& j) const { j.start_obj(); if (cell_sel_info_ce1_r13_present) { j.write_fieldname("cellSelectionInfoCE1-r13"); cell_sel_info_ce1_r13.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE SRSASN_CODE sib_type5_v13a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v13a0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (inter_freq_carrier_freq_list_v13a0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v13a0, 1, 8)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type5_v13a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v13a0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (inter_freq_carrier_freq_list_v13a0_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v13a0, bref, 1, 8)); } return SRSASN_SUCCESS; } void sib_type5_v13a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (inter_freq_carrier_freq_list_v13a0_present) { j.start_array("interFreqCarrierFreqList-v13a0"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v13a0.size(); ++i1) { inter_freq_carrier_freq_list_v13a0[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // AC-BarringConfig1XRTT-r9 ::= SEQUENCE SRSASN_CODE ac_barr_cfg1_xrtt_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, ac_barr0to9_r9, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr10_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr11_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr12_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr13_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr14_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr15_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr_msg_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr_reg_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, ac_barr_emg_r9, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE ac_barr_cfg1_xrtt_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(ac_barr0to9_r9, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(unpack_unalign_integer(ac_barr10_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(ac_barr11_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(ac_barr12_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(ac_barr13_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(ac_barr14_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(ac_barr15_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(ac_barr_msg_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(ac_barr_reg_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(ac_barr_emg_r9, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void ac_barr_cfg1_xrtt_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("ac-Barring0to9-r9", ac_barr0to9_r9); j.write_int("ac-Barring10-r9", ac_barr10_r9); j.write_int("ac-Barring11-r9", ac_barr11_r9); j.write_int("ac-Barring12-r9", ac_barr12_r9); j.write_int("ac-Barring13-r9", ac_barr13_r9); j.write_int("ac-Barring14-r9", ac_barr14_r9); j.write_int("ac-Barring15-r9", ac_barr15_r9); j.write_int("ac-BarringMsg-r9", ac_barr_msg_r9); j.write_int("ac-BarringReg-r9", ac_barr_reg_r9); j.write_int("ac-BarringEmg-r9", ac_barr_emg_r9); j.end_obj(); } // BarringPerACDC-Category-r13 ::= SEQUENCE SRSASN_CODE barr_per_acdc_category_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(acdc_barr_cfg_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, acdc_category_r13, (uint8_t)1, (uint8_t)16)); if (acdc_barr_cfg_r13_present) { HANDLE_CODE(pack_enum(bref, acdc_barr_cfg_r13.ac_barr_factor_r13)); HANDLE_CODE(pack_enum(bref, acdc_barr_cfg_r13.ac_barr_time_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE barr_per_acdc_category_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(acdc_barr_cfg_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(acdc_category_r13, bref, (uint8_t)1, (uint8_t)16)); if (acdc_barr_cfg_r13_present) { HANDLE_CODE(unpack_enum(acdc_barr_cfg_r13.ac_barr_factor_r13, bref)); HANDLE_CODE(unpack_enum(acdc_barr_cfg_r13.ac_barr_time_r13, bref)); } return SRSASN_SUCCESS; } void barr_per_acdc_category_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("acdc-Category-r13", acdc_category_r13); if (acdc_barr_cfg_r13_present) { j.write_fieldname("acdc-BarringConfig-r13"); j.start_obj(); j.write_str("ac-BarringFactor-r13", acdc_barr_cfg_r13.ac_barr_factor_r13.to_string()); j.write_str("ac-BarringTime-r13", acdc_barr_cfg_r13.ac_barr_time_r13.to_string()); j.end_obj(); } j.end_obj(); } // CSFB-RegistrationParam1XRTT ::= SEQUENCE SRSASN_CODE csfb_regist_param1_xrtt_s::pack(bit_ref& bref) const { HANDLE_CODE(sid.pack(bref)); HANDLE_CODE(nid.pack(bref)); HANDLE_CODE(bref.pack(multiple_sid, 1)); HANDLE_CODE(bref.pack(multiple_nid, 1)); HANDLE_CODE(bref.pack(home_reg, 1)); HANDLE_CODE(bref.pack(foreign_sid_reg, 1)); HANDLE_CODE(bref.pack(foreign_nid_reg, 1)); HANDLE_CODE(bref.pack(param_reg, 1)); HANDLE_CODE(bref.pack(pwr_up_reg, 1)); HANDLE_CODE(regist_period.pack(bref)); HANDLE_CODE(regist_zone.pack(bref)); HANDLE_CODE(total_zone.pack(bref)); HANDLE_CODE(zone_timer.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE csfb_regist_param1_xrtt_s::unpack(bit_ref& bref) { HANDLE_CODE(sid.unpack(bref)); HANDLE_CODE(nid.unpack(bref)); HANDLE_CODE(bref.unpack(multiple_sid, 1)); HANDLE_CODE(bref.unpack(multiple_nid, 1)); HANDLE_CODE(bref.unpack(home_reg, 1)); HANDLE_CODE(bref.unpack(foreign_sid_reg, 1)); HANDLE_CODE(bref.unpack(foreign_nid_reg, 1)); HANDLE_CODE(bref.unpack(param_reg, 1)); HANDLE_CODE(bref.unpack(pwr_up_reg, 1)); HANDLE_CODE(regist_period.unpack(bref)); HANDLE_CODE(regist_zone.unpack(bref)); HANDLE_CODE(total_zone.unpack(bref)); HANDLE_CODE(zone_timer.unpack(bref)); return SRSASN_SUCCESS; } void csfb_regist_param1_xrtt_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sid", sid.to_string()); j.write_str("nid", nid.to_string()); j.write_bool("multipleSID", multiple_sid); j.write_bool("multipleNID", multiple_nid); j.write_bool("homeReg", home_reg); j.write_bool("foreignSIDReg", foreign_sid_reg); j.write_bool("foreignNIDReg", foreign_nid_reg); j.write_bool("parameterReg", param_reg); j.write_bool("powerUpReg", pwr_up_reg); j.write_str("registrationPeriod", regist_period.to_string()); j.write_str("registrationZone", regist_zone.to_string()); j.write_str("totalZone", total_zone.to_string()); j.write_str("zoneTimer", zone_timer.to_string()); j.end_obj(); } // CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE SRSASN_CODE csfb_regist_param1_xrtt_v920_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE csfb_regist_param1_xrtt_v920_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void csfb_regist_param1_xrtt_v920_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("powerDownReg-r9", "true"); j.end_obj(); } // CellReselectionParametersCDMA2000-r11 ::= SEQUENCE SRSASN_CODE cell_resel_params_cdma2000_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(t_resel_cdma2000_sf_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, band_class_list, 1, 32)); HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list_r11, 1, 16)); HANDLE_CODE(pack_unalign_integer(bref, t_resel_cdma2000, (uint8_t)0, (uint8_t)7)); if (t_resel_cdma2000_sf_present) { HANDLE_CODE(t_resel_cdma2000_sf.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cell_resel_params_cdma2000_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(t_resel_cdma2000_sf_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(band_class_list, bref, 1, 32)); HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list_r11, bref, 1, 16)); HANDLE_CODE(unpack_unalign_integer(t_resel_cdma2000, bref, (uint8_t)0, (uint8_t)7)); if (t_resel_cdma2000_sf_present) { HANDLE_CODE(t_resel_cdma2000_sf.unpack(bref)); } return SRSASN_SUCCESS; } void cell_resel_params_cdma2000_r11_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("bandClassList"); for (uint32_t i1 = 0; i1 < band_class_list.size(); ++i1) { band_class_list[i1].to_json(j); } j.end_array(); j.start_array("neighCellList-r11"); for (uint32_t i1 = 0; i1 < neigh_cell_list_r11.size(); ++i1) { neigh_cell_list_r11[i1].to_json(j); } j.end_array(); j.write_int("t-ReselectionCDMA2000", t_resel_cdma2000); if (t_resel_cdma2000_sf_present) { j.write_fieldname("t-ReselectionCDMA2000-SF"); t_resel_cdma2000_sf.to_json(j); } j.end_obj(); } // CellSelectionInfoCE-r13 ::= SEQUENCE SRSASN_CODE cell_sel_info_ce_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(q_qual_min_rsrq_ce_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_ce_r13, (int8_t)-70, (int8_t)-22)); if (q_qual_min_rsrq_ce_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_rsrq_ce_r13, (int8_t)-34, (int8_t)-3)); } return SRSASN_SUCCESS; } SRSASN_CODE cell_sel_info_ce_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(q_qual_min_rsrq_ce_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_ce_r13, bref, (int8_t)-70, (int8_t)-22)); if (q_qual_min_rsrq_ce_r13_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_rsrq_ce_r13, bref, (int8_t)-34, (int8_t)-3)); } return SRSASN_SUCCESS; } void cell_sel_info_ce_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("q-RxLevMinCE-r13", q_rx_lev_min_ce_r13); if (q_qual_min_rsrq_ce_r13_present) { j.write_int("q-QualMinRSRQ-CE-r13", q_qual_min_rsrq_ce_r13); } j.end_obj(); } // CellSelectionInfoNFreq-r13 ::= SEQUENCE SRSASN_CODE cell_sel_info_nfreq_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(q_rx_lev_min_offset_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_r13, (int8_t)-70, (int8_t)-22)); if (q_rx_lev_min_offset_present) { HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_offset, (uint8_t)1, (uint8_t)8)); } HANDLE_CODE(pack_enum(bref, q_hyst_r13)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_resel_r13, (int8_t)-70, (int8_t)-22)); HANDLE_CODE(pack_unalign_integer(bref, t_resel_eutra_r13, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE cell_sel_info_nfreq_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(q_rx_lev_min_offset_present, 1)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_r13, bref, (int8_t)-70, (int8_t)-22)); if (q_rx_lev_min_offset_present) { HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_offset, bref, (uint8_t)1, (uint8_t)8)); } HANDLE_CODE(unpack_enum(q_hyst_r13, bref)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_resel_r13, bref, (int8_t)-70, (int8_t)-22)); HANDLE_CODE(unpack_unalign_integer(t_resel_eutra_r13, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void cell_sel_info_nfreq_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("q-RxLevMin-r13", q_rx_lev_min_r13); if (q_rx_lev_min_offset_present) { j.write_int("q-RxLevMinOffset", q_rx_lev_min_offset); } j.write_str("q-Hyst-r13", q_hyst_r13.to_string()); j.write_int("q-RxLevMinReselection-r13", q_rx_lev_min_resel_r13); j.write_int("t-ReselectionEUTRA-r13", t_resel_eutra_r13); j.end_obj(); } // InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v10j0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); if (freq_band_info_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); } if (multi_band_info_list_v10j0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v10j0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); if (freq_band_info_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); } if (multi_band_info_list_v10j0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v10j0_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_info_r10_present) { j.start_array("freqBandInfo-r10"); for (uint32_t i1 = 0; i1 < freq_band_info_r10.size(); ++i1) { freq_band_info_r10[i1].to_json(j); } j.end_array(); } if (multi_band_info_list_v10j0_present) { j.start_array("multiBandInfoList-v10j0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v10j0.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < multi_band_info_list_v10j0[i1].size(); ++i2) { multi_band_info_list_v10j0[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } j.end_obj(); } // InterFreqNeighCellInfo ::= SEQUENCE SRSASN_CODE inter_freq_neigh_cell_info_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_enum(bref, q_offset_cell)); return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_neigh_cell_info_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_enum(q_offset_cell, bref)); return SRSASN_SUCCESS; } void inter_freq_neigh_cell_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId", pci); j.write_str("q-OffsetCell", q_offset_cell.to_string()); j.end_obj(); } // NS-PmaxValueNR-r15 ::= SEQUENCE SRSASN_CODE ns_pmax_value_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(add_pmax_nr_r15_present, 1)); if (add_pmax_nr_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, add_pmax_nr_r15, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(pack_unalign_integer(bref, add_spec_emission_nr_r15, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE ns_pmax_value_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(add_pmax_nr_r15_present, 1)); if (add_pmax_nr_r15_present) { HANDLE_CODE(unpack_unalign_integer(add_pmax_nr_r15, bref, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(unpack_unalign_integer(add_spec_emission_nr_r15, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void ns_pmax_value_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); if (add_pmax_nr_r15_present) { j.write_int("additionalPmaxNR-r15", add_pmax_nr_r15); } j.write_int("additionalSpectrumEmissionNR-r15", add_spec_emission_nr_r15); j.end_obj(); } // PLMN-IdentityInfo2-r12 ::= CHOICE void plmn_id_info2_r12_c::destroy_() { switch (type_) { case types::plmn_id_r12: c.destroy(); break; default: break; } } void plmn_id_info2_r12_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::plmn_idx_r12: break; case types::plmn_id_r12: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); } } plmn_id_info2_r12_c::plmn_id_info2_r12_c(const plmn_id_info2_r12_c& other) { type_ = other.type(); switch (type_) { case types::plmn_idx_r12: c.init(other.c.get()); break; case types::plmn_id_r12: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); } } plmn_id_info2_r12_c& plmn_id_info2_r12_c::operator=(const plmn_id_info2_r12_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::plmn_idx_r12: c.set(other.c.get()); break; case types::plmn_id_r12: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); } return *this; } void plmn_id_info2_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::plmn_idx_r12: j.write_int("plmn-Index-r12", c.get()); break; case types::plmn_id_r12: j.write_fieldname("plmnIdentity-r12"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); } j.end_obj(); } SRSASN_CODE plmn_id_info2_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::plmn_idx_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)6)); break; case types::plmn_id_r12: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE plmn_id_info2_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::plmn_idx_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)6)); break; case types::plmn_id_r12: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PRACH-ParametersCE-r13 ::= SEQUENCE SRSASN_CODE prach_params_ce_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(prach_start_sf_r13_present, 1)); HANDLE_CODE(bref.pack(max_num_preamb_attempt_ce_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, prach_cfg_idx_r13, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(pack_unalign_integer(bref, prach_freq_offset_r13, (uint8_t)0, (uint8_t)94)); if (prach_start_sf_r13_present) { HANDLE_CODE(pack_enum(bref, prach_start_sf_r13)); } if (max_num_preamb_attempt_ce_r13_present) { HANDLE_CODE(pack_enum(bref, max_num_preamb_attempt_ce_r13)); } HANDLE_CODE(pack_enum(bref, num_repeat_per_preamb_attempt_r13)); HANDLE_CODE(pack_dyn_seq_of(bref, mpdcch_nbs_to_monitor_r13, 1, 2, UnalignedIntegerPacker(1, 16))); HANDLE_CODE(pack_enum(bref, mpdcch_num_repeat_ra_r13)); HANDLE_CODE(pack_enum(bref, prach_hop_cfg_r13)); return SRSASN_SUCCESS; } SRSASN_CODE prach_params_ce_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(prach_start_sf_r13_present, 1)); HANDLE_CODE(bref.unpack(max_num_preamb_attempt_ce_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(prach_cfg_idx_r13, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(unpack_unalign_integer(prach_freq_offset_r13, bref, (uint8_t)0, (uint8_t)94)); if (prach_start_sf_r13_present) { HANDLE_CODE(unpack_enum(prach_start_sf_r13, bref)); } if (max_num_preamb_attempt_ce_r13_present) { HANDLE_CODE(unpack_enum(max_num_preamb_attempt_ce_r13, bref)); } HANDLE_CODE(unpack_enum(num_repeat_per_preamb_attempt_r13, bref)); HANDLE_CODE(unpack_dyn_seq_of(mpdcch_nbs_to_monitor_r13, bref, 1, 2, UnalignedIntegerPacker(1, 16))); HANDLE_CODE(unpack_enum(mpdcch_num_repeat_ra_r13, bref)); HANDLE_CODE(unpack_enum(prach_hop_cfg_r13, bref)); return SRSASN_SUCCESS; } void prach_params_ce_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("prach-ConfigIndex-r13", prach_cfg_idx_r13); j.write_int("prach-FreqOffset-r13", prach_freq_offset_r13); if (prach_start_sf_r13_present) { j.write_str("prach-StartingSubframe-r13", prach_start_sf_r13.to_string()); } if (max_num_preamb_attempt_ce_r13_present) { j.write_str("maxNumPreambleAttemptCE-r13", max_num_preamb_attempt_ce_r13.to_string()); } j.write_str("numRepetitionPerPreambleAttempt-r13", num_repeat_per_preamb_attempt_r13.to_string()); j.start_array("mpdcch-NarrowbandsToMonitor-r13"); for (uint32_t i1 = 0; i1 < mpdcch_nbs_to_monitor_r13.size(); ++i1) { j.write_int(mpdcch_nbs_to_monitor_r13[i1]); } j.end_array(); j.write_str("mpdcch-NumRepetition-RA-r13", mpdcch_num_repeat_ra_r13.to_string()); j.write_str("prach-HoppingConfig-r13", prach_hop_cfg_r13.to_string()); j.end_obj(); } // PreRegistrationInfoHRPD ::= SEQUENCE SRSASN_CODE pre_regist_info_hrpd_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pre_regist_zone_id_present, 1)); HANDLE_CODE(bref.pack(secondary_pre_regist_zone_id_list_present, 1)); HANDLE_CODE(bref.pack(pre_regist_allowed, 1)); if (pre_regist_zone_id_present) { HANDLE_CODE(pack_unalign_integer(bref, pre_regist_zone_id, (uint8_t)0, (uint8_t)255)); } if (secondary_pre_regist_zone_id_list_present) { HANDLE_CODE( pack_dyn_seq_of(bref, secondary_pre_regist_zone_id_list, 1, 2, UnalignedIntegerPacker(0, 255))); } return SRSASN_SUCCESS; } SRSASN_CODE pre_regist_info_hrpd_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pre_regist_zone_id_present, 1)); HANDLE_CODE(bref.unpack(secondary_pre_regist_zone_id_list_present, 1)); HANDLE_CODE(bref.unpack(pre_regist_allowed, 1)); if (pre_regist_zone_id_present) { HANDLE_CODE(unpack_unalign_integer(pre_regist_zone_id, bref, (uint8_t)0, (uint8_t)255)); } if (secondary_pre_regist_zone_id_list_present) { HANDLE_CODE( unpack_dyn_seq_of(secondary_pre_regist_zone_id_list, bref, 1, 2, UnalignedIntegerPacker(0, 255))); } return SRSASN_SUCCESS; } void pre_regist_info_hrpd_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("preRegistrationAllowed", pre_regist_allowed); if (pre_regist_zone_id_present) { j.write_int("preRegistrationZoneId", pre_regist_zone_id); } if (secondary_pre_regist_zone_id_list_present) { j.start_array("secondaryPreRegistrationZoneIdList"); for (uint32_t i1 = 0; i1 < secondary_pre_regist_zone_id_list.size(); ++i1) { j.write_int(secondary_pre_regist_zone_id_list[i1]); } j.end_array(); } j.end_obj(); } // RACH-CE-LevelInfo-r13 ::= SEQUENCE SRSASN_CODE rach_ce_level_info_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, preamb_map_info_r13.first_preamb_r13, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(pack_unalign_integer(bref, preamb_map_info_r13.last_preamb_r13, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(pack_enum(bref, ra_resp_win_size_r13)); HANDLE_CODE(pack_enum(bref, mac_contention_resolution_timer_r13)); HANDLE_CODE(pack_enum(bref, rar_hop_cfg_r13)); if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(edt_params_r15_present != (edt_params_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= edt_params_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(edt_params_r15_present, 1)); if (edt_params_r15_present) { HANDLE_CODE(bref.pack(edt_params_r15->mac_contention_resolution_timer_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, edt_params_r15->edt_last_preamb_r15, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(bref.pack(edt_params_r15->edt_small_tbs_enabled_r15, 1)); HANDLE_CODE(pack_enum(bref, edt_params_r15->edt_tbs_r15)); if (edt_params_r15->mac_contention_resolution_timer_r15_present) { HANDLE_CODE(pack_enum(bref, edt_params_r15->mac_contention_resolution_timer_r15)); } } } } return SRSASN_SUCCESS; } SRSASN_CODE rach_ce_level_info_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(preamb_map_info_r13.first_preamb_r13, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(unpack_unalign_integer(preamb_map_info_r13.last_preamb_r13, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(unpack_enum(ra_resp_win_size_r13, bref)); HANDLE_CODE(unpack_enum(mac_contention_resolution_timer_r13, bref)); HANDLE_CODE(unpack_enum(rar_hop_cfg_r13, bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(edt_params_r15_present, 1)); if (edt_params_r15_present) { edt_params_r15 = make_copy_ptr(edt_params_r15_s_()); HANDLE_CODE(bref.unpack(edt_params_r15->mac_contention_resolution_timer_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(edt_params_r15->edt_last_preamb_r15, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(bref.unpack(edt_params_r15->edt_small_tbs_enabled_r15, 1)); HANDLE_CODE(unpack_enum(edt_params_r15->edt_tbs_r15, bref)); if (edt_params_r15->mac_contention_resolution_timer_r15_present) { HANDLE_CODE(unpack_enum(edt_params_r15->mac_contention_resolution_timer_r15, bref)); } } } } return SRSASN_SUCCESS; } void rach_ce_level_info_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("preambleMappingInfo-r13"); j.start_obj(); j.write_int("firstPreamble-r13", preamb_map_info_r13.first_preamb_r13); j.write_int("lastPreamble-r13", preamb_map_info_r13.last_preamb_r13); j.end_obj(); j.write_str("ra-ResponseWindowSize-r13", ra_resp_win_size_r13.to_string()); j.write_str("mac-ContentionResolutionTimer-r13", mac_contention_resolution_timer_r13.to_string()); j.write_str("rar-HoppingConfig-r13", rar_hop_cfg_r13.to_string()); if (ext) { rrc_asn1_warn_assert(edt_params_r15_present != (edt_params_r15.get() != NULL), __FILE__, __LINE__); if (edt_params_r15_present) { j.write_fieldname("edt-Parameters-r15"); j.start_obj(); j.write_int("edt-LastPreamble-r15", edt_params_r15->edt_last_preamb_r15); j.write_bool("edt-SmallTBS-Enabled-r15", edt_params_r15->edt_small_tbs_enabled_r15); j.write_str("edt-TBS-r15", edt_params_r15->edt_tbs_r15.to_string()); if (edt_params_r15->mac_contention_resolution_timer_r15_present) { j.write_str("mac-ContentionResolutionTimer-r15", edt_params_r15->mac_contention_resolution_timer_r15.to_string()); } j.end_obj(); } } j.end_obj(); } // SL-AllowedCarrierFreqList-r15 ::= SEQUENCE SRSASN_CODE sl_allowed_carrier_freq_list_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, allowed_carrier_freq_set1, 1, 8, UnalignedIntegerPacker(0, 262143))); HANDLE_CODE(pack_dyn_seq_of(bref, allowed_carrier_freq_set2, 1, 8, UnalignedIntegerPacker(0, 262143))); return SRSASN_SUCCESS; } SRSASN_CODE sl_allowed_carrier_freq_list_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(allowed_carrier_freq_set1, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); HANDLE_CODE(unpack_dyn_seq_of(allowed_carrier_freq_set2, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); return SRSASN_SUCCESS; } void sl_allowed_carrier_freq_list_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("allowedCarrierFreqSet1"); for (uint32_t i1 = 0; i1 < allowed_carrier_freq_set1.size(); ++i1) { j.write_int(allowed_carrier_freq_set1[i1]); } j.end_array(); j.start_array("allowedCarrierFreqSet2"); for (uint32_t i1 = 0; i1 < allowed_carrier_freq_set2.size(); ++i1) { j.write_int(allowed_carrier_freq_set2[i1]); } j.end_array(); j.end_obj(); } // SL-DiscTxResourcesInterFreq-r13 ::= CHOICE void sl_disc_tx_res_inter_freq_r13_c::set(types::options e) { type_ = e; } void sl_disc_tx_res_inter_freq_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::acquire_si_from_carrier_r13: break; case types::disc_tx_pool_common_r13: j.start_array("discTxPoolCommon-r13"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { c[i1].to_json(j); } j.end_array(); break; case types::request_ded_r13: break; case types::no_tx_on_carrier_r13: break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_inter_freq_r13_c"); } j.end_obj(); } SRSASN_CODE sl_disc_tx_res_inter_freq_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::acquire_si_from_carrier_r13: break; case types::disc_tx_pool_common_r13: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 4)); break; case types::request_ded_r13: break; case types::no_tx_on_carrier_r13: break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_inter_freq_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_res_inter_freq_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::acquire_si_from_carrier_r13: break; case types::disc_tx_pool_common_r13: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 4)); break; case types::request_ded_r13: break; case types::no_tx_on_carrier_r13: break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_inter_freq_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType1-v1320-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1320_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_hop_params_dl_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (freq_hop_params_dl_r13_present) { HANDLE_CODE(bref.pack(freq_hop_params_dl_r13.mpdcch_pdsch_hop_nb_r13_present, 1)); HANDLE_CODE(bref.pack(freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_a_r13_present, 1)); HANDLE_CODE(bref.pack(freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_b_r13_present, 1)); HANDLE_CODE(bref.pack(freq_hop_params_dl_r13.mpdcch_pdsch_hop_offset_r13_present, 1)); if (freq_hop_params_dl_r13.mpdcch_pdsch_hop_nb_r13_present) { HANDLE_CODE(pack_enum(bref, freq_hop_params_dl_r13.mpdcch_pdsch_hop_nb_r13)); } if (freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_a_r13_present) { HANDLE_CODE(freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_a_r13.pack(bref)); } if (freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_b_r13_present) { HANDLE_CODE(freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_b_r13.pack(bref)); } if (freq_hop_params_dl_r13.mpdcch_pdsch_hop_offset_r13_present) { HANDLE_CODE( pack_unalign_integer(bref, freq_hop_params_dl_r13.mpdcch_pdsch_hop_offset_r13, (uint8_t)1, (uint8_t)16)); } } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1320_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_hop_params_dl_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (freq_hop_params_dl_r13_present) { HANDLE_CODE(bref.unpack(freq_hop_params_dl_r13.mpdcch_pdsch_hop_nb_r13_present, 1)); HANDLE_CODE(bref.unpack(freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_b_r13_present, 1)); HANDLE_CODE(bref.unpack(freq_hop_params_dl_r13.mpdcch_pdsch_hop_offset_r13_present, 1)); if (freq_hop_params_dl_r13.mpdcch_pdsch_hop_nb_r13_present) { HANDLE_CODE(unpack_enum(freq_hop_params_dl_r13.mpdcch_pdsch_hop_nb_r13, bref)); } if (freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_a_r13_present) { HANDLE_CODE(freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_a_r13.unpack(bref)); } if (freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_b_r13_present) { HANDLE_CODE(freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_b_r13.unpack(bref)); } if (freq_hop_params_dl_r13.mpdcch_pdsch_hop_offset_r13_present) { HANDLE_CODE( unpack_unalign_integer(freq_hop_params_dl_r13.mpdcch_pdsch_hop_offset_r13, bref, (uint8_t)1, (uint8_t)16)); } } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v1320_ies_s::to_json(json_writer& j) const { j.start_obj(); if (freq_hop_params_dl_r13_present) { j.write_fieldname("freqHoppingParametersDL-r13"); j.start_obj(); if (freq_hop_params_dl_r13.mpdcch_pdsch_hop_nb_r13_present) { j.write_str("mpdcch-pdsch-HoppingNB-r13", freq_hop_params_dl_r13.mpdcch_pdsch_hop_nb_r13.to_string()); } if (freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_a_r13_present) { j.write_fieldname("interval-DLHoppingConfigCommonModeA-r13"); freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_a_r13.to_json(j); } if (freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_b_r13_present) { j.write_fieldname("interval-DLHoppingConfigCommonModeB-r13"); freq_hop_params_dl_r13.interv_dl_hop_cfg_common_mode_b_r13.to_json(j); } if (freq_hop_params_dl_r13.mpdcch_pdsch_hop_offset_r13_present) { j.write_int("mpdcch-pdsch-HoppingOffset-r13", freq_hop_params_dl_r13.mpdcch_pdsch_hop_offset_r13); } j.end_obj(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::destroy_() {} void sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::set(types::options e) { destroy_(); type_ = e; } sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_:: interv_dl_hop_cfg_common_mode_a_r13_c_( const sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_& other) { type_ = other.type(); switch (type_) { case types::interv_fdd_r13: c.init(other.c.get()); break; case types::interv_tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_"); } } sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_& sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_:: operator=(const sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::interv_fdd_r13: c.set(other.c.get()); break; case types::interv_tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_"); } return *this; } void sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::to_json( json_writer& j) const { j.start_obj(); switch (type_) { case types::interv_fdd_r13: j.write_str("interval-FDD-r13", c.get().to_string()); break; case types::interv_tdd_r13: j.write_str("interval-TDD-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_"); } j.end_obj(); } SRSASN_CODE sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::interv_tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::interv_tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::destroy_() {} void sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::set(types::options e) { destroy_(); type_ = e; } sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_:: interv_dl_hop_cfg_common_mode_b_r13_c_( const sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_& other) { type_ = other.type(); switch (type_) { case types::interv_fdd_r13: c.init(other.c.get()); break; case types::interv_tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_"); } } sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_& sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_:: operator=(const sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::interv_fdd_r13: c.set(other.c.get()); break; case types::interv_tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_"); } return *this; } void sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::to_json( json_writer& j) const { j.start_obj(); switch (type_) { case types::interv_fdd_r13: j.write_str("interval-FDD-r13", c.get().to_string()); break; case types::interv_tdd_r13: j.write_str("interval-TDD-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_"); } j.end_obj(); } SRSASN_CODE sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::interv_tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::interv_tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE SRSASN_CODE sib_type2_v10m0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_info_v10l0_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (freq_info_v10l0_present) { HANDLE_CODE(pack_unalign_integer(bref, freq_info_v10l0.add_spec_emission_v10l0, (uint16_t)33, (uint16_t)288)); } if (multi_band_info_list_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, UnalignedIntegerPacker(33, 288))); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type2_v10m0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_info_v10l0_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (freq_info_v10l0_present) { HANDLE_CODE(unpack_unalign_integer(freq_info_v10l0.add_spec_emission_v10l0, bref, (uint16_t)33, (uint16_t)288)); } if (multi_band_info_list_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, UnalignedIntegerPacker(33, 288))); } return SRSASN_SUCCESS; } void sib_type2_v10m0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (freq_info_v10l0_present) { j.write_fieldname("freqInfo-v10l0"); j.start_obj(); j.write_int("additionalSpectrumEmission-v10l0", freq_info_v10l0.add_spec_emission_v10l0); j.end_obj(); } if (multi_band_info_list_v10l0_present) { j.start_array("multiBandInfoList-v10l0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v10l0.size(); ++i1) { j.write_int(multi_band_info_list_v10l0[i1]); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE SRSASN_CODE sib_type5_v10l0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v10l0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (inter_freq_carrier_freq_list_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v10l0, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type5_v10l0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v10l0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (inter_freq_carrier_freq_list_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v10l0, bref, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type5_v10l0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (inter_freq_carrier_freq_list_v10l0_present) { j.start_array("interFreqCarrierFreqList-v10l0"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v10l0.size(); ++i1) { inter_freq_carrier_freq_list_v10l0[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemTimeInfoCDMA2000 ::= SEQUENCE SRSASN_CODE sys_time_info_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cdma_eutra_synchronisation, 1)); HANDLE_CODE(cdma_sys_time.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sys_time_info_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cdma_eutra_synchronisation, 1)); HANDLE_CODE(cdma_sys_time.unpack(bref)); return SRSASN_SUCCESS; } void sys_time_info_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("cdma-EUTRA-Synchronisation", cdma_eutra_synchronisation); j.write_fieldname("cdma-SystemTime"); cdma_sys_time.to_json(j); j.end_obj(); } void sys_time_info_cdma2000_s::cdma_sys_time_c_::destroy_() { switch (type_) { case types::sync_sys_time: c.destroy >(); break; case types::async_sys_time: c.destroy >(); break; default: break; } } void sys_time_info_cdma2000_s::cdma_sys_time_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sync_sys_time: c.init >(); break; case types::async_sys_time: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); } } sys_time_info_cdma2000_s::cdma_sys_time_c_::cdma_sys_time_c_(const sys_time_info_cdma2000_s::cdma_sys_time_c_& other) { type_ = other.type(); switch (type_) { case types::sync_sys_time: c.init(other.c.get >()); break; case types::async_sys_time: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); } } sys_time_info_cdma2000_s::cdma_sys_time_c_& sys_time_info_cdma2000_s::cdma_sys_time_c_:: operator=(const sys_time_info_cdma2000_s::cdma_sys_time_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sync_sys_time: c.set(other.c.get >()); break; case types::async_sys_time: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); } return *this; } void sys_time_info_cdma2000_s::cdma_sys_time_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sync_sys_time: j.write_str("synchronousSystemTime", c.get >().to_string()); break; case types::async_sys_time: j.write_str("asynchronousSystemTime", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); } j.end_obj(); } SRSASN_CODE sys_time_info_cdma2000_s::cdma_sys_time_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sync_sys_time: HANDLE_CODE(c.get >().pack(bref)); break; case types::async_sys_time: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sys_time_info_cdma2000_s::cdma_sys_time_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sync_sys_time: HANDLE_CODE(c.get >().unpack(bref)); break; case types::async_sys_time: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UAC-BarringPerCat-r15 ::= SEQUENCE SRSASN_CODE uac_barr_per_cat_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, access_category_r15, (uint8_t)1, (uint8_t)63)); HANDLE_CODE(pack_unalign_integer(bref, uac_barr_info_set_idx_r15, (uint8_t)1, (uint8_t)8)); return SRSASN_SUCCESS; } SRSASN_CODE uac_barr_per_cat_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(access_category_r15, bref, (uint8_t)1, (uint8_t)63)); HANDLE_CODE(unpack_unalign_integer(uac_barr_info_set_idx_r15, bref, (uint8_t)1, (uint8_t)8)); return SRSASN_SUCCESS; } void uac_barr_per_cat_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("accessCategory-r15", access_category_r15); j.write_int("uac-barringInfoSetIndex-r15", uac_barr_info_set_idx_r15); j.end_obj(); } // AC-BarringConfig ::= SEQUENCE SRSASN_CODE ac_barr_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, ac_barr_factor)); HANDLE_CODE(pack_enum(bref, ac_barr_time)); HANDLE_CODE(ac_barr_for_special_ac.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ac_barr_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(ac_barr_factor, bref)); HANDLE_CODE(unpack_enum(ac_barr_time, bref)); HANDLE_CODE(ac_barr_for_special_ac.unpack(bref)); return SRSASN_SUCCESS; } void ac_barr_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("ac-BarringFactor", ac_barr_factor.to_string()); j.write_str("ac-BarringTime", ac_barr_time.to_string()); j.write_str("ac-BarringForSpecialAC", ac_barr_for_special_ac.to_string()); j.end_obj(); } // CarrierFreqsGERAN ::= SEQUENCE SRSASN_CODE carrier_freqs_geran_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, start_arfcn, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(pack_enum(bref, band_ind)); HANDLE_CODE(following_arfcns.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE carrier_freqs_geran_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(start_arfcn, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(unpack_enum(band_ind, bref)); HANDLE_CODE(following_arfcns.unpack(bref)); return SRSASN_SUCCESS; } void carrier_freqs_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("startingARFCN", start_arfcn); j.write_str("bandIndicator", band_ind.to_string()); j.write_fieldname("followingARFCNs"); following_arfcns.to_json(j); j.end_obj(); } void carrier_freqs_geran_s::following_arfcns_c_::destroy_() { switch (type_) { case types::explicit_list_of_arfcns: c.destroy(); break; case types::equally_spaced_arfcns: c.destroy(); break; case types::variable_bit_map_of_arfcns: c.destroy(); break; default: break; } } void carrier_freqs_geran_s::following_arfcns_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::explicit_list_of_arfcns: c.init(); break; case types::equally_spaced_arfcns: c.init(); break; case types::variable_bit_map_of_arfcns: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "carrier_freqs_geran_s::following_arfcns_c_"); } } carrier_freqs_geran_s::following_arfcns_c_::following_arfcns_c_(const carrier_freqs_geran_s::following_arfcns_c_& other) { type_ = other.type(); switch (type_) { case types::explicit_list_of_arfcns: c.init(other.c.get()); break; case types::equally_spaced_arfcns: c.init(other.c.get()); break; case types::variable_bit_map_of_arfcns: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "carrier_freqs_geran_s::following_arfcns_c_"); } } carrier_freqs_geran_s::following_arfcns_c_& carrier_freqs_geran_s::following_arfcns_c_:: operator=(const carrier_freqs_geran_s::following_arfcns_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::explicit_list_of_arfcns: c.set(other.c.get()); break; case types::equally_spaced_arfcns: c.set(other.c.get()); break; case types::variable_bit_map_of_arfcns: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "carrier_freqs_geran_s::following_arfcns_c_"); } return *this; } void carrier_freqs_geran_s::following_arfcns_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::explicit_list_of_arfcns: j.start_array("explicitListOfARFCNs"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_int(c.get()[i1]); } j.end_array(); break; case types::equally_spaced_arfcns: j.write_fieldname("equallySpacedARFCNs"); j.start_obj(); j.write_int("arfcn-Spacing", c.get().arfcn_spacing); j.write_int("numberOfFollowingARFCNs", c.get().nof_following_arfcns); j.end_obj(); break; case types::variable_bit_map_of_arfcns: j.write_str("variableBitMapOfARFCNs", c.get().to_string()); break; default: log_invalid_choice_id(type_, "carrier_freqs_geran_s::following_arfcns_c_"); } j.end_obj(); } SRSASN_CODE carrier_freqs_geran_s::following_arfcns_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::explicit_list_of_arfcns: HANDLE_CODE( pack_dyn_seq_of(bref, c.get(), 0, 31, UnalignedIntegerPacker(0, 1023))); break; case types::equally_spaced_arfcns: HANDLE_CODE(pack_unalign_integer(bref, c.get().arfcn_spacing, (uint8_t)1, (uint8_t)8)); HANDLE_CODE( pack_unalign_integer(bref, c.get().nof_following_arfcns, (uint8_t)0, (uint8_t)31)); break; case types::variable_bit_map_of_arfcns: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "carrier_freqs_geran_s::following_arfcns_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE carrier_freqs_geran_s::following_arfcns_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::explicit_list_of_arfcns: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 0, 31, UnalignedIntegerPacker(0, 1023))); break; case types::equally_spaced_arfcns: HANDLE_CODE( unpack_unalign_integer(c.get().arfcn_spacing, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_unalign_integer(c.get().nof_following_arfcns, bref, (uint8_t)0, (uint8_t)31)); break; case types::variable_bit_map_of_arfcns: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "carrier_freqs_geran_s::following_arfcns_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CellSelectionInfo-v1250 ::= SEQUENCE SRSASN_CODE cell_sel_info_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); return SRSASN_SUCCESS; } SRSASN_CODE cell_sel_info_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); return SRSASN_SUCCESS; } void cell_sel_info_v1250_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); j.end_obj(); } // DeltaFList-PUCCH ::= SEQUENCE SRSASN_CODE delta_flist_pucch_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format1)); HANDLE_CODE(pack_enum(bref, delta_f_pucch_format1b)); HANDLE_CODE(pack_enum(bref, delta_f_pucch_format2)); HANDLE_CODE(pack_enum(bref, delta_f_pucch_format2a)); HANDLE_CODE(pack_enum(bref, delta_f_pucch_format2b)); return SRSASN_SUCCESS; } SRSASN_CODE delta_flist_pucch_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(delta_f_pucch_format1, bref)); HANDLE_CODE(unpack_enum(delta_f_pucch_format1b, bref)); HANDLE_CODE(unpack_enum(delta_f_pucch_format2, bref)); HANDLE_CODE(unpack_enum(delta_f_pucch_format2a, bref)); HANDLE_CODE(unpack_enum(delta_f_pucch_format2b, bref)); return SRSASN_SUCCESS; } void delta_flist_pucch_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("deltaF-PUCCH-Format1", delta_f_pucch_format1.to_string()); j.write_str("deltaF-PUCCH-Format1b", delta_f_pucch_format1b.to_string()); j.write_str("deltaF-PUCCH-Format2", delta_f_pucch_format2.to_string()); j.write_str("deltaF-PUCCH-Format2a", delta_f_pucch_format2a.to_string()); j.write_str("deltaF-PUCCH-Format2b", delta_f_pucch_format2b.to_string()); j.end_obj(); } // EDT-PRACH-ParametersCE-r15 ::= SEQUENCE SRSASN_CODE edt_prach_params_ce_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(edt_prach_params_ce_r15_present, 1)); if (edt_prach_params_ce_r15_present) { HANDLE_CODE(bref.pack(edt_prach_params_ce_r15.prach_start_sf_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, edt_prach_params_ce_r15.prach_cfg_idx_r15, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(pack_unalign_integer(bref, edt_prach_params_ce_r15.prach_freq_offset_r15, (uint8_t)0, (uint8_t)94)); if (edt_prach_params_ce_r15.prach_start_sf_r15_present) { HANDLE_CODE(pack_enum(bref, edt_prach_params_ce_r15.prach_start_sf_r15)); } HANDLE_CODE(pack_dyn_seq_of(bref, edt_prach_params_ce_r15.mpdcch_nbs_to_monitor_r15, 1, 2, UnalignedIntegerPacker(1, 16))); } return SRSASN_SUCCESS; } SRSASN_CODE edt_prach_params_ce_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(edt_prach_params_ce_r15_present, 1)); if (edt_prach_params_ce_r15_present) { HANDLE_CODE(bref.unpack(edt_prach_params_ce_r15.prach_start_sf_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(edt_prach_params_ce_r15.prach_cfg_idx_r15, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(unpack_unalign_integer(edt_prach_params_ce_r15.prach_freq_offset_r15, bref, (uint8_t)0, (uint8_t)94)); if (edt_prach_params_ce_r15.prach_start_sf_r15_present) { HANDLE_CODE(unpack_enum(edt_prach_params_ce_r15.prach_start_sf_r15, bref)); } HANDLE_CODE(unpack_dyn_seq_of(edt_prach_params_ce_r15.mpdcch_nbs_to_monitor_r15, bref, 1, 2, UnalignedIntegerPacker(1, 16))); } return SRSASN_SUCCESS; } void edt_prach_params_ce_r15_s::to_json(json_writer& j) const { j.start_obj(); if (edt_prach_params_ce_r15_present) { j.write_fieldname("edt-PRACH-ParametersCE-r15"); j.start_obj(); j.write_int("prach-ConfigIndex-r15", edt_prach_params_ce_r15.prach_cfg_idx_r15); j.write_int("prach-FreqOffset-r15", edt_prach_params_ce_r15.prach_freq_offset_r15); if (edt_prach_params_ce_r15.prach_start_sf_r15_present) { j.write_str("prach-StartingSubframe-r15", edt_prach_params_ce_r15.prach_start_sf_r15.to_string()); } j.start_array("mpdcch-NarrowbandsToMonitor-r15"); for (uint32_t i1 = 0; i1 < edt_prach_params_ce_r15.mpdcch_nbs_to_monitor_r15.size(); ++i1) { j.write_int(edt_prach_params_ce_r15.mpdcch_nbs_to_monitor_r15[i1]); } j.end_array(); j.end_obj(); } j.end_obj(); } // InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dl_carrier_freq_v9e0_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v9e0_present, 1)); if (dl_carrier_freq_v9e0_present) { HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq_v9e0, (uint32_t)65536, (uint32_t)262143)); } if (multi_band_info_list_v9e0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v9e0, 1, 8)); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dl_carrier_freq_v9e0_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v9e0_present, 1)); if (dl_carrier_freq_v9e0_present) { HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq_v9e0, bref, (uint32_t)65536, (uint32_t)262143)); } if (multi_band_info_list_v9e0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v9e0, bref, 1, 8)); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v9e0_s::to_json(json_writer& j) const { j.start_obj(); if (dl_carrier_freq_v9e0_present) { j.write_int("dl-CarrierFreq-v9e0", dl_carrier_freq_v9e0); } if (multi_band_info_list_v9e0_present) { j.start_array("multiBandInfoList-v9e0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v9e0.size(); ++i1) { multi_band_info_list_v9e0[i1].to_json(j); } j.end_array(); } j.end_obj(); } // MTC-SSB-NR-r15 ::= SEQUENCE SRSASN_CODE mtc_ssb_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(periodicity_and_offset_r15.pack(bref)); HANDLE_CODE(pack_enum(bref, ssb_dur_r15)); return SRSASN_SUCCESS; } SRSASN_CODE mtc_ssb_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(periodicity_and_offset_r15.unpack(bref)); HANDLE_CODE(unpack_enum(ssb_dur_r15, bref)); return SRSASN_SUCCESS; } void mtc_ssb_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("periodicityAndOffset-r15"); periodicity_and_offset_r15.to_json(j); j.write_str("ssb-Duration-r15", ssb_dur_r15.to_string()); j.end_obj(); } void mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::destroy_() {} void mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::set(types::options e) { destroy_(); type_ = e; } mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::periodicity_and_offset_r15_c_( const mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_& other) { type_ = other.type(); switch (type_) { case types::sf5_r15: c.init(other.c.get()); break; case types::sf10_r15: c.init(other.c.get()); break; case types::sf20_r15: c.init(other.c.get()); break; case types::sf40_r15: c.init(other.c.get()); break; case types::sf80_r15: c.init(other.c.get()); break; case types::sf160_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_"); } } mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_& mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_:: operator=(const mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf5_r15: c.set(other.c.get()); break; case types::sf10_r15: c.set(other.c.get()); break; case types::sf20_r15: c.set(other.c.get()); break; case types::sf40_r15: c.set(other.c.get()); break; case types::sf80_r15: c.set(other.c.get()); break; case types::sf160_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_"); } return *this; } void mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf5_r15: j.write_int("sf5-r15", c.get()); break; case types::sf10_r15: j.write_int("sf10-r15", c.get()); break; case types::sf20_r15: j.write_int("sf20-r15", c.get()); break; case types::sf40_r15: j.write_int("sf40-r15", c.get()); break; case types::sf80_r15: j.write_int("sf80-r15", c.get()); break; case types::sf160_r15: j.write_int("sf160-r15", c.get()); break; default: log_invalid_choice_id(type_, "mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_"); } j.end_obj(); } SRSASN_CODE mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf5_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)4)); break; case types::sf10_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)9)); break; case types::sf20_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)19)); break; case types::sf40_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); break; case types::sf80_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::sf160_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; default: log_invalid_choice_id(type_, "mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf5_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)4)); break; case types::sf10_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)9)); break; case types::sf20_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)19)); break; case types::sf40_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); break; case types::sf80_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::sf160_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; default: log_invalid_choice_id(type_, "mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasIdleCarrierEUTRA-r15 ::= SEQUENCE SRSASN_CODE meas_idle_carrier_eutra_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(validity_area_r15_present, 1)); HANDLE_CODE(bref.pack(meas_cell_list_r15_present, 1)); HANDLE_CODE(bref.pack(quality_thres_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r15, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(pack_enum(bref, allowed_meas_bw_r15)); if (validity_area_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, validity_area_r15, 1, 8)); } if (meas_cell_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_cell_list_r15, 1, 8)); } HANDLE_CODE(pack_enum(bref, report_quantities)); if (quality_thres_r15_present) { HANDLE_CODE(bref.pack(quality_thres_r15.idle_rsrp_thres_r15_present, 1)); HANDLE_CODE(bref.pack(quality_thres_r15.idle_rsrq_thres_r15_present, 1)); if (quality_thres_r15.idle_rsrp_thres_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, quality_thres_r15.idle_rsrp_thres_r15, (uint8_t)0, (uint8_t)97)); } if (quality_thres_r15.idle_rsrq_thres_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, quality_thres_r15.idle_rsrq_thres_r15, (int8_t)-30, (int8_t)46)); } } return SRSASN_SUCCESS; } SRSASN_CODE meas_idle_carrier_eutra_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(validity_area_r15_present, 1)); HANDLE_CODE(bref.unpack(meas_cell_list_r15_present, 1)); HANDLE_CODE(bref.unpack(quality_thres_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r15, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(unpack_enum(allowed_meas_bw_r15, bref)); if (validity_area_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(validity_area_r15, bref, 1, 8)); } if (meas_cell_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_cell_list_r15, bref, 1, 8)); } HANDLE_CODE(unpack_enum(report_quantities, bref)); if (quality_thres_r15_present) { HANDLE_CODE(bref.unpack(quality_thres_r15.idle_rsrp_thres_r15_present, 1)); HANDLE_CODE(bref.unpack(quality_thres_r15.idle_rsrq_thres_r15_present, 1)); if (quality_thres_r15.idle_rsrp_thres_r15_present) { HANDLE_CODE(unpack_unalign_integer(quality_thres_r15.idle_rsrp_thres_r15, bref, (uint8_t)0, (uint8_t)97)); } if (quality_thres_r15.idle_rsrq_thres_r15_present) { HANDLE_CODE(unpack_unalign_integer(quality_thres_r15.idle_rsrq_thres_r15, bref, (int8_t)-30, (int8_t)46)); } } return SRSASN_SUCCESS; } void meas_idle_carrier_eutra_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r15", carrier_freq_r15); j.write_str("allowedMeasBandwidth-r15", allowed_meas_bw_r15.to_string()); if (validity_area_r15_present) { j.start_array("validityArea-r15"); for (uint32_t i1 = 0; i1 < validity_area_r15.size(); ++i1) { validity_area_r15[i1].to_json(j); } j.end_array(); } if (meas_cell_list_r15_present) { j.start_array("measCellList-r15"); for (uint32_t i1 = 0; i1 < meas_cell_list_r15.size(); ++i1) { meas_cell_list_r15[i1].to_json(j); } j.end_array(); } j.write_str("reportQuantities", report_quantities.to_string()); if (quality_thres_r15_present) { j.write_fieldname("qualityThreshold-r15"); j.start_obj(); if (quality_thres_r15.idle_rsrp_thres_r15_present) { j.write_int("idleRSRP-Threshold-r15", quality_thres_r15.idle_rsrp_thres_r15); } if (quality_thres_r15.idle_rsrq_thres_r15_present) { j.write_int("idleRSRQ-Threshold-r15", quality_thres_r15.idle_rsrq_thres_r15); } j.end_obj(); } j.end_obj(); } // NeighCellCDMA2000 ::= SEQUENCE SRSASN_CODE neigh_cell_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, band_class)); HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cells_per_freq_list, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cell_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(band_class, bref)); HANDLE_CODE(unpack_dyn_seq_of(neigh_cells_per_freq_list, bref, 1, 16)); return SRSASN_SUCCESS; } void neigh_cell_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("bandClass", band_class.to_string()); j.start_array("neighCellsPerFreqList"); for (uint32_t i1 = 0; i1 < neigh_cells_per_freq_list.size(); ++i1) { neigh_cells_per_freq_list[i1].to_json(j); } j.end_array(); j.end_obj(); } // NeighCellCDMA2000-v920 ::= SEQUENCE SRSASN_CODE neigh_cell_cdma2000_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cells_per_freq_list_v920, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cell_cdma2000_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(neigh_cells_per_freq_list_v920, bref, 1, 16)); return SRSASN_SUCCESS; } void neigh_cell_cdma2000_v920_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("neighCellsPerFreqList-v920"); for (uint32_t i1 = 0; i1 < neigh_cells_per_freq_list_v920.size(); ++i1) { neigh_cells_per_freq_list_v920[i1].to_json(j); } j.end_array(); j.end_obj(); } // PRACH-ConfigInfo ::= SEQUENCE SRSASN_CODE prach_cfg_info_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, prach_cfg_idx, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(bref.pack(high_speed_flag, 1)); HANDLE_CODE(pack_unalign_integer(bref, zero_correlation_zone_cfg, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, prach_freq_offset, (uint8_t)0, (uint8_t)94)); return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_info_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(prach_cfg_idx, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(bref.unpack(high_speed_flag, 1)); HANDLE_CODE(unpack_unalign_integer(zero_correlation_zone_cfg, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(prach_freq_offset, bref, (uint8_t)0, (uint8_t)94)); return SRSASN_SUCCESS; } void prach_cfg_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("prach-ConfigIndex", prach_cfg_idx); j.write_bool("highSpeedFlag", high_speed_flag); j.write_int("zeroCorrelationZoneConfig", zero_correlation_zone_cfg); j.write_int("prach-FreqOffset", prach_freq_offset); j.end_obj(); } // ParametersCDMA2000-r11 ::= SEQUENCE SRSASN_CODE params_cdma2000_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sys_time_info_r11_present, 1)); HANDLE_CODE(bref.pack(params_hrpd_r11_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt_r11_present, 1)); if (sys_time_info_r11_present) { HANDLE_CODE(sys_time_info_r11.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, search_win_size_r11, (uint8_t)0, (uint8_t)15)); if (params_hrpd_r11_present) { HANDLE_CODE(bref.pack(params_hrpd_r11.cell_resel_params_hrpd_r11_present, 1)); HANDLE_CODE(params_hrpd_r11.pre_regist_info_hrpd_r11.pack(bref)); if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { HANDLE_CODE(params_hrpd_r11.cell_resel_params_hrpd_r11.pack(bref)); } } if (params1_xrtt_r11_present) { HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt_r11.long_code_state1_xrtt_r11_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt_r11.cell_resel_params1_xrtt_r11_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present, 1)); if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_r11.pack(bref)); } if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.pack(bref)); } if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { HANDLE_CODE(params1_xrtt_r11.long_code_state1_xrtt_r11.pack(bref)); } if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { HANDLE_CODE(params1_xrtt_r11.cell_resel_params1_xrtt_r11.pack(bref)); } if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { HANDLE_CODE(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.pack(bref)); } if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE params_cdma2000_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sys_time_info_r11_present, 1)); HANDLE_CODE(bref.unpack(params_hrpd_r11_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt_r11_present, 1)); if (sys_time_info_r11_present) { HANDLE_CODE(sys_time_info_r11.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(search_win_size_r11, bref, (uint8_t)0, (uint8_t)15)); if (params_hrpd_r11_present) { HANDLE_CODE(bref.unpack(params_hrpd_r11.cell_resel_params_hrpd_r11_present, 1)); HANDLE_CODE(params_hrpd_r11.pre_regist_info_hrpd_r11.unpack(bref)); if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { HANDLE_CODE(params_hrpd_r11.cell_resel_params_hrpd_r11.unpack(bref)); } } if (params1_xrtt_r11_present) { HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt_r11.long_code_state1_xrtt_r11_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt_r11.cell_resel_params1_xrtt_r11_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present, 1)); if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_r11.unpack(bref)); } if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.unpack(bref)); } if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { HANDLE_CODE(params1_xrtt_r11.long_code_state1_xrtt_r11.unpack(bref)); } if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { HANDLE_CODE(params1_xrtt_r11.cell_resel_params1_xrtt_r11.unpack(bref)); } if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { HANDLE_CODE(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.unpack(bref)); } if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11, 1)); } } return SRSASN_SUCCESS; } void params_cdma2000_r11_s::to_json(json_writer& j) const { j.start_obj(); if (sys_time_info_r11_present) { j.write_fieldname("systemTimeInfo-r11"); sys_time_info_r11.to_json(j); } j.write_int("searchWindowSize-r11", search_win_size_r11); if (params_hrpd_r11_present) { j.write_fieldname("parametersHRPD-r11"); j.start_obj(); j.write_fieldname("preRegistrationInfoHRPD-r11"); params_hrpd_r11.pre_regist_info_hrpd_r11.to_json(j); if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { j.write_fieldname("cellReselectionParametersHRPD-r11"); params_hrpd_r11.cell_resel_params_hrpd_r11.to_json(j); } j.end_obj(); } if (params1_xrtt_r11_present) { j.write_fieldname("parameters1XRTT-r11"); j.start_obj(); if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { j.write_fieldname("csfb-RegistrationParam1XRTT-r11"); params1_xrtt_r11.csfb_regist_param1_xrtt_r11.to_json(j); } if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { j.write_fieldname("csfb-RegistrationParam1XRTT-Ext-r11"); params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.to_json(j); } if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { j.write_str("longCodeState1XRTT-r11", params1_xrtt_r11.long_code_state1_xrtt_r11.to_string()); } if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { j.write_fieldname("cellReselectionParameters1XRTT-r11"); params1_xrtt_r11.cell_resel_params1_xrtt_r11.to_json(j); } if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { j.write_fieldname("ac-BarringConfig1XRTT-r11"); params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.to_json(j); } if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { j.write_bool("csfb-SupportForDualRxUEs-r11", params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11); } if (params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present) { j.write_str("csfb-DualRxTxSupport-r11", "true"); } j.end_obj(); } j.end_obj(); } void params_cdma2000_r11_s::sys_time_info_r11_c_::set(types::options e) { type_ = e; } void params_cdma2000_r11_s::sys_time_info_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::explicit_value: j.write_fieldname("explicitValue"); c.to_json(j); break; case types::default_value: break; default: log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); } j.end_obj(); } SRSASN_CODE params_cdma2000_r11_s::sys_time_info_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::explicit_value: HANDLE_CODE(c.pack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE params_cdma2000_r11_s::sys_time_info_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::explicit_value: HANDLE_CODE(c.unpack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PowerRampingParameters ::= SEQUENCE SRSASN_CODE pwr_ramp_params_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, pwr_ramp_step)); HANDLE_CODE(pack_enum(bref, preamb_init_rx_target_pwr)); return SRSASN_SUCCESS; } SRSASN_CODE pwr_ramp_params_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(pwr_ramp_step, bref)); HANDLE_CODE(unpack_enum(preamb_init_rx_target_pwr, bref)); return SRSASN_SUCCESS; } void pwr_ramp_params_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("powerRampingStep", pwr_ramp_step.to_string()); j.write_str("preambleInitialReceivedTargetPower", preamb_init_rx_target_pwr.to_string()); j.end_obj(); } // RedistributionInterFreqInfo-r13 ::= SEQUENCE SRSASN_CODE redist_inter_freq_info_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(redist_factor_freq_r13_present, 1)); HANDLE_CODE(bref.pack(redist_neigh_cell_list_r13_present, 1)); if (redist_factor_freq_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, redist_factor_freq_r13, (uint8_t)1, (uint8_t)10)); } if (redist_neigh_cell_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, redist_neigh_cell_list_r13, 1, 16)); } return SRSASN_SUCCESS; } SRSASN_CODE redist_inter_freq_info_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(redist_factor_freq_r13_present, 1)); HANDLE_CODE(bref.unpack(redist_neigh_cell_list_r13_present, 1)); if (redist_factor_freq_r13_present) { HANDLE_CODE(unpack_unalign_integer(redist_factor_freq_r13, bref, (uint8_t)1, (uint8_t)10)); } if (redist_neigh_cell_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(redist_neigh_cell_list_r13, bref, 1, 16)); } return SRSASN_SUCCESS; } void redist_inter_freq_info_r13_s::to_json(json_writer& j) const { j.start_obj(); if (redist_factor_freq_r13_present) { j.write_int("redistributionFactorFreq-r13", redist_factor_freq_r13); } if (redist_neigh_cell_list_r13_present) { j.start_array("redistributionNeighCellList-r13"); for (uint32_t i1 = 0; i1 < redist_neigh_cell_list_r13.size(); ++i1) { redist_neigh_cell_list_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE SRSASN_CODE sl_cbr_pssch_tx_cfg_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cr_limit_r14, (uint16_t)0, (uint16_t)10000)); HANDLE_CODE(tx_params_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_cbr_pssch_tx_cfg_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cr_limit_r14, bref, (uint16_t)0, (uint16_t)10000)); HANDLE_CODE(tx_params_r14.unpack(bref)); return SRSASN_SUCCESS; } void sl_cbr_pssch_tx_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cr-Limit-r14", cr_limit_r14); j.write_fieldname("tx-Parameters-r14"); tx_params_r14.to_json(j); j.end_obj(); } // SL-DiscConfigOtherInterFreq-r13 ::= SEQUENCE SRSASN_CODE sl_disc_cfg_other_inter_freq_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tx_pwr_info_r13_present, 1)); HANDLE_CODE(bref.pack(ref_carrier_common_r13_present, 1)); HANDLE_CODE(bref.pack(disc_sync_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(disc_cell_sel_info_r13_present, 1)); if (tx_pwr_info_r13_present) { HANDLE_CODE(pack_fixed_seq_of(bref, &(tx_pwr_info_r13)[0], tx_pwr_info_r13.size())); } if (disc_sync_cfg_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_sync_cfg_r13, 1, 16)); } if (disc_cell_sel_info_r13_present) { HANDLE_CODE(disc_cell_sel_info_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_other_inter_freq_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tx_pwr_info_r13_present, 1)); HANDLE_CODE(bref.unpack(ref_carrier_common_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_sync_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_cell_sel_info_r13_present, 1)); if (tx_pwr_info_r13_present) { HANDLE_CODE(unpack_fixed_seq_of(&(tx_pwr_info_r13)[0], bref, tx_pwr_info_r13.size())); } if (disc_sync_cfg_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_sync_cfg_r13, bref, 1, 16)); } if (disc_cell_sel_info_r13_present) { HANDLE_CODE(disc_cell_sel_info_r13.unpack(bref)); } return SRSASN_SUCCESS; } void sl_disc_cfg_other_inter_freq_r13_s::to_json(json_writer& j) const { j.start_obj(); if (tx_pwr_info_r13_present) { j.start_array("txPowerInfo-r13"); for (uint32_t i1 = 0; i1 < tx_pwr_info_r13.size(); ++i1) { tx_pwr_info_r13[i1].to_json(j); } j.end_array(); } if (ref_carrier_common_r13_present) { j.write_str("refCarrierCommon-r13", "pCell"); } if (disc_sync_cfg_r13_present) { j.start_array("discSyncConfig-r13"); for (uint32_t i1 = 0; i1 < disc_sync_cfg_r13.size(); ++i1) { disc_sync_cfg_r13[i1].to_json(j); } j.end_array(); } if (disc_cell_sel_info_r13_present) { j.write_fieldname("discCellSelectionInfo-r13"); disc_cell_sel_info_r13.to_json(j); } j.end_obj(); } // SL-HoppingConfigComm-r12 ::= SEQUENCE SRSASN_CODE sl_hop_cfg_comm_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, hop_param_r12, (uint16_t)0, (uint16_t)504)); HANDLE_CODE(pack_enum(bref, num_subbands_r12)); HANDLE_CODE(pack_unalign_integer(bref, rb_offset_r12, (uint8_t)0, (uint8_t)110)); return SRSASN_SUCCESS; } SRSASN_CODE sl_hop_cfg_comm_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(hop_param_r12, bref, (uint16_t)0, (uint16_t)504)); HANDLE_CODE(unpack_enum(num_subbands_r12, bref)); HANDLE_CODE(unpack_unalign_integer(rb_offset_r12, bref, (uint8_t)0, (uint8_t)110)); return SRSASN_SUCCESS; } void sl_hop_cfg_comm_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("hoppingParameter-r12", hop_param_r12); j.write_str("numSubbands-r12", num_subbands_r12.to_string()); j.write_int("rb-Offset-r12", rb_offset_r12); j.end_obj(); } // SL-InterFreqInfoV2X-r14 ::= SEQUENCE SRSASN_CODE sl_inter_freq_info_v2x_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(plmn_id_list_r14_present, 1)); HANDLE_CODE(bref.pack(sl_max_tx_pwr_r14_present, 1)); HANDLE_CODE(bref.pack(sl_bw_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_sched_pool_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_ue_cfg_list_r14_present, 1)); if (plmn_id_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r14, 1, 6)); } HANDLE_CODE(pack_unalign_integer(bref, v2x_comm_carrier_freq_r14, (uint32_t)0, (uint32_t)262143)); if (sl_max_tx_pwr_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, sl_max_tx_pwr_r14, (int8_t)-30, (int8_t)33)); } if (sl_bw_r14_present) { HANDLE_CODE(pack_enum(bref, sl_bw_r14)); } if (v2x_sched_pool_r14_present) { HANDLE_CODE(v2x_sched_pool_r14.pack(bref)); } if (v2x_ue_cfg_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_ue_cfg_list_r14, 1, 16)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(add_spec_emission_v2x_r14_present != (add_spec_emission_v2x_r14.get() != NULL), __FILE__, __LINE__); group_flags[0] |= add_spec_emission_v2x_r14_present; rrc_asn1_warn_assert(v2x_freq_sel_cfg_list_r15_present != (v2x_freq_sel_cfg_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[1] |= v2x_freq_sel_cfg_list_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(add_spec_emission_v2x_r14_present, 1)); if (add_spec_emission_v2x_r14_present) { HANDLE_CODE(add_spec_emission_v2x_r14->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(v2x_freq_sel_cfg_list_r15_present, 1)); if (v2x_freq_sel_cfg_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *v2x_freq_sel_cfg_list_r15, 1, 8)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_inter_freq_info_v2x_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(plmn_id_list_r14_present, 1)); HANDLE_CODE(bref.unpack(sl_max_tx_pwr_r14_present, 1)); HANDLE_CODE(bref.unpack(sl_bw_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_sched_pool_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_ue_cfg_list_r14_present, 1)); if (plmn_id_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r14, bref, 1, 6)); } HANDLE_CODE(unpack_unalign_integer(v2x_comm_carrier_freq_r14, bref, (uint32_t)0, (uint32_t)262143)); if (sl_max_tx_pwr_r14_present) { HANDLE_CODE(unpack_unalign_integer(sl_max_tx_pwr_r14, bref, (int8_t)-30, (int8_t)33)); } if (sl_bw_r14_present) { HANDLE_CODE(unpack_enum(sl_bw_r14, bref)); } if (v2x_sched_pool_r14_present) { HANDLE_CODE(v2x_sched_pool_r14.unpack(bref)); } if (v2x_ue_cfg_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_ue_cfg_list_r14, bref, 1, 16)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(add_spec_emission_v2x_r14_present, 1)); if (add_spec_emission_v2x_r14_present) { add_spec_emission_v2x_r14 = make_copy_ptr(add_spec_emission_v2x_r14_c_()); HANDLE_CODE(add_spec_emission_v2x_r14->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(v2x_freq_sel_cfg_list_r15_present, 1)); if (v2x_freq_sel_cfg_list_r15_present) { v2x_freq_sel_cfg_list_r15 = make_copy_ptr(sl_v2x_freq_sel_cfg_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*v2x_freq_sel_cfg_list_r15, bref, 1, 8)); } } } return SRSASN_SUCCESS; } void sl_inter_freq_info_v2x_r14_s::to_json(json_writer& j) const { j.start_obj(); if (plmn_id_list_r14_present) { j.start_array("plmn-IdentityList-r14"); for (uint32_t i1 = 0; i1 < plmn_id_list_r14.size(); ++i1) { plmn_id_list_r14[i1].to_json(j); } j.end_array(); } j.write_int("v2x-CommCarrierFreq-r14", v2x_comm_carrier_freq_r14); if (sl_max_tx_pwr_r14_present) { j.write_int("sl-MaxTxPower-r14", sl_max_tx_pwr_r14); } if (sl_bw_r14_present) { j.write_str("sl-Bandwidth-r14", sl_bw_r14.to_string()); } if (v2x_sched_pool_r14_present) { j.write_fieldname("v2x-SchedulingPool-r14"); v2x_sched_pool_r14.to_json(j); } if (v2x_ue_cfg_list_r14_present) { j.start_array("v2x-UE-ConfigList-r14"); for (uint32_t i1 = 0; i1 < v2x_ue_cfg_list_r14.size(); ++i1) { v2x_ue_cfg_list_r14[i1].to_json(j); } j.end_array(); } if (ext) { rrc_asn1_warn_assert(add_spec_emission_v2x_r14_present != (add_spec_emission_v2x_r14.get() != NULL), __FILE__, __LINE__); if (add_spec_emission_v2x_r14_present) { j.write_fieldname("additionalSpectrumEmissionV2X-r14"); add_spec_emission_v2x_r14->to_json(j); } rrc_asn1_warn_assert(v2x_freq_sel_cfg_list_r15_present != (v2x_freq_sel_cfg_list_r15.get() != NULL), __FILE__, __LINE__); if (v2x_freq_sel_cfg_list_r15_present) { j.start_array("v2x-FreqSelectionConfigList-r15"); for (uint32_t i1 = 0; i1 < v2x_freq_sel_cfg_list_r15->size(); ++i1) { ((*v2x_freq_sel_cfg_list_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } void sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::destroy_() {} void sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::set(types::options e) { destroy_(); type_ = e; } sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::add_spec_emission_v2x_r14_c_( const sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_& other) { type_ = other.type(); switch (type_) { case types::add_spec_emission_r14: c.init(other.c.get()); break; case types::add_spec_emission_v1440: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_"); } } sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_& sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_:: operator=(const sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::add_spec_emission_r14: c.set(other.c.get()); break; case types::add_spec_emission_v1440: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_"); } return *this; } void sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::add_spec_emission_r14: j.write_int("additionalSpectrumEmission-r14", c.get()); break; case types::add_spec_emission_v1440: j.write_int("additionalSpectrumEmission-v1440", c.get()); break; default: log_invalid_choice_id(type_, "sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_"); } j.end_obj(); } SRSASN_CODE sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::add_spec_emission_r14: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)32)); break; case types::add_spec_emission_v1440: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)33, (uint16_t)288)); break; default: log_invalid_choice_id(type_, "sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::add_spec_emission_r14: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)32)); break; case types::add_spec_emission_v1440: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)33, (uint16_t)288)); break; default: log_invalid_choice_id(type_, "sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-PPPR-Dest-CarrierFreq ::= SEQUENCE SRSASN_CODE sl_pppr_dest_carrier_freq_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dest_info_list_r15_present, 1)); HANDLE_CODE(bref.pack(allowed_carrier_freq_list_r15_present, 1)); if (dest_info_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, dest_info_list_r15, 1, 16)); } if (allowed_carrier_freq_list_r15_present) { HANDLE_CODE(allowed_carrier_freq_list_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_pppr_dest_carrier_freq_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dest_info_list_r15_present, 1)); HANDLE_CODE(bref.unpack(allowed_carrier_freq_list_r15_present, 1)); if (dest_info_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(dest_info_list_r15, bref, 1, 16)); } if (allowed_carrier_freq_list_r15_present) { HANDLE_CODE(allowed_carrier_freq_list_r15.unpack(bref)); } return SRSASN_SUCCESS; } void sl_pppr_dest_carrier_freq_s::to_json(json_writer& j) const { j.start_obj(); if (dest_info_list_r15_present) { j.start_array("destinationInfoList-r15"); for (uint32_t i1 = 0; i1 < dest_info_list_r15.size(); ++i1) { j.write_str(dest_info_list_r15[i1].to_string()); } j.end_array(); } if (allowed_carrier_freq_list_r15_present) { j.write_fieldname("allowedCarrierFreqList-r15"); allowed_carrier_freq_list_r15.to_json(j); } j.end_obj(); } // SL-ResourcesInterFreq-r13 ::= SEQUENCE SRSASN_CODE sl_res_inter_freq_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(disc_rx_res_inter_freq_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_res_inter_freq_r13_present, 1)); if (disc_rx_res_inter_freq_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_rx_res_inter_freq_r13, 1, 16)); } if (disc_tx_res_inter_freq_r13_present) { HANDLE_CODE(disc_tx_res_inter_freq_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_res_inter_freq_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(disc_rx_res_inter_freq_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_res_inter_freq_r13_present, 1)); if (disc_rx_res_inter_freq_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_rx_res_inter_freq_r13, bref, 1, 16)); } if (disc_tx_res_inter_freq_r13_present) { HANDLE_CODE(disc_tx_res_inter_freq_r13.unpack(bref)); } return SRSASN_SUCCESS; } void sl_res_inter_freq_r13_s::to_json(json_writer& j) const { j.start_obj(); if (disc_rx_res_inter_freq_r13_present) { j.start_array("discRxResourcesInterFreq-r13"); for (uint32_t i1 = 0; i1 < disc_rx_res_inter_freq_r13.size(); ++i1) { disc_rx_res_inter_freq_r13[i1].to_json(j); } j.end_array(); } if (disc_tx_res_inter_freq_r13_present) { j.write_fieldname("discTxResourcesInterFreq-r13"); disc_tx_res_inter_freq_r13.to_json(j); } j.end_obj(); } // SL-SyncConfig-r12 ::= SEQUENCE SRSASN_CODE sl_sync_cfg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(tx_params_r12_present, 1)); HANDLE_CODE(bref.pack(rx_params_ncell_r12_present, 1)); HANDLE_CODE(pack_enum(bref, sync_cp_len_r12)); HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind_r12, (uint8_t)0, (uint8_t)39)); HANDLE_CODE(pack_unalign_integer(bref, slssid_r12, (uint8_t)0, (uint8_t)167)); if (tx_params_r12_present) { HANDLE_CODE(bref.pack(tx_params_r12.sync_info_reserved_r12_present, 1)); HANDLE_CODE(tx_params_r12.sync_tx_params_r12.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, tx_params_r12.sync_tx_thresh_ic_r12, (uint8_t)0, (uint8_t)13)); if (tx_params_r12.sync_info_reserved_r12_present) { HANDLE_CODE(tx_params_r12.sync_info_reserved_r12.pack(bref)); } } if (rx_params_ncell_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, rx_params_ncell_r12.pci_r12, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_enum(bref, rx_params_ncell_r12.disc_sync_win_r12)); } if (ext) { ext_groups_header group_flags(4); group_flags[0] |= sync_tx_periodic_r13_present; group_flags[1] |= sync_offset_ind_v1430_present; group_flags[1] |= gnss_sync_r14_present; group_flags[2] |= sync_offset_ind2_r14_present; group_flags[2] |= sync_offset_ind3_r14_present; group_flags[3] |= slss_tx_disabled_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sync_tx_periodic_r13_present, 1)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sync_offset_ind_v1430_present, 1)); HANDLE_CODE(bref.pack(gnss_sync_r14_present, 1)); if (sync_offset_ind_v1430_present) { HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind_v1430, (uint8_t)40, (uint8_t)159)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sync_offset_ind2_r14_present, 1)); HANDLE_CODE(bref.pack(sync_offset_ind3_r14_present, 1)); if (sync_offset_ind2_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind2_r14, (uint8_t)0, (uint8_t)159)); } if (sync_offset_ind3_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind3_r14, (uint8_t)0, (uint8_t)159)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(slss_tx_disabled_r15_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE sl_sync_cfg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(tx_params_r12_present, 1)); HANDLE_CODE(bref.unpack(rx_params_ncell_r12_present, 1)); HANDLE_CODE(unpack_enum(sync_cp_len_r12, bref)); HANDLE_CODE(unpack_unalign_integer(sync_offset_ind_r12, bref, (uint8_t)0, (uint8_t)39)); HANDLE_CODE(unpack_unalign_integer(slssid_r12, bref, (uint8_t)0, (uint8_t)167)); if (tx_params_r12_present) { HANDLE_CODE(bref.unpack(tx_params_r12.sync_info_reserved_r12_present, 1)); HANDLE_CODE(tx_params_r12.sync_tx_params_r12.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(tx_params_r12.sync_tx_thresh_ic_r12, bref, (uint8_t)0, (uint8_t)13)); if (tx_params_r12.sync_info_reserved_r12_present) { HANDLE_CODE(tx_params_r12.sync_info_reserved_r12.unpack(bref)); } } if (rx_params_ncell_r12_present) { HANDLE_CODE(unpack_unalign_integer(rx_params_ncell_r12.pci_r12, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_enum(rx_params_ncell_r12.disc_sync_win_r12, bref)); } if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sync_tx_periodic_r13_present, 1)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sync_offset_ind_v1430_present, 1)); HANDLE_CODE(bref.unpack(gnss_sync_r14_present, 1)); if (sync_offset_ind_v1430_present) { HANDLE_CODE(unpack_unalign_integer(sync_offset_ind_v1430, bref, (uint8_t)40, (uint8_t)159)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sync_offset_ind2_r14_present, 1)); HANDLE_CODE(bref.unpack(sync_offset_ind3_r14_present, 1)); if (sync_offset_ind2_r14_present) { HANDLE_CODE(unpack_unalign_integer(sync_offset_ind2_r14, bref, (uint8_t)0, (uint8_t)159)); } if (sync_offset_ind3_r14_present) { HANDLE_CODE(unpack_unalign_integer(sync_offset_ind3_r14, bref, (uint8_t)0, (uint8_t)159)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(slss_tx_disabled_r15_present, 1)); } } return SRSASN_SUCCESS; } void sl_sync_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("syncCP-Len-r12", sync_cp_len_r12.to_string()); j.write_int("syncOffsetIndicator-r12", sync_offset_ind_r12); j.write_int("slssid-r12", slssid_r12); if (tx_params_r12_present) { j.write_fieldname("txParameters-r12"); j.start_obj(); j.write_fieldname("syncTxParameters-r12"); tx_params_r12.sync_tx_params_r12.to_json(j); j.write_int("syncTxThreshIC-r12", tx_params_r12.sync_tx_thresh_ic_r12); if (tx_params_r12.sync_info_reserved_r12_present) { j.write_str("syncInfoReserved-r12", tx_params_r12.sync_info_reserved_r12.to_string()); } j.end_obj(); } if (rx_params_ncell_r12_present) { j.write_fieldname("rxParamsNCell-r12"); j.start_obj(); j.write_int("physCellId-r12", rx_params_ncell_r12.pci_r12); j.write_str("discSyncWindow-r12", rx_params_ncell_r12.disc_sync_win_r12.to_string()); j.end_obj(); } if (ext) { if (sync_tx_periodic_r13_present) { j.write_str("syncTxPeriodic-r13", "true"); } if (sync_offset_ind_v1430_present) { j.write_int("syncOffsetIndicator-v1430", sync_offset_ind_v1430); } if (gnss_sync_r14_present) { j.write_str("gnss-Sync-r14", "true"); } if (sync_offset_ind2_r14_present) { j.write_int("syncOffsetIndicator2-r14", sync_offset_ind2_r14); } if (sync_offset_ind3_r14_present) { j.write_int("syncOffsetIndicator3-r14", sync_offset_ind3_r14); } if (slss_tx_disabled_r15_present) { j.write_str("slss-TxDisabled-r15", "true"); } } j.end_obj(); } // SS-RSSI-Measurement-r15 ::= SEQUENCE SRSASN_CODE ss_rssi_meas_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(meas_slots_r15.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, end_symbol_r15, (uint8_t)0, (uint8_t)3)); return SRSASN_SUCCESS; } SRSASN_CODE ss_rssi_meas_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(meas_slots_r15.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(end_symbol_r15, bref, (uint8_t)0, (uint8_t)3)); return SRSASN_SUCCESS; } void ss_rssi_meas_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("measurementSlots-r15", meas_slots_r15.to_string()); j.write_int("endSymbol-r15", end_symbol_r15); j.end_obj(); } // SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v10l0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (freq_band_info_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); } if (multi_band_info_list_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v10l0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (freq_band_info_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); } if (multi_band_info_list_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } return SRSASN_SUCCESS; } void sib_type1_v10l0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_info_v10l0_present) { j.start_array("freqBandInfo-v10l0"); for (uint32_t i1 = 0; i1 < freq_band_info_v10l0.size(); ++i1) { freq_band_info_v10l0[i1].to_json(j); } j.end_array(); } if (multi_band_info_list_v10l0_present) { j.start_array("multiBandInfoList-v10l0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v10l0.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < multi_band_info_list_v10l0[i1].size(); ++i2) { multi_band_info_list_v10l0[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SystemInformationBlockType1-v1310-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(hyper_sfn_r13_present, 1)); HANDLE_CODE(bref.pack(e_drx_allowed_r13_present, 1)); HANDLE_CODE(bref.pack(cell_sel_info_ce_r13_present, 1)); HANDLE_CODE(bref.pack(bw_reduced_access_related_info_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (hyper_sfn_r13_present) { HANDLE_CODE(hyper_sfn_r13.pack(bref)); } if (cell_sel_info_ce_r13_present) { HANDLE_CODE(cell_sel_info_ce_r13.pack(bref)); } if (bw_reduced_access_related_info_r13_present) { HANDLE_CODE(bref.pack(bw_reduced_access_related_info_r13.sched_info_list_br_r13_present, 1)); HANDLE_CODE(bref.pack(bw_reduced_access_related_info_r13.fdd_dl_or_tdd_sf_bitmap_br_r13_present, 1)); HANDLE_CODE(bref.pack(bw_reduced_access_related_info_r13.fdd_ul_sf_bitmap_br_r13_present, 1)); HANDLE_CODE(bref.pack(bw_reduced_access_related_info_r13.si_validity_time_r13_present, 1)); HANDLE_CODE(bref.pack(bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13_present, 1)); HANDLE_CODE(pack_enum(bref, bw_reduced_access_related_info_r13.si_win_len_br_r13)); HANDLE_CODE(pack_enum(bref, bw_reduced_access_related_info_r13.si_repeat_pattern_r13)); if (bw_reduced_access_related_info_r13.sched_info_list_br_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, bw_reduced_access_related_info_r13.sched_info_list_br_r13, 1, 32)); } if (bw_reduced_access_related_info_r13.fdd_dl_or_tdd_sf_bitmap_br_r13_present) { HANDLE_CODE(bw_reduced_access_related_info_r13.fdd_dl_or_tdd_sf_bitmap_br_r13.pack(bref)); } if (bw_reduced_access_related_info_r13.fdd_ul_sf_bitmap_br_r13_present) { HANDLE_CODE(bw_reduced_access_related_info_r13.fdd_ul_sf_bitmap_br_r13.pack(bref)); } HANDLE_CODE( pack_unalign_integer(bref, bw_reduced_access_related_info_r13.start_symbol_br_r13, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_enum(bref, bw_reduced_access_related_info_r13.si_hop_cfg_common_r13)); if (bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13, 1, 32, UnalignedIntegerPacker(0, 3))); } } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(hyper_sfn_r13_present, 1)); HANDLE_CODE(bref.unpack(e_drx_allowed_r13_present, 1)); HANDLE_CODE(bref.unpack(cell_sel_info_ce_r13_present, 1)); HANDLE_CODE(bref.unpack(bw_reduced_access_related_info_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (hyper_sfn_r13_present) { HANDLE_CODE(hyper_sfn_r13.unpack(bref)); } if (cell_sel_info_ce_r13_present) { HANDLE_CODE(cell_sel_info_ce_r13.unpack(bref)); } if (bw_reduced_access_related_info_r13_present) { HANDLE_CODE(bref.unpack(bw_reduced_access_related_info_r13.sched_info_list_br_r13_present, 1)); HANDLE_CODE(bref.unpack(bw_reduced_access_related_info_r13.fdd_dl_or_tdd_sf_bitmap_br_r13_present, 1)); HANDLE_CODE(bref.unpack(bw_reduced_access_related_info_r13.fdd_ul_sf_bitmap_br_r13_present, 1)); HANDLE_CODE(bref.unpack(bw_reduced_access_related_info_r13.si_validity_time_r13_present, 1)); HANDLE_CODE(bref.unpack(bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13_present, 1)); HANDLE_CODE(unpack_enum(bw_reduced_access_related_info_r13.si_win_len_br_r13, bref)); HANDLE_CODE(unpack_enum(bw_reduced_access_related_info_r13.si_repeat_pattern_r13, bref)); if (bw_reduced_access_related_info_r13.sched_info_list_br_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(bw_reduced_access_related_info_r13.sched_info_list_br_r13, bref, 1, 32)); } if (bw_reduced_access_related_info_r13.fdd_dl_or_tdd_sf_bitmap_br_r13_present) { HANDLE_CODE(bw_reduced_access_related_info_r13.fdd_dl_or_tdd_sf_bitmap_br_r13.unpack(bref)); } if (bw_reduced_access_related_info_r13.fdd_ul_sf_bitmap_br_r13_present) { HANDLE_CODE(bw_reduced_access_related_info_r13.fdd_ul_sf_bitmap_br_r13.unpack(bref)); } HANDLE_CODE( unpack_unalign_integer(bw_reduced_access_related_info_r13.start_symbol_br_r13, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_enum(bw_reduced_access_related_info_r13.si_hop_cfg_common_r13, bref)); if (bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13, bref, 1, 32, UnalignedIntegerPacker(0, 3))); } } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (hyper_sfn_r13_present) { j.write_str("hyperSFN-r13", hyper_sfn_r13.to_string()); } if (e_drx_allowed_r13_present) { j.write_str("eDRX-Allowed-r13", "true"); } if (cell_sel_info_ce_r13_present) { j.write_fieldname("cellSelectionInfoCE-r13"); cell_sel_info_ce_r13.to_json(j); } if (bw_reduced_access_related_info_r13_present) { j.write_fieldname("bandwidthReducedAccessRelatedInfo-r13"); j.start_obj(); j.write_str("si-WindowLength-BR-r13", bw_reduced_access_related_info_r13.si_win_len_br_r13.to_string()); j.write_str("si-RepetitionPattern-r13", bw_reduced_access_related_info_r13.si_repeat_pattern_r13.to_string()); if (bw_reduced_access_related_info_r13.sched_info_list_br_r13_present) { j.start_array("schedulingInfoList-BR-r13"); for (uint32_t i1 = 0; i1 < bw_reduced_access_related_info_r13.sched_info_list_br_r13.size(); ++i1) { bw_reduced_access_related_info_r13.sched_info_list_br_r13[i1].to_json(j); } j.end_array(); } if (bw_reduced_access_related_info_r13.fdd_dl_or_tdd_sf_bitmap_br_r13_present) { j.write_fieldname("fdd-DownlinkOrTddSubframeBitmapBR-r13"); bw_reduced_access_related_info_r13.fdd_dl_or_tdd_sf_bitmap_br_r13.to_json(j); } if (bw_reduced_access_related_info_r13.fdd_ul_sf_bitmap_br_r13_present) { j.write_str("fdd-UplinkSubframeBitmapBR-r13", bw_reduced_access_related_info_r13.fdd_ul_sf_bitmap_br_r13.to_string()); } j.write_int("startSymbolBR-r13", bw_reduced_access_related_info_r13.start_symbol_br_r13); j.write_str("si-HoppingConfigCommon-r13", bw_reduced_access_related_info_r13.si_hop_cfg_common_r13.to_string()); if (bw_reduced_access_related_info_r13.si_validity_time_r13_present) { j.write_str("si-ValidityTime-r13", "true"); } if (bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13_present) { j.start_array("systemInfoValueTagList-r13"); for (uint32_t i1 = 0; i1 < bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13.size(); ++i1) { j.write_int(bw_reduced_access_related_info_r13.sys_info_value_tag_list_r13[i1]); } j.end_array(); } j.end_obj(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::destroy_() { switch (type_) { case types::sf_pattern10_r13: c.destroy >(); break; case types::sf_pattern40_r13: c.destroy >(); break; default: break; } } void sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::set( types::options e) { destroy_(); type_ = e; switch (type_) { case types::sf_pattern10_r13: c.init >(); break; case types::sf_pattern40_r13: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id( type_, "sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_"); } } sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_:: fdd_dl_or_tdd_sf_bitmap_br_r13_c_( const sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_& other) { type_ = other.type(); switch (type_) { case types::sf_pattern10_r13: c.init(other.c.get >()); break; case types::sf_pattern40_r13: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id( type_, "sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_"); } } sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_& sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_:: operator=(const sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf_pattern10_r13: c.set(other.c.get >()); break; case types::sf_pattern40_r13: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id( type_, "sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_"); } return *this; } void sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::to_json( json_writer& j) const { j.start_obj(); switch (type_) { case types::sf_pattern10_r13: j.write_str("subframePattern10-r13", c.get >().to_string()); break; case types::sf_pattern40_r13: j.write_str("subframePattern40-r13", c.get >().to_string()); break; default: log_invalid_choice_id( type_, "sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_"); } j.end_obj(); } SRSASN_CODE sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::pack( bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf_pattern10_r13: HANDLE_CODE(c.get >().pack(bref)); break; case types::sf_pattern40_r13: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id( type_, "sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf_pattern10_r13: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sf_pattern40_r13: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id( type_, "sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE SRSASN_CODE sib_type2_v9i0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(dummy_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type2_v9i0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(dummy_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type2_v9i0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (non_crit_ext_present) { j.write_str("nonCriticalExtension", non_crit_ext.to_string()); } if (dummy_present) { j.write_fieldname("dummy"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE SRSASN_CODE sib_type5_v10j0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v10j0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (inter_freq_carrier_freq_list_v10j0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v10j0, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type5_v10j0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v10j0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (inter_freq_carrier_freq_list_v10j0_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v10j0, bref, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type5_v10j0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (inter_freq_carrier_freq_list_v10j0_present) { j.start_array("interFreqCarrierFreqList-v10j0"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v10j0.size(); ++i1) { inter_freq_carrier_freq_list_v10j0[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // ThresholdListNR-r15 ::= SEQUENCE SRSASN_CODE thres_list_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(nr_rsrp_r15_present, 1)); HANDLE_CODE(bref.pack(nr_rsrq_r15_present, 1)); HANDLE_CODE(bref.pack(nr_sinr_r15_present, 1)); if (nr_rsrp_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, nr_rsrp_r15, (uint8_t)0, (uint8_t)127)); } if (nr_rsrq_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, nr_rsrq_r15, (uint8_t)0, (uint8_t)127)); } if (nr_sinr_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, nr_sinr_r15, (uint8_t)0, (uint8_t)127)); } return SRSASN_SUCCESS; } SRSASN_CODE thres_list_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(nr_rsrp_r15_present, 1)); HANDLE_CODE(bref.unpack(nr_rsrq_r15_present, 1)); HANDLE_CODE(bref.unpack(nr_sinr_r15_present, 1)); if (nr_rsrp_r15_present) { HANDLE_CODE(unpack_unalign_integer(nr_rsrp_r15, bref, (uint8_t)0, (uint8_t)127)); } if (nr_rsrq_r15_present) { HANDLE_CODE(unpack_unalign_integer(nr_rsrq_r15, bref, (uint8_t)0, (uint8_t)127)); } if (nr_sinr_r15_present) { HANDLE_CODE(unpack_unalign_integer(nr_sinr_r15, bref, (uint8_t)0, (uint8_t)127)); } return SRSASN_SUCCESS; } void thres_list_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); if (nr_rsrp_r15_present) { j.write_int("nr-RSRP-r15", nr_rsrp_r15); } if (nr_rsrq_r15_present) { j.write_int("nr-RSRQ-r15", nr_rsrq_r15); } if (nr_sinr_r15_present) { j.write_int("nr-SINR-r15", nr_sinr_r15); } j.end_obj(); } // UDT-Restricting-r13 ::= SEQUENCE SRSASN_CODE udt_restricting_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(udt_restricting_r13_present, 1)); HANDLE_CODE(bref.pack(udt_restricting_time_r13_present, 1)); if (udt_restricting_time_r13_present) { HANDLE_CODE(pack_enum(bref, udt_restricting_time_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE udt_restricting_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(udt_restricting_r13_present, 1)); HANDLE_CODE(bref.unpack(udt_restricting_time_r13_present, 1)); if (udt_restricting_time_r13_present) { HANDLE_CODE(unpack_enum(udt_restricting_time_r13, bref)); } return SRSASN_SUCCESS; } void udt_restricting_r13_s::to_json(json_writer& j) const { j.start_obj(); if (udt_restricting_r13_present) { j.write_str("udt-Restricting-r13", "true"); } if (udt_restricting_time_r13_present) { j.write_str("udt-RestrictingTime-r13", udt_restricting_time_r13.to_string()); } j.end_obj(); } // UL-ReferenceSignalsPUSCH ::= SEQUENCE SRSASN_CODE ul_ref_sigs_pusch_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(group_hop_enabled, 1)); HANDLE_CODE(pack_unalign_integer(bref, group_assign_pusch, (uint8_t)0, (uint8_t)29)); HANDLE_CODE(bref.pack(seq_hop_enabled, 1)); HANDLE_CODE(pack_unalign_integer(bref, cyclic_shift, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE ul_ref_sigs_pusch_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(group_hop_enabled, 1)); HANDLE_CODE(unpack_unalign_integer(group_assign_pusch, bref, (uint8_t)0, (uint8_t)29)); HANDLE_CODE(bref.unpack(seq_hop_enabled, 1)); HANDLE_CODE(unpack_unalign_integer(cyclic_shift, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void ul_ref_sigs_pusch_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("groupHoppingEnabled", group_hop_enabled); j.write_int("groupAssignmentPUSCH", group_assign_pusch); j.write_bool("sequenceHoppingEnabled", seq_hop_enabled); j.write_int("cyclicShift", cyclic_shift); j.end_obj(); } // WLAN-Identifiers-r12 ::= SEQUENCE SRSASN_CODE wlan_ids_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ssid_r12_present, 1)); HANDLE_CODE(bref.pack(bssid_r12_present, 1)); HANDLE_CODE(bref.pack(hessid_r12_present, 1)); if (ssid_r12_present) { HANDLE_CODE(ssid_r12.pack(bref)); } if (bssid_r12_present) { HANDLE_CODE(bssid_r12.pack(bref)); } if (hessid_r12_present) { HANDLE_CODE(hessid_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE wlan_ids_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ssid_r12_present, 1)); HANDLE_CODE(bref.unpack(bssid_r12_present, 1)); HANDLE_CODE(bref.unpack(hessid_r12_present, 1)); if (ssid_r12_present) { HANDLE_CODE(ssid_r12.unpack(bref)); } if (bssid_r12_present) { HANDLE_CODE(bssid_r12.unpack(bref)); } if (hessid_r12_present) { HANDLE_CODE(hessid_r12.unpack(bref)); } return SRSASN_SUCCESS; } void wlan_ids_r12_s::to_json(json_writer& j) const { j.start_obj(); if (ssid_r12_present) { j.write_str("ssid-r12", ssid_r12.to_string()); } if (bssid_r12_present) { j.write_str("bssid-r12", bssid_r12.to_string()); } if (hessid_r12_present) { j.write_str("hessid-r12", hessid_r12.to_string()); } j.end_obj(); } // AC-BarringPerPLMN-r12 ::= SEQUENCE SRSASN_CODE ac_barr_per_plmn_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ac_barr_info_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_skip_for_mmtel_voice_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_skip_for_mmtel_video_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_skip_for_sms_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_for_csfb_r12_present, 1)); HANDLE_CODE(bref.pack(ssac_barr_for_mmtel_voice_r12_present, 1)); HANDLE_CODE(bref.pack(ssac_barr_for_mmtel_video_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, plmn_id_idx_r12, (uint8_t)1, (uint8_t)6)); if (ac_barr_info_r12_present) { HANDLE_CODE(bref.pack(ac_barr_info_r12.ac_barr_for_mo_sig_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_info_r12.ac_barr_for_mo_data_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_info_r12.ac_barr_for_emergency_r12, 1)); if (ac_barr_info_r12.ac_barr_for_mo_sig_r12_present) { HANDLE_CODE(ac_barr_info_r12.ac_barr_for_mo_sig_r12.pack(bref)); } if (ac_barr_info_r12.ac_barr_for_mo_data_r12_present) { HANDLE_CODE(ac_barr_info_r12.ac_barr_for_mo_data_r12.pack(bref)); } } if (ac_barr_for_csfb_r12_present) { HANDLE_CODE(ac_barr_for_csfb_r12.pack(bref)); } if (ssac_barr_for_mmtel_voice_r12_present) { HANDLE_CODE(ssac_barr_for_mmtel_voice_r12.pack(bref)); } if (ssac_barr_for_mmtel_video_r12_present) { HANDLE_CODE(ssac_barr_for_mmtel_video_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ac_barr_per_plmn_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ac_barr_info_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_skip_for_mmtel_voice_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_skip_for_mmtel_video_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_skip_for_sms_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_for_csfb_r12_present, 1)); HANDLE_CODE(bref.unpack(ssac_barr_for_mmtel_voice_r12_present, 1)); HANDLE_CODE(bref.unpack(ssac_barr_for_mmtel_video_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(plmn_id_idx_r12, bref, (uint8_t)1, (uint8_t)6)); if (ac_barr_info_r12_present) { HANDLE_CODE(bref.unpack(ac_barr_info_r12.ac_barr_for_mo_sig_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_info_r12.ac_barr_for_mo_data_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_info_r12.ac_barr_for_emergency_r12, 1)); if (ac_barr_info_r12.ac_barr_for_mo_sig_r12_present) { HANDLE_CODE(ac_barr_info_r12.ac_barr_for_mo_sig_r12.unpack(bref)); } if (ac_barr_info_r12.ac_barr_for_mo_data_r12_present) { HANDLE_CODE(ac_barr_info_r12.ac_barr_for_mo_data_r12.unpack(bref)); } } if (ac_barr_for_csfb_r12_present) { HANDLE_CODE(ac_barr_for_csfb_r12.unpack(bref)); } if (ssac_barr_for_mmtel_voice_r12_present) { HANDLE_CODE(ssac_barr_for_mmtel_voice_r12.unpack(bref)); } if (ssac_barr_for_mmtel_video_r12_present) { HANDLE_CODE(ssac_barr_for_mmtel_video_r12.unpack(bref)); } return SRSASN_SUCCESS; } void ac_barr_per_plmn_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("plmn-IdentityIndex-r12", plmn_id_idx_r12); if (ac_barr_info_r12_present) { j.write_fieldname("ac-BarringInfo-r12"); j.start_obj(); j.write_bool("ac-BarringForEmergency-r12", ac_barr_info_r12.ac_barr_for_emergency_r12); if (ac_barr_info_r12.ac_barr_for_mo_sig_r12_present) { j.write_fieldname("ac-BarringForMO-Signalling-r12"); ac_barr_info_r12.ac_barr_for_mo_sig_r12.to_json(j); } if (ac_barr_info_r12.ac_barr_for_mo_data_r12_present) { j.write_fieldname("ac-BarringForMO-Data-r12"); ac_barr_info_r12.ac_barr_for_mo_data_r12.to_json(j); } j.end_obj(); } if (ac_barr_skip_for_mmtel_voice_r12_present) { j.write_str("ac-BarringSkipForMMTELVoice-r12", "true"); } if (ac_barr_skip_for_mmtel_video_r12_present) { j.write_str("ac-BarringSkipForMMTELVideo-r12", "true"); } if (ac_barr_skip_for_sms_r12_present) { j.write_str("ac-BarringSkipForSMS-r12", "true"); } if (ac_barr_for_csfb_r12_present) { j.write_fieldname("ac-BarringForCSFB-r12"); ac_barr_for_csfb_r12.to_json(j); } if (ssac_barr_for_mmtel_voice_r12_present) { j.write_fieldname("ssac-BarringForMMTEL-Voice-r12"); ssac_barr_for_mmtel_voice_r12.to_json(j); } if (ssac_barr_for_mmtel_video_r12_present) { j.write_fieldname("ssac-BarringForMMTEL-Video-r12"); ssac_barr_for_mmtel_video_r12.to_json(j); } j.end_obj(); } // ACDC-BarringPerPLMN-r13 ::= SEQUENCE SRSASN_CODE acdc_barr_per_plmn_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, plmn_id_idx_r13, (uint8_t)1, (uint8_t)6)); HANDLE_CODE(bref.pack(acdc_only_for_hplmn_r13, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, barr_per_acdc_category_list_r13, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE acdc_barr_per_plmn_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(plmn_id_idx_r13, bref, (uint8_t)1, (uint8_t)6)); HANDLE_CODE(bref.unpack(acdc_only_for_hplmn_r13, 1)); HANDLE_CODE(unpack_dyn_seq_of(barr_per_acdc_category_list_r13, bref, 1, 16)); return SRSASN_SUCCESS; } void acdc_barr_per_plmn_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("plmn-IdentityIndex-r13", plmn_id_idx_r13); j.write_bool("acdc-OnlyForHPLMN-r13", acdc_only_for_hplmn_r13); j.start_array("barringPerACDC-CategoryList-r13"); for (uint32_t i1 = 0; i1 < barr_per_acdc_category_list_r13.size(); ++i1) { barr_per_acdc_category_list_r13[i1].to_json(j); } j.end_array(); j.end_obj(); } // BCCH-Config ::= SEQUENCE SRSASN_CODE bcch_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, mod_period_coeff)); return SRSASN_SUCCESS; } SRSASN_CODE bcch_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(mod_period_coeff, bref)); return SRSASN_SUCCESS; } void bcch_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("modificationPeriodCoeff", mod_period_coeff.to_string()); j.end_obj(); } // BCCH-Config-v1310 ::= SEQUENCE SRSASN_CODE bcch_cfg_v1310_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE bcch_cfg_v1310_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void bcch_cfg_v1310_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("modificationPeriodCoeff-v1310", "n64"); j.end_obj(); } // CIOT-OptimisationPLMN-r13 ::= SEQUENCE SRSASN_CODE ciot_optim_plmn_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(up_cio_t_eps_optim_r13_present, 1)); HANDLE_CODE(bref.pack(cp_cio_t_eps_optim_r13_present, 1)); HANDLE_CODE(bref.pack(attach_without_pdn_connect_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ciot_optim_plmn_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(up_cio_t_eps_optim_r13_present, 1)); HANDLE_CODE(bref.unpack(cp_cio_t_eps_optim_r13_present, 1)); HANDLE_CODE(bref.unpack(attach_without_pdn_connect_r13_present, 1)); return SRSASN_SUCCESS; } void ciot_optim_plmn_r13_s::to_json(json_writer& j) const { j.start_obj(); if (up_cio_t_eps_optim_r13_present) { j.write_str("up-CIoT-EPS-Optimisation-r13", "true"); } if (cp_cio_t_eps_optim_r13_present) { j.write_str("cp-CIoT-EPS-Optimisation-r13", "true"); } if (attach_without_pdn_connect_r13_present) { j.write_str("attachWithoutPDN-Connectivity-r13", "true"); } j.end_obj(); } // CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE SRSASN_CODE carrier_freq_info_utra_fdd_v8h0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); if (multi_band_info_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, UnalignedIntegerPacker(1, 86))); } return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_info_utra_fdd_v8h0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); if (multi_band_info_list_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, UnalignedIntegerPacker(1, 86))); } return SRSASN_SUCCESS; } void carrier_freq_info_utra_fdd_v8h0_s::to_json(json_writer& j) const { j.start_obj(); if (multi_band_info_list_present) { j.start_array("multiBandInfoList"); for (uint32_t i1 = 0; i1 < multi_band_info_list.size(); ++i1) { j.write_int(multi_band_info_list[i1]); } j.end_array(); } j.end_obj(); } // CarrierFreqNR-r15 ::= SEQUENCE SRSASN_CODE carrier_freq_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(multi_band_info_list_r15_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_sul_r15_present, 1)); HANDLE_CODE(bref.pack(meas_timing_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(ss_rssi_meas_r15_present, 1)); HANDLE_CODE(bref.pack(cell_resel_prio_r15_present, 1)); HANDLE_CODE(bref.pack(cell_resel_sub_prio_r15_present, 1)); HANDLE_CODE(bref.pack(thresh_x_q_r15_present, 1)); HANDLE_CODE(bref.pack(q_rx_lev_min_sul_r15_present, 1)); HANDLE_CODE(bref.pack(ns_pmax_list_nr_r15_present, 1)); HANDLE_CODE(bref.pack(q_qual_min_r15_present, 1)); HANDLE_CODE(bref.pack(max_rs_idx_cell_qual_r15_present, 1)); HANDLE_CODE(bref.pack(thresh_rs_idx_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r15, (uint32_t)0, (uint32_t)3279165)); if (multi_band_info_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r15, 1, 32, UnalignedIntegerPacker(1, 1024))); } if (multi_band_info_list_sul_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_sul_r15, 1, 32, UnalignedIntegerPacker(1, 1024))); } if (meas_timing_cfg_r15_present) { HANDLE_CODE(meas_timing_cfg_r15.pack(bref)); } HANDLE_CODE(pack_enum(bref, subcarrier_spacing_ssb_r15)); if (ss_rssi_meas_r15_present) { HANDLE_CODE(ss_rssi_meas_r15.pack(bref)); } if (cell_resel_prio_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio_r15, (uint8_t)0, (uint8_t)7)); } if (cell_resel_sub_prio_r15_present) { HANDLE_CODE(pack_enum(bref, cell_resel_sub_prio_r15)); } HANDLE_CODE(pack_unalign_integer(bref, thresh_x_high_r15, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_low_r15, (uint8_t)0, (uint8_t)31)); if (thresh_x_q_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r15.thresh_x_high_q_r15, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r15.thresh_x_low_q_r15, (uint8_t)0, (uint8_t)31)); } HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_r15, (int8_t)-70, (int8_t)-22)); if (q_rx_lev_min_sul_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_sul_r15, (int8_t)-70, (int8_t)-22)); } HANDLE_CODE(pack_unalign_integer(bref, p_max_nr_r15, (int8_t)-30, (int8_t)33)); if (ns_pmax_list_nr_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ns_pmax_list_nr_r15, 1, 8)); } if (q_qual_min_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_r15, (int8_t)-34, (int8_t)-3)); } HANDLE_CODE(bref.pack(derive_ssb_idx_from_cell_r15, 1)); if (max_rs_idx_cell_qual_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, max_rs_idx_cell_qual_r15, (uint8_t)1, (uint8_t)16)); } if (thresh_rs_idx_r15_present) { HANDLE_CODE(thresh_rs_idx_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(multi_band_info_list_r15_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_sul_r15_present, 1)); HANDLE_CODE(bref.unpack(meas_timing_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(ss_rssi_meas_r15_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_prio_r15_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_sub_prio_r15_present, 1)); HANDLE_CODE(bref.unpack(thresh_x_q_r15_present, 1)); HANDLE_CODE(bref.unpack(q_rx_lev_min_sul_r15_present, 1)); HANDLE_CODE(bref.unpack(ns_pmax_list_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(q_qual_min_r15_present, 1)); HANDLE_CODE(bref.unpack(max_rs_idx_cell_qual_r15_present, 1)); HANDLE_CODE(bref.unpack(thresh_rs_idx_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r15, bref, (uint32_t)0, (uint32_t)3279165)); if (multi_band_info_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r15, bref, 1, 32, UnalignedIntegerPacker(1, 1024))); } if (multi_band_info_list_sul_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(multi_band_info_list_sul_r15, bref, 1, 32, UnalignedIntegerPacker(1, 1024))); } if (meas_timing_cfg_r15_present) { HANDLE_CODE(meas_timing_cfg_r15.unpack(bref)); } HANDLE_CODE(unpack_enum(subcarrier_spacing_ssb_r15, bref)); if (ss_rssi_meas_r15_present) { HANDLE_CODE(ss_rssi_meas_r15.unpack(bref)); } if (cell_resel_prio_r15_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_prio_r15, bref, (uint8_t)0, (uint8_t)7)); } if (cell_resel_sub_prio_r15_present) { HANDLE_CODE(unpack_enum(cell_resel_sub_prio_r15, bref)); } HANDLE_CODE(unpack_unalign_integer(thresh_x_high_r15, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_low_r15, bref, (uint8_t)0, (uint8_t)31)); if (thresh_x_q_r15_present) { HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r15.thresh_x_high_q_r15, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r15.thresh_x_low_q_r15, bref, (uint8_t)0, (uint8_t)31)); } HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_r15, bref, (int8_t)-70, (int8_t)-22)); if (q_rx_lev_min_sul_r15_present) { HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_sul_r15, bref, (int8_t)-70, (int8_t)-22)); } HANDLE_CODE(unpack_unalign_integer(p_max_nr_r15, bref, (int8_t)-30, (int8_t)33)); if (ns_pmax_list_nr_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(ns_pmax_list_nr_r15, bref, 1, 8)); } if (q_qual_min_r15_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_r15, bref, (int8_t)-34, (int8_t)-3)); } HANDLE_CODE(bref.unpack(derive_ssb_idx_from_cell_r15, 1)); if (max_rs_idx_cell_qual_r15_present) { HANDLE_CODE(unpack_unalign_integer(max_rs_idx_cell_qual_r15, bref, (uint8_t)1, (uint8_t)16)); } if (thresh_rs_idx_r15_present) { HANDLE_CODE(thresh_rs_idx_r15.unpack(bref)); } return SRSASN_SUCCESS; } void carrier_freq_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r15", carrier_freq_r15); if (multi_band_info_list_r15_present) { j.start_array("multiBandInfoList-r15"); for (uint32_t i1 = 0; i1 < multi_band_info_list_r15.size(); ++i1) { j.write_int(multi_band_info_list_r15[i1]); } j.end_array(); } if (multi_band_info_list_sul_r15_present) { j.start_array("multiBandInfoListSUL-r15"); for (uint32_t i1 = 0; i1 < multi_band_info_list_sul_r15.size(); ++i1) { j.write_int(multi_band_info_list_sul_r15[i1]); } j.end_array(); } if (meas_timing_cfg_r15_present) { j.write_fieldname("measTimingConfig-r15"); meas_timing_cfg_r15.to_json(j); } j.write_str("subcarrierSpacingSSB-r15", subcarrier_spacing_ssb_r15.to_string()); if (ss_rssi_meas_r15_present) { j.write_fieldname("ss-RSSI-Measurement-r15"); ss_rssi_meas_r15.to_json(j); } if (cell_resel_prio_r15_present) { j.write_int("cellReselectionPriority-r15", cell_resel_prio_r15); } if (cell_resel_sub_prio_r15_present) { j.write_str("cellReselectionSubPriority-r15", cell_resel_sub_prio_r15.to_string()); } j.write_int("threshX-High-r15", thresh_x_high_r15); j.write_int("threshX-Low-r15", thresh_x_low_r15); if (thresh_x_q_r15_present) { j.write_fieldname("threshX-Q-r15"); j.start_obj(); j.write_int("threshX-HighQ-r15", thresh_x_q_r15.thresh_x_high_q_r15); j.write_int("threshX-LowQ-r15", thresh_x_q_r15.thresh_x_low_q_r15); j.end_obj(); } j.write_int("q-RxLevMin-r15", q_rx_lev_min_r15); if (q_rx_lev_min_sul_r15_present) { j.write_int("q-RxLevMinSUL-r15", q_rx_lev_min_sul_r15); } j.write_int("p-MaxNR-r15", p_max_nr_r15); if (ns_pmax_list_nr_r15_present) { j.start_array("ns-PmaxListNR-r15"); for (uint32_t i1 = 0; i1 < ns_pmax_list_nr_r15.size(); ++i1) { ns_pmax_list_nr_r15[i1].to_json(j); } j.end_array(); } if (q_qual_min_r15_present) { j.write_int("q-QualMin-r15", q_qual_min_r15); } j.write_bool("deriveSSB-IndexFromCell-r15", derive_ssb_idx_from_cell_r15); if (max_rs_idx_cell_qual_r15_present) { j.write_int("maxRS-IndexCellQual-r15", max_rs_idx_cell_qual_r15); } if (thresh_rs_idx_r15_present) { j.write_fieldname("threshRS-Index-r15"); thresh_rs_idx_r15.to_json(j); } j.end_obj(); } // CarrierFreqUTRA-FDD ::= SEQUENCE SRSASN_CODE carrier_freq_utra_fdd_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq, (uint16_t)0, (uint16_t)16383)); if (cell_resel_prio_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(pack_unalign_integer(bref, thresh_x_high, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_low, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min, (int8_t)-60, (int8_t)-13)); HANDLE_CODE(pack_unalign_integer(bref, p_max_utra, (int8_t)-50, (int8_t)33)); HANDLE_CODE(pack_unalign_integer(bref, q_qual_min, (int8_t)-24, (int8_t)0)); if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(thresh_x_q_r9_present != (thresh_x_q_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= thresh_x_q_r9_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(thresh_x_q_r9_present, 1)); if (thresh_x_q_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r9->thresh_x_high_q_r9, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r9->thresh_x_low_q_r9, (uint8_t)0, (uint8_t)31)); } } } return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_utra_fdd_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq, bref, (uint16_t)0, (uint16_t)16383)); if (cell_resel_prio_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(unpack_unalign_integer(thresh_x_high, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_low, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min, bref, (int8_t)-60, (int8_t)-13)); HANDLE_CODE(unpack_unalign_integer(p_max_utra, bref, (int8_t)-50, (int8_t)33)); HANDLE_CODE(unpack_unalign_integer(q_qual_min, bref, (int8_t)-24, (int8_t)0)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(thresh_x_q_r9_present, 1)); if (thresh_x_q_r9_present) { thresh_x_q_r9 = make_copy_ptr(thresh_x_q_r9_s_()); HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r9->thresh_x_high_q_r9, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r9->thresh_x_low_q_r9, bref, (uint8_t)0, (uint8_t)31)); } } } return SRSASN_SUCCESS; } void carrier_freq_utra_fdd_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq", carrier_freq); if (cell_resel_prio_present) { j.write_int("cellReselectionPriority", cell_resel_prio); } j.write_int("threshX-High", thresh_x_high); j.write_int("threshX-Low", thresh_x_low); j.write_int("q-RxLevMin", q_rx_lev_min); j.write_int("p-MaxUTRA", p_max_utra); j.write_int("q-QualMin", q_qual_min); if (ext) { rrc_asn1_warn_assert(thresh_x_q_r9_present != (thresh_x_q_r9.get() != NULL), __FILE__, __LINE__); if (thresh_x_q_r9_present) { j.write_fieldname("threshX-Q-r9"); j.start_obj(); j.write_int("threshX-HighQ-r9", thresh_x_q_r9->thresh_x_high_q_r9); j.write_int("threshX-LowQ-r9", thresh_x_q_r9->thresh_x_low_q_r9); j.end_obj(); } } j.end_obj(); } // CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE SRSASN_CODE carrier_freq_utra_fdd_ext_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); HANDLE_CODE(bref.pack(thresh_x_q_r12_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_r12_present, 1)); HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r12, (uint16_t)0, (uint16_t)16383)); if (cell_resel_prio_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio_r12, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(pack_unalign_integer(bref, thresh_x_high_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_low_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_r12, (int8_t)-60, (int8_t)-13)); HANDLE_CODE(pack_unalign_integer(bref, p_max_utra_r12, (int8_t)-50, (int8_t)33)); HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_r12, (int8_t)-24, (int8_t)0)); if (thresh_x_q_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r12.thresh_x_high_q_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r12.thresh_x_low_q_r12, (uint8_t)0, (uint8_t)31)); } if (multi_band_info_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r12, 1, 8, UnalignedIntegerPacker(1, 86))); } return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_utra_fdd_ext_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); HANDLE_CODE(bref.unpack(thresh_x_q_r12_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_r12_present, 1)); HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r12, bref, (uint16_t)0, (uint16_t)16383)); if (cell_resel_prio_r12_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_prio_r12, bref, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(unpack_unalign_integer(thresh_x_high_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_low_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_r12, bref, (int8_t)-60, (int8_t)-13)); HANDLE_CODE(unpack_unalign_integer(p_max_utra_r12, bref, (int8_t)-50, (int8_t)33)); HANDLE_CODE(unpack_unalign_integer(q_qual_min_r12, bref, (int8_t)-24, (int8_t)0)); if (thresh_x_q_r12_present) { HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r12.thresh_x_high_q_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r12.thresh_x_low_q_r12, bref, (uint8_t)0, (uint8_t)31)); } if (multi_band_info_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r12, bref, 1, 8, UnalignedIntegerPacker(1, 86))); } return SRSASN_SUCCESS; } void carrier_freq_utra_fdd_ext_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r12", carrier_freq_r12); if (cell_resel_prio_r12_present) { j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); } j.write_int("threshX-High-r12", thresh_x_high_r12); j.write_int("threshX-Low-r12", thresh_x_low_r12); j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); j.write_int("p-MaxUTRA-r12", p_max_utra_r12); j.write_int("q-QualMin-r12", q_qual_min_r12); if (thresh_x_q_r12_present) { j.write_fieldname("threshX-Q-r12"); j.start_obj(); j.write_int("threshX-HighQ-r12", thresh_x_q_r12.thresh_x_high_q_r12); j.write_int("threshX-LowQ-r12", thresh_x_q_r12.thresh_x_low_q_r12); j.end_obj(); } if (multi_band_info_list_r12_present) { j.start_array("multiBandInfoList-r12"); for (uint32_t i1 = 0; i1 < multi_band_info_list_r12.size(); ++i1) { j.write_int(multi_band_info_list_r12[i1]); } j.end_array(); } if (reduced_meas_performance_r12_present) { j.write_str("reducedMeasPerformance-r12", "true"); } j.end_obj(); } // CarrierFreqUTRA-TDD ::= SEQUENCE SRSASN_CODE carrier_freq_utra_tdd_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq, (uint16_t)0, (uint16_t)16383)); if (cell_resel_prio_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(pack_unalign_integer(bref, thresh_x_high, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_low, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min, (int8_t)-60, (int8_t)-13)); HANDLE_CODE(pack_unalign_integer(bref, p_max_utra, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_utra_tdd_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq, bref, (uint16_t)0, (uint16_t)16383)); if (cell_resel_prio_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(unpack_unalign_integer(thresh_x_high, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_low, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min, bref, (int8_t)-60, (int8_t)-13)); HANDLE_CODE(unpack_unalign_integer(p_max_utra, bref, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } void carrier_freq_utra_tdd_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq", carrier_freq); if (cell_resel_prio_present) { j.write_int("cellReselectionPriority", cell_resel_prio); } j.write_int("threshX-High", thresh_x_high); j.write_int("threshX-Low", thresh_x_low); j.write_int("q-RxLevMin", q_rx_lev_min); j.write_int("p-MaxUTRA", p_max_utra); j.end_obj(); } // CarrierFreqUTRA-TDD-r12 ::= SEQUENCE SRSASN_CODE carrier_freq_utra_tdd_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r12, (uint16_t)0, (uint16_t)16383)); if (cell_resel_prio_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio_r12, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(pack_unalign_integer(bref, thresh_x_high_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_low_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_r12, (int8_t)-60, (int8_t)-13)); HANDLE_CODE(pack_unalign_integer(bref, p_max_utra_r12, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_utra_tdd_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r12, bref, (uint16_t)0, (uint16_t)16383)); if (cell_resel_prio_r12_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_prio_r12, bref, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(unpack_unalign_integer(thresh_x_high_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_low_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_r12, bref, (int8_t)-60, (int8_t)-13)); HANDLE_CODE(unpack_unalign_integer(p_max_utra_r12, bref, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } void carrier_freq_utra_tdd_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r12", carrier_freq_r12); if (cell_resel_prio_r12_present) { j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); } j.write_int("threshX-High-r12", thresh_x_high_r12); j.write_int("threshX-Low-r12", thresh_x_low_r12); j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); j.write_int("p-MaxUTRA-r12", p_max_utra_r12); if (reduced_meas_performance_r12_present) { j.write_str("reducedMeasPerformance-r12", "true"); } j.end_obj(); } // CarrierFreqsInfoGERAN ::= SEQUENCE SRSASN_CODE carrier_freqs_info_geran_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(carrier_freqs.pack(bref)); HANDLE_CODE(bref.pack(common_info.cell_resel_prio_present, 1)); HANDLE_CODE(bref.pack(common_info.p_max_geran_present, 1)); if (common_info.cell_resel_prio_present) { HANDLE_CODE(pack_unalign_integer(bref, common_info.cell_resel_prio, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(common_info.ncc_permitted.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, common_info.q_rx_lev_min, (uint8_t)0, (uint8_t)45)); if (common_info.p_max_geran_present) { HANDLE_CODE(pack_unalign_integer(bref, common_info.p_max_geran, (uint8_t)0, (uint8_t)39)); } HANDLE_CODE(pack_unalign_integer(bref, common_info.thresh_x_high, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, common_info.thresh_x_low, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } SRSASN_CODE carrier_freqs_info_geran_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(carrier_freqs.unpack(bref)); HANDLE_CODE(bref.unpack(common_info.cell_resel_prio_present, 1)); HANDLE_CODE(bref.unpack(common_info.p_max_geran_present, 1)); if (common_info.cell_resel_prio_present) { HANDLE_CODE(unpack_unalign_integer(common_info.cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(common_info.ncc_permitted.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(common_info.q_rx_lev_min, bref, (uint8_t)0, (uint8_t)45)); if (common_info.p_max_geran_present) { HANDLE_CODE(unpack_unalign_integer(common_info.p_max_geran, bref, (uint8_t)0, (uint8_t)39)); } HANDLE_CODE(unpack_unalign_integer(common_info.thresh_x_high, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(common_info.thresh_x_low, bref, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } void carrier_freqs_info_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("carrierFreqs"); carrier_freqs.to_json(j); j.write_fieldname("commonInfo"); j.start_obj(); if (common_info.cell_resel_prio_present) { j.write_int("cellReselectionPriority", common_info.cell_resel_prio); } j.write_str("ncc-Permitted", common_info.ncc_permitted.to_string()); j.write_int("q-RxLevMin", common_info.q_rx_lev_min); if (common_info.p_max_geran_present) { j.write_int("p-MaxGERAN", common_info.p_max_geran); } j.write_int("threshX-High", common_info.thresh_x_high); j.write_int("threshX-Low", common_info.thresh_x_low); j.end_obj(); j.end_obj(); } // CellSelectionInfo-v1130 ::= SEQUENCE SRSASN_CODE cell_sel_info_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_wb_r11, (int8_t)-34, (int8_t)-3)); return SRSASN_SUCCESS; } SRSASN_CODE cell_sel_info_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_wb_r11, bref, (int8_t)-34, (int8_t)-3)); return SRSASN_SUCCESS; } void cell_sel_info_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("q-QualMinWB-r11", q_qual_min_wb_r11); j.end_obj(); } // EAB-Config-r11 ::= SEQUENCE SRSASN_CODE eab_cfg_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, eab_category_r11)); HANDLE_CODE(eab_barr_bitmap_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE eab_cfg_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(eab_category_r11, bref)); HANDLE_CODE(eab_barr_bitmap_r11.unpack(bref)); return SRSASN_SUCCESS; } void eab_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("eab-Category-r11", eab_category_r11.to_string()); j.write_str("eab-BarringBitmap-r11", eab_barr_bitmap_r11.to_string()); j.end_obj(); } // FreqHoppingParameters-r13 ::= SEQUENCE SRSASN_CODE freq_hop_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dummy_present, 1)); HANDLE_CODE(bref.pack(dummy2_present, 1)); HANDLE_CODE(bref.pack(dummy3_present, 1)); HANDLE_CODE(bref.pack(interv_ul_hop_cfg_common_mode_a_r13_present, 1)); HANDLE_CODE(bref.pack(interv_ul_hop_cfg_common_mode_b_r13_present, 1)); HANDLE_CODE(bref.pack(dummy4_present, 1)); if (dummy_present) { HANDLE_CODE(pack_enum(bref, dummy)); } if (dummy2_present) { HANDLE_CODE(dummy2.pack(bref)); } if (dummy3_present) { HANDLE_CODE(dummy3.pack(bref)); } if (interv_ul_hop_cfg_common_mode_a_r13_present) { HANDLE_CODE(interv_ul_hop_cfg_common_mode_a_r13.pack(bref)); } if (interv_ul_hop_cfg_common_mode_b_r13_present) { HANDLE_CODE(interv_ul_hop_cfg_common_mode_b_r13.pack(bref)); } if (dummy4_present) { HANDLE_CODE(pack_unalign_integer(bref, dummy4, (uint8_t)1, (uint8_t)16)); } return SRSASN_SUCCESS; } SRSASN_CODE freq_hop_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dummy_present, 1)); HANDLE_CODE(bref.unpack(dummy2_present, 1)); HANDLE_CODE(bref.unpack(dummy3_present, 1)); HANDLE_CODE(bref.unpack(interv_ul_hop_cfg_common_mode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(interv_ul_hop_cfg_common_mode_b_r13_present, 1)); HANDLE_CODE(bref.unpack(dummy4_present, 1)); if (dummy_present) { HANDLE_CODE(unpack_enum(dummy, bref)); } if (dummy2_present) { HANDLE_CODE(dummy2.unpack(bref)); } if (dummy3_present) { HANDLE_CODE(dummy3.unpack(bref)); } if (interv_ul_hop_cfg_common_mode_a_r13_present) { HANDLE_CODE(interv_ul_hop_cfg_common_mode_a_r13.unpack(bref)); } if (interv_ul_hop_cfg_common_mode_b_r13_present) { HANDLE_CODE(interv_ul_hop_cfg_common_mode_b_r13.unpack(bref)); } if (dummy4_present) { HANDLE_CODE(unpack_unalign_integer(dummy4, bref, (uint8_t)1, (uint8_t)16)); } return SRSASN_SUCCESS; } void freq_hop_params_r13_s::to_json(json_writer& j) const { j.start_obj(); if (dummy_present) { j.write_str("dummy", dummy.to_string()); } if (dummy2_present) { j.write_fieldname("dummy2"); dummy2.to_json(j); } if (dummy3_present) { j.write_fieldname("dummy3"); dummy3.to_json(j); } if (interv_ul_hop_cfg_common_mode_a_r13_present) { j.write_fieldname("interval-ULHoppingConfigCommonModeA-r13"); interv_ul_hop_cfg_common_mode_a_r13.to_json(j); } if (interv_ul_hop_cfg_common_mode_b_r13_present) { j.write_fieldname("interval-ULHoppingConfigCommonModeB-r13"); interv_ul_hop_cfg_common_mode_b_r13.to_json(j); } if (dummy4_present) { j.write_int("dummy4", dummy4); } j.end_obj(); } void freq_hop_params_r13_s::dummy2_c_::destroy_() {} void freq_hop_params_r13_s::dummy2_c_::set(types::options e) { destroy_(); type_ = e; } freq_hop_params_r13_s::dummy2_c_::dummy2_c_(const freq_hop_params_r13_s::dummy2_c_& other) { type_ = other.type(); switch (type_) { case types::interv_fdd_r13: c.init(other.c.get()); break; case types::interv_tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy2_c_"); } } freq_hop_params_r13_s::dummy2_c_& freq_hop_params_r13_s::dummy2_c_:: operator=(const freq_hop_params_r13_s::dummy2_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::interv_fdd_r13: c.set(other.c.get()); break; case types::interv_tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy2_c_"); } return *this; } void freq_hop_params_r13_s::dummy2_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::interv_fdd_r13: j.write_str("interval-FDD-r13", c.get().to_string()); break; case types::interv_tdd_r13: j.write_str("interval-TDD-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy2_c_"); } j.end_obj(); } SRSASN_CODE freq_hop_params_r13_s::dummy2_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::interv_tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy2_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE freq_hop_params_r13_s::dummy2_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::interv_tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy2_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void freq_hop_params_r13_s::dummy3_c_::destroy_() {} void freq_hop_params_r13_s::dummy3_c_::set(types::options e) { destroy_(); type_ = e; } freq_hop_params_r13_s::dummy3_c_::dummy3_c_(const freq_hop_params_r13_s::dummy3_c_& other) { type_ = other.type(); switch (type_) { case types::interv_fdd_r13: c.init(other.c.get()); break; case types::interv_tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy3_c_"); } } freq_hop_params_r13_s::dummy3_c_& freq_hop_params_r13_s::dummy3_c_:: operator=(const freq_hop_params_r13_s::dummy3_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::interv_fdd_r13: c.set(other.c.get()); break; case types::interv_tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy3_c_"); } return *this; } void freq_hop_params_r13_s::dummy3_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::interv_fdd_r13: j.write_str("interval-FDD-r13", c.get().to_string()); break; case types::interv_tdd_r13: j.write_str("interval-TDD-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy3_c_"); } j.end_obj(); } SRSASN_CODE freq_hop_params_r13_s::dummy3_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::interv_tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy3_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE freq_hop_params_r13_s::dummy3_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::interv_tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::dummy3_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::destroy_() {} void freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::set(types::options e) { destroy_(); type_ = e; } freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_ul_hop_cfg_common_mode_a_r13_c_( const freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_& other) { type_ = other.type(); switch (type_) { case types::interv_fdd_r13: c.init(other.c.get()); break; case types::interv_tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_"); } } freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_& freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_:: operator=(const freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::interv_fdd_r13: c.set(other.c.get()); break; case types::interv_tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_"); } return *this; } void freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::interv_fdd_r13: j.write_str("interval-FDD-r13", c.get().to_string()); break; case types::interv_tdd_r13: j.write_str("interval-TDD-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_"); } j.end_obj(); } SRSASN_CODE freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::interv_tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::interv_tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::destroy_() {} void freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::set(types::options e) { destroy_(); type_ = e; } freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_ul_hop_cfg_common_mode_b_r13_c_( const freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_& other) { type_ = other.type(); switch (type_) { case types::interv_fdd_r13: c.init(other.c.get()); break; case types::interv_tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_"); } } freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_& freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_:: operator=(const freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::interv_fdd_r13: c.set(other.c.get()); break; case types::interv_tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_"); } return *this; } void freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::interv_fdd_r13: j.write_str("interval-FDD-r13", c.get().to_string()); break; case types::interv_tdd_r13: j.write_str("interval-TDD-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_"); } j.end_obj(); } SRSASN_CODE freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::interv_tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interv_fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::interv_tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // HighSpeedConfig-r14 ::= SEQUENCE SRSASN_CODE high_speed_cfg_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(high_speed_enhanced_meas_flag_r14_present, 1)); HANDLE_CODE(bref.pack(high_speed_enhanced_demod_flag_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE high_speed_cfg_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(high_speed_enhanced_meas_flag_r14_present, 1)); HANDLE_CODE(bref.unpack(high_speed_enhanced_demod_flag_r14_present, 1)); return SRSASN_SUCCESS; } void high_speed_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); if (high_speed_enhanced_meas_flag_r14_present) { j.write_str("highSpeedEnhancedMeasFlag-r14", "true"); } if (high_speed_enhanced_demod_flag_r14_present) { j.write_str("highSpeedEnhancedDemodulationFlag-r14", "true"); } j.end_obj(); } // HighSpeedConfig-v1530 ::= SEQUENCE SRSASN_CODE high_speed_cfg_v1530_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE high_speed_cfg_v1530_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void high_speed_cfg_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("highSpeedMeasGapCE-ModeA-r15", "true"); j.end_obj(); } // InterFreqCarrierFreqInfo ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(p_max_present, 1)); HANDLE_CODE(bref.pack(t_resel_eutra_sf_present, 1)); HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); HANDLE_CODE(bref.pack(q_offset_freq_present, 1)); HANDLE_CODE(bref.pack(inter_freq_neigh_cell_list_present, 1)); HANDLE_CODE(bref.pack(inter_freq_black_cell_list_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min, (int8_t)-70, (int8_t)-22)); if (p_max_present) { HANDLE_CODE(pack_unalign_integer(bref, p_max, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(pack_unalign_integer(bref, t_resel_eutra, (uint8_t)0, (uint8_t)7)); if (t_resel_eutra_sf_present) { HANDLE_CODE(t_resel_eutra_sf.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, thresh_x_high, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_low, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_enum(bref, allowed_meas_bw)); HANDLE_CODE(bref.pack(presence_ant_port1, 1)); if (cell_resel_prio_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(neigh_cell_cfg.pack(bref)); if (q_offset_freq_present) { HANDLE_CODE(pack_enum(bref, q_offset_freq)); } if (inter_freq_neigh_cell_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_cell_list, 1, 16)); } if (inter_freq_black_cell_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_black_cell_list, 1, 16)); } if (ext) { ext_groups_header group_flags(2); group_flags[0] |= q_qual_min_r9_present; rrc_asn1_warn_assert(thresh_x_q_r9_present != (thresh_x_q_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= thresh_x_q_r9_present; group_flags[1] |= q_qual_min_wb_r11_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(q_qual_min_r9_present, 1)); HANDLE_CODE(bref.pack(thresh_x_q_r9_present, 1)); if (q_qual_min_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_r9, (int8_t)-34, (int8_t)-3)); } if (thresh_x_q_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r9->thresh_x_high_q_r9, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r9->thresh_x_low_q_r9, (uint8_t)0, (uint8_t)31)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(q_qual_min_wb_r11_present, 1)); if (q_qual_min_wb_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_wb_r11, (int8_t)-34, (int8_t)-3)); } } } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(p_max_present, 1)); HANDLE_CODE(bref.unpack(t_resel_eutra_sf_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); HANDLE_CODE(bref.unpack(q_offset_freq_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_neigh_cell_list_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_black_cell_list_present, 1)); HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq, bref, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min, bref, (int8_t)-70, (int8_t)-22)); if (p_max_present) { HANDLE_CODE(unpack_unalign_integer(p_max, bref, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(unpack_unalign_integer(t_resel_eutra, bref, (uint8_t)0, (uint8_t)7)); if (t_resel_eutra_sf_present) { HANDLE_CODE(t_resel_eutra_sf.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(thresh_x_high, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_low, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_enum(allowed_meas_bw, bref)); HANDLE_CODE(bref.unpack(presence_ant_port1, 1)); if (cell_resel_prio_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(neigh_cell_cfg.unpack(bref)); if (q_offset_freq_present) { HANDLE_CODE(unpack_enum(q_offset_freq, bref)); } if (inter_freq_neigh_cell_list_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_cell_list, bref, 1, 16)); } if (inter_freq_black_cell_list_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_black_cell_list, bref, 1, 16)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(q_qual_min_r9_present, 1)); HANDLE_CODE(bref.unpack(thresh_x_q_r9_present, 1)); if (q_qual_min_r9_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_r9, bref, (int8_t)-34, (int8_t)-3)); } if (thresh_x_q_r9_present) { thresh_x_q_r9 = make_copy_ptr(thresh_x_q_r9_s_()); HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r9->thresh_x_high_q_r9, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r9->thresh_x_low_q_r9, bref, (uint8_t)0, (uint8_t)31)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(q_qual_min_wb_r11_present, 1)); if (q_qual_min_wb_r11_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_wb_r11, bref, (int8_t)-34, (int8_t)-3)); } } } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("dl-CarrierFreq", dl_carrier_freq); j.write_int("q-RxLevMin", q_rx_lev_min); if (p_max_present) { j.write_int("p-Max", p_max); } j.write_int("t-ReselectionEUTRA", t_resel_eutra); if (t_resel_eutra_sf_present) { j.write_fieldname("t-ReselectionEUTRA-SF"); t_resel_eutra_sf.to_json(j); } j.write_int("threshX-High", thresh_x_high); j.write_int("threshX-Low", thresh_x_low); j.write_str("allowedMeasBandwidth", allowed_meas_bw.to_string()); j.write_bool("presenceAntennaPort1", presence_ant_port1); if (cell_resel_prio_present) { j.write_int("cellReselectionPriority", cell_resel_prio); } j.write_str("neighCellConfig", neigh_cell_cfg.to_string()); if (q_offset_freq_present) { j.write_str("q-OffsetFreq", q_offset_freq.to_string()); } if (inter_freq_neigh_cell_list_present) { j.start_array("interFreqNeighCellList"); for (uint32_t i1 = 0; i1 < inter_freq_neigh_cell_list.size(); ++i1) { inter_freq_neigh_cell_list[i1].to_json(j); } j.end_array(); } if (inter_freq_black_cell_list_present) { j.start_array("interFreqBlackCellList"); for (uint32_t i1 = 0; i1 < inter_freq_black_cell_list.size(); ++i1) { inter_freq_black_cell_list[i1].to_json(j); } j.end_array(); } if (ext) { if (q_qual_min_r9_present) { j.write_int("q-QualMin-r9", q_qual_min_r9); } rrc_asn1_warn_assert(thresh_x_q_r9_present != (thresh_x_q_r9.get() != NULL), __FILE__, __LINE__); if (thresh_x_q_r9_present) { j.write_fieldname("threshX-Q-r9"); j.start_obj(); j.write_int("threshX-HighQ-r9", thresh_x_q_r9->thresh_x_high_q_r9); j.write_int("threshX-LowQ-r9", thresh_x_q_r9->thresh_x_low_q_r9); j.end_obj(); } if (q_qual_min_wb_r11_present) { j.write_int("q-QualMinWB-r11", q_qual_min_wb_r11); } } j.end_obj(); } // InterFreqCarrierFreqInfo-r12 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(p_max_r12_present, 1)); HANDLE_CODE(bref.pack(t_resel_eutra_sf_r12_present, 1)); HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); HANDLE_CODE(bref.pack(q_offset_freq_r12_present, 1)); HANDLE_CODE(bref.pack(inter_freq_neigh_cell_list_r12_present, 1)); HANDLE_CODE(bref.pack(inter_freq_black_cell_list_r12_present, 1)); HANDLE_CODE(bref.pack(q_qual_min_r12_present, 1)); HANDLE_CODE(bref.pack(thresh_x_q_r12_present, 1)); HANDLE_CODE(bref.pack(q_qual_min_wb_r12_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_r12_present, 1)); HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_r12, (int8_t)-70, (int8_t)-22)); if (p_max_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, p_max_r12, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(pack_unalign_integer(bref, t_resel_eutra_r12, (uint8_t)0, (uint8_t)7)); if (t_resel_eutra_sf_r12_present) { HANDLE_CODE(t_resel_eutra_sf_r12.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, thresh_x_high_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_low_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_enum(bref, allowed_meas_bw_r12)); HANDLE_CODE(bref.pack(presence_ant_port1_r12, 1)); if (cell_resel_prio_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio_r12, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(neigh_cell_cfg_r12.pack(bref)); if (q_offset_freq_r12_present) { HANDLE_CODE(pack_enum(bref, q_offset_freq_r12)); } if (inter_freq_neigh_cell_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_cell_list_r12, 1, 16)); } if (inter_freq_black_cell_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_black_cell_list_r12, 1, 16)); } if (q_qual_min_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_r12, (int8_t)-34, (int8_t)-3)); } if (thresh_x_q_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r12.thresh_x_high_q_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, thresh_x_q_r12.thresh_x_low_q_r12, (uint8_t)0, (uint8_t)31)); } if (q_qual_min_wb_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_wb_r12, (int8_t)-34, (int8_t)-3)); } if (multi_band_info_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r12, 1, 8, UnalignedIntegerPacker(1, 256))); } if (q_qual_min_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(p_max_r12_present, 1)); HANDLE_CODE(bref.unpack(t_resel_eutra_sf_r12_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); HANDLE_CODE(bref.unpack(q_offset_freq_r12_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_neigh_cell_list_r12_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_black_cell_list_r12_present, 1)); HANDLE_CODE(bref.unpack(q_qual_min_r12_present, 1)); HANDLE_CODE(bref.unpack(thresh_x_q_r12_present, 1)); HANDLE_CODE(bref.unpack(q_qual_min_wb_r12_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_r12_present, 1)); HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_r12, bref, (int8_t)-70, (int8_t)-22)); if (p_max_r12_present) { HANDLE_CODE(unpack_unalign_integer(p_max_r12, bref, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(unpack_unalign_integer(t_resel_eutra_r12, bref, (uint8_t)0, (uint8_t)7)); if (t_resel_eutra_sf_r12_present) { HANDLE_CODE(t_resel_eutra_sf_r12.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(thresh_x_high_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_low_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_enum(allowed_meas_bw_r12, bref)); HANDLE_CODE(bref.unpack(presence_ant_port1_r12, 1)); if (cell_resel_prio_r12_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_prio_r12, bref, (uint8_t)0, (uint8_t)7)); } HANDLE_CODE(neigh_cell_cfg_r12.unpack(bref)); if (q_offset_freq_r12_present) { HANDLE_CODE(unpack_enum(q_offset_freq_r12, bref)); } if (inter_freq_neigh_cell_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_cell_list_r12, bref, 1, 16)); } if (inter_freq_black_cell_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_black_cell_list_r12, bref, 1, 16)); } if (q_qual_min_r12_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_r12, bref, (int8_t)-34, (int8_t)-3)); } if (thresh_x_q_r12_present) { HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r12.thresh_x_high_q_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(thresh_x_q_r12.thresh_x_low_q_r12, bref, (uint8_t)0, (uint8_t)31)); } if (q_qual_min_wb_r12_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_wb_r12, bref, (int8_t)-34, (int8_t)-3)); } if (multi_band_info_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r12, bref, 1, 8, UnalignedIntegerPacker(1, 256))); } if (q_qual_min_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("dl-CarrierFreq-r12", dl_carrier_freq_r12); j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); if (p_max_r12_present) { j.write_int("p-Max-r12", p_max_r12); } j.write_int("t-ReselectionEUTRA-r12", t_resel_eutra_r12); if (t_resel_eutra_sf_r12_present) { j.write_fieldname("t-ReselectionEUTRA-SF-r12"); t_resel_eutra_sf_r12.to_json(j); } j.write_int("threshX-High-r12", thresh_x_high_r12); j.write_int("threshX-Low-r12", thresh_x_low_r12); j.write_str("allowedMeasBandwidth-r12", allowed_meas_bw_r12.to_string()); j.write_bool("presenceAntennaPort1-r12", presence_ant_port1_r12); if (cell_resel_prio_r12_present) { j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); } j.write_str("neighCellConfig-r12", neigh_cell_cfg_r12.to_string()); if (q_offset_freq_r12_present) { j.write_str("q-OffsetFreq-r12", q_offset_freq_r12.to_string()); } if (inter_freq_neigh_cell_list_r12_present) { j.start_array("interFreqNeighCellList-r12"); for (uint32_t i1 = 0; i1 < inter_freq_neigh_cell_list_r12.size(); ++i1) { inter_freq_neigh_cell_list_r12[i1].to_json(j); } j.end_array(); } if (inter_freq_black_cell_list_r12_present) { j.start_array("interFreqBlackCellList-r12"); for (uint32_t i1 = 0; i1 < inter_freq_black_cell_list_r12.size(); ++i1) { inter_freq_black_cell_list_r12[i1].to_json(j); } j.end_array(); } if (q_qual_min_r12_present) { j.write_int("q-QualMin-r12", q_qual_min_r12); } if (thresh_x_q_r12_present) { j.write_fieldname("threshX-Q-r12"); j.start_obj(); j.write_int("threshX-HighQ-r12", thresh_x_q_r12.thresh_x_high_q_r12); j.write_int("threshX-LowQ-r12", thresh_x_q_r12.thresh_x_low_q_r12); j.end_obj(); } if (q_qual_min_wb_r12_present) { j.write_int("q-QualMinWB-r12", q_qual_min_wb_r12); } if (multi_band_info_list_r12_present) { j.start_array("multiBandInfoList-r12"); for (uint32_t i1 = 0; i1 < multi_band_info_list_r12.size(); ++i1) { j.write_int(multi_band_info_list_r12[i1]); } j.end_array(); } if (reduced_meas_performance_r12_present) { j.write_str("reducedMeasPerformance-r12", "true"); } if (q_qual_min_rsrq_on_all_symbols_r12_present) { j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); } j.end_obj(); } // InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); if (q_qual_min_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); if (q_qual_min_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (reduced_meas_performance_r12_present) { j.write_str("reducedMeasPerformance-r12", "true"); } if (q_qual_min_rsrq_on_all_symbols_r12_present) { j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); } j.end_obj(); } // InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_resel_sub_prio_r13_present, 1)); HANDLE_CODE(bref.pack(redist_inter_freq_info_r13_present, 1)); HANDLE_CODE(bref.pack(cell_sel_info_ce_r13_present, 1)); HANDLE_CODE(bref.pack(t_resel_eutra_ce_r13_present, 1)); if (cell_resel_sub_prio_r13_present) { HANDLE_CODE(pack_enum(bref, cell_resel_sub_prio_r13)); } if (redist_inter_freq_info_r13_present) { HANDLE_CODE(redist_inter_freq_info_r13.pack(bref)); } if (cell_sel_info_ce_r13_present) { HANDLE_CODE(cell_sel_info_ce_r13.pack(bref)); } if (t_resel_eutra_ce_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, t_resel_eutra_ce_r13, (uint8_t)0, (uint8_t)15)); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_resel_sub_prio_r13_present, 1)); HANDLE_CODE(bref.unpack(redist_inter_freq_info_r13_present, 1)); HANDLE_CODE(bref.unpack(cell_sel_info_ce_r13_present, 1)); HANDLE_CODE(bref.unpack(t_resel_eutra_ce_r13_present, 1)); if (cell_resel_sub_prio_r13_present) { HANDLE_CODE(unpack_enum(cell_resel_sub_prio_r13, bref)); } if (redist_inter_freq_info_r13_present) { HANDLE_CODE(redist_inter_freq_info_r13.unpack(bref)); } if (cell_sel_info_ce_r13_present) { HANDLE_CODE(cell_sel_info_ce_r13.unpack(bref)); } if (t_resel_eutra_ce_r13_present) { HANDLE_CODE(unpack_unalign_integer(t_resel_eutra_ce_r13, bref, (uint8_t)0, (uint8_t)15)); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (cell_resel_sub_prio_r13_present) { j.write_str("cellReselectionSubPriority-r13", cell_resel_sub_prio_r13.to_string()); } if (redist_inter_freq_info_r13_present) { j.write_fieldname("redistributionInterFreqInfo-r13"); redist_inter_freq_info_r13.to_json(j); } if (cell_sel_info_ce_r13_present) { j.write_fieldname("cellSelectionInfoCE-r13"); cell_sel_info_ce_r13.to_json(j); } if (t_resel_eutra_ce_r13_present) { j.write_int("t-ReselectionEUTRA-CE-r13", t_resel_eutra_ce_r13); } j.end_obj(); } // InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v1350_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_sel_info_ce1_r13_present, 1)); if (cell_sel_info_ce1_r13_present) { HANDLE_CODE(cell_sel_info_ce1_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v1350_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_sel_info_ce1_r13_present, 1)); if (cell_sel_info_ce1_r13_present) { HANDLE_CODE(cell_sel_info_ce1_r13.unpack(bref)); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v1350_s::to_json(json_writer& j) const { j.start_obj(); if (cell_sel_info_ce1_r13_present) { j.write_fieldname("cellSelectionInfoCE1-r13"); cell_sel_info_ce1_r13.to_json(j); } j.end_obj(); } // InterFreqCarrierFreqInfo-v1530 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_freq_neigh_hsdn_cell_list_r15_present, 1)); HANDLE_CODE(bref.pack(cell_sel_info_ce_v1530_present, 1)); HANDLE_CODE(bref.pack(hsdn_ind_r15, 1)); if (inter_freq_neigh_hsdn_cell_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_hsdn_cell_list_r15, 1, 16)); } if (cell_sel_info_ce_v1530_present) { HANDLE_CODE(cell_sel_info_ce_v1530.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_freq_neigh_hsdn_cell_list_r15_present, 1)); HANDLE_CODE(bref.unpack(cell_sel_info_ce_v1530_present, 1)); HANDLE_CODE(bref.unpack(hsdn_ind_r15, 1)); if (inter_freq_neigh_hsdn_cell_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_hsdn_cell_list_r15, bref, 1, 16)); } if (cell_sel_info_ce_v1530_present) { HANDLE_CODE(cell_sel_info_ce_v1530.unpack(bref)); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("hsdn-Indication-r15", hsdn_ind_r15); if (inter_freq_neigh_hsdn_cell_list_r15_present) { j.start_array("interFreqNeighHSDN-CellList-r15"); for (uint32_t i1 = 0; i1 < inter_freq_neigh_hsdn_cell_list_r15.size(); ++i1) { inter_freq_neigh_hsdn_cell_list_r15[i1].to_json(j); } j.end_array(); } if (cell_sel_info_ce_v1530_present) { j.write_fieldname("cellSelectionInfoCE-v1530"); cell_sel_info_ce_v1530.to_json(j); } j.end_obj(); } // InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE SRSASN_CODE inter_freq_carrier_freq_info_v8h0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); if (multi_band_info_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, UnalignedIntegerPacker(1, 64))); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_carrier_freq_info_v8h0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); if (multi_band_info_list_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, UnalignedIntegerPacker(1, 64))); } return SRSASN_SUCCESS; } void inter_freq_carrier_freq_info_v8h0_s::to_json(json_writer& j) const { j.start_obj(); if (multi_band_info_list_present) { j.start_array("multiBandInfoList"); for (uint32_t i1 = 0; i1 < multi_band_info_list.size(); ++i1) { j.write_int(multi_band_info_list[i1]); } j.end_array(); } j.end_obj(); } // IntraFreqNeighCellInfo ::= SEQUENCE SRSASN_CODE intra_freq_neigh_cell_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_enum(bref, q_offset_cell)); return SRSASN_SUCCESS; } SRSASN_CODE intra_freq_neigh_cell_info_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_enum(q_offset_cell, bref)); return SRSASN_SUCCESS; } void intra_freq_neigh_cell_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId", pci); j.write_str("q-OffsetCell", q_offset_cell.to_string()); j.end_obj(); } // MBMS-CarrierType-r14 ::= SEQUENCE SRSASN_CODE mbms_carrier_type_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(frame_offset_r14_present, 1)); HANDLE_CODE(pack_enum(bref, carrier_type_r14)); if (frame_offset_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, frame_offset_r14, (uint8_t)0, (uint8_t)3)); } return SRSASN_SUCCESS; } SRSASN_CODE mbms_carrier_type_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(frame_offset_r14_present, 1)); HANDLE_CODE(unpack_enum(carrier_type_r14, bref)); if (frame_offset_r14_present) { HANDLE_CODE(unpack_unalign_integer(frame_offset_r14, bref, (uint8_t)0, (uint8_t)3)); } return SRSASN_SUCCESS; } void mbms_carrier_type_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("carrierType-r14", carrier_type_r14.to_string()); if (frame_offset_r14_present) { j.write_int("frameOffset-r14", frame_offset_r14); } j.end_obj(); } // MBMS-SAI-InterFreq-r11 ::= SEQUENCE SRSASN_CODE mbms_sai_inter_freq_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq_r11, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_list_r11, 1, 64, UnalignedIntegerPacker(0, 65535))); return SRSASN_SUCCESS; } SRSASN_CODE mbms_sai_inter_freq_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq_r11, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_list_r11, bref, 1, 64, UnalignedIntegerPacker(0, 65535))); return SRSASN_SUCCESS; } void mbms_sai_inter_freq_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("dl-CarrierFreq-r11", dl_carrier_freq_r11); j.start_array("mbms-SAI-List-r11"); for (uint32_t i1 = 0; i1 < mbms_sai_list_r11.size(); ++i1) { j.write_int(mbms_sai_list_r11[i1]); } j.end_array(); j.end_obj(); } // MBMS-SAI-InterFreq-v1140 ::= SEQUENCE SRSASN_CODE mbms_sai_inter_freq_v1140_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(multi_band_info_list_r11_present, 1)); if (multi_band_info_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r11, 1, 8, UnalignedIntegerPacker(1, 256))); } return SRSASN_SUCCESS; } SRSASN_CODE mbms_sai_inter_freq_v1140_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(multi_band_info_list_r11_present, 1)); if (multi_band_info_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r11, bref, 1, 8, UnalignedIntegerPacker(1, 256))); } return SRSASN_SUCCESS; } void mbms_sai_inter_freq_v1140_s::to_json(json_writer& j) const { j.start_obj(); if (multi_band_info_list_r11_present) { j.start_array("multiBandInfoList-r11"); for (uint32_t i1 = 0; i1 < multi_band_info_list_r11.size(); ++i1) { j.write_int(multi_band_info_list_r11[i1]); } j.end_array(); } j.end_obj(); } // MBSFN-AreaInfo-r9 ::= SEQUENCE SRSASN_CODE mbsfn_area_info_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, mbsfn_area_id_r9, (uint8_t)0, (uint8_t)255)); HANDLE_CODE(pack_enum(bref, non_mbsfn_region_len)); HANDLE_CODE(pack_unalign_integer(bref, notif_ind_r9, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_enum(bref, mcch_cfg_r9.mcch_repeat_period_r9)); HANDLE_CODE(pack_unalign_integer(bref, mcch_cfg_r9.mcch_offset_r9, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(pack_enum(bref, mcch_cfg_r9.mcch_mod_period_r9)); HANDLE_CODE(mcch_cfg_r9.sf_alloc_info_r9.pack(bref)); HANDLE_CODE(pack_enum(bref, mcch_cfg_r9.sig_mcs_r9)); if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(mcch_cfg_r14_present != (mcch_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[0] |= mcch_cfg_r14_present; group_flags[0] |= subcarrier_spacing_mbms_r14_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mcch_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(subcarrier_spacing_mbms_r14_present, 1)); if (mcch_cfg_r14_present) { HANDLE_CODE(bref.pack(mcch_cfg_r14->mcch_repeat_period_v1430_present, 1)); HANDLE_CODE(bref.pack(mcch_cfg_r14->mcch_mod_period_v1430_present, 1)); if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { HANDLE_CODE(pack_enum(bref, mcch_cfg_r14->mcch_repeat_period_v1430)); } if (mcch_cfg_r14->mcch_mod_period_v1430_present) { HANDLE_CODE(pack_enum(bref, mcch_cfg_r14->mcch_mod_period_v1430)); } } if (subcarrier_spacing_mbms_r14_present) { HANDLE_CODE(pack_enum(bref, subcarrier_spacing_mbms_r14)); } } } return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_area_info_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(mbsfn_area_id_r9, bref, (uint8_t)0, (uint8_t)255)); HANDLE_CODE(unpack_enum(non_mbsfn_region_len, bref)); HANDLE_CODE(unpack_unalign_integer(notif_ind_r9, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_enum(mcch_cfg_r9.mcch_repeat_period_r9, bref)); HANDLE_CODE(unpack_unalign_integer(mcch_cfg_r9.mcch_offset_r9, bref, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(unpack_enum(mcch_cfg_r9.mcch_mod_period_r9, bref)); HANDLE_CODE(mcch_cfg_r9.sf_alloc_info_r9.unpack(bref)); HANDLE_CODE(unpack_enum(mcch_cfg_r9.sig_mcs_r9, bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mcch_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(subcarrier_spacing_mbms_r14_present, 1)); if (mcch_cfg_r14_present) { mcch_cfg_r14 = make_copy_ptr(mcch_cfg_r14_s_()); HANDLE_CODE(bref.unpack(mcch_cfg_r14->mcch_repeat_period_v1430_present, 1)); HANDLE_CODE(bref.unpack(mcch_cfg_r14->mcch_mod_period_v1430_present, 1)); if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { HANDLE_CODE(unpack_enum(mcch_cfg_r14->mcch_repeat_period_v1430, bref)); } if (mcch_cfg_r14->mcch_mod_period_v1430_present) { HANDLE_CODE(unpack_enum(mcch_cfg_r14->mcch_mod_period_v1430, bref)); } } if (subcarrier_spacing_mbms_r14_present) { HANDLE_CODE(unpack_enum(subcarrier_spacing_mbms_r14, bref)); } } } return SRSASN_SUCCESS; } void mbsfn_area_info_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("mbsfn-AreaId-r9", mbsfn_area_id_r9); j.write_str("non-MBSFNregionLength", non_mbsfn_region_len.to_string()); j.write_int("notificationIndicator-r9", notif_ind_r9); j.write_fieldname("mcch-Config-r9"); j.start_obj(); j.write_str("mcch-RepetitionPeriod-r9", mcch_cfg_r9.mcch_repeat_period_r9.to_string()); j.write_int("mcch-Offset-r9", mcch_cfg_r9.mcch_offset_r9); j.write_str("mcch-ModificationPeriod-r9", mcch_cfg_r9.mcch_mod_period_r9.to_string()); j.write_str("sf-AllocInfo-r9", mcch_cfg_r9.sf_alloc_info_r9.to_string()); j.write_str("signallingMCS-r9", mcch_cfg_r9.sig_mcs_r9.to_string()); j.end_obj(); if (ext) { rrc_asn1_warn_assert(mcch_cfg_r14_present != (mcch_cfg_r14.get() != NULL), __FILE__, __LINE__); if (mcch_cfg_r14_present) { j.write_fieldname("mcch-Config-r14"); j.start_obj(); if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { j.write_str("mcch-RepetitionPeriod-v1430", mcch_cfg_r14->mcch_repeat_period_v1430.to_string()); } if (mcch_cfg_r14->mcch_mod_period_v1430_present) { j.write_str("mcch-ModificationPeriod-v1430", mcch_cfg_r14->mcch_mod_period_v1430.to_string()); } j.end_obj(); } if (subcarrier_spacing_mbms_r14_present) { j.write_str("subcarrierSpacingMBMS-r14", subcarrier_spacing_mbms_r14.to_string()); } } j.end_obj(); } // MBSFN-SubframeConfig ::= SEQUENCE SRSASN_CODE mbsfn_sf_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, radioframe_alloc_period)); HANDLE_CODE(pack_unalign_integer(bref, radioframe_alloc_offset, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(sf_alloc.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_sf_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(radioframe_alloc_period, bref)); HANDLE_CODE(unpack_unalign_integer(radioframe_alloc_offset, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(sf_alloc.unpack(bref)); return SRSASN_SUCCESS; } void mbsfn_sf_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("radioframeAllocationPeriod", radioframe_alloc_period.to_string()); j.write_int("radioframeAllocationOffset", radioframe_alloc_offset); j.write_fieldname("subframeAllocation"); sf_alloc.to_json(j); j.end_obj(); } void mbsfn_sf_cfg_s::sf_alloc_c_::destroy_() { switch (type_) { case types::one_frame: c.destroy >(); break; case types::four_frames: c.destroy >(); break; default: break; } } void mbsfn_sf_cfg_s::sf_alloc_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::one_frame: c.init >(); break; case types::four_frames: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_s::sf_alloc_c_"); } } mbsfn_sf_cfg_s::sf_alloc_c_::sf_alloc_c_(const mbsfn_sf_cfg_s::sf_alloc_c_& other) { type_ = other.type(); switch (type_) { case types::one_frame: c.init(other.c.get >()); break; case types::four_frames: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_s::sf_alloc_c_"); } } mbsfn_sf_cfg_s::sf_alloc_c_& mbsfn_sf_cfg_s::sf_alloc_c_::operator=(const mbsfn_sf_cfg_s::sf_alloc_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::one_frame: c.set(other.c.get >()); break; case types::four_frames: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_s::sf_alloc_c_"); } return *this; } void mbsfn_sf_cfg_s::sf_alloc_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::one_frame: j.write_str("oneFrame", c.get >().to_string()); break; case types::four_frames: j.write_str("fourFrames", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_s::sf_alloc_c_"); } j.end_obj(); } SRSASN_CODE mbsfn_sf_cfg_s::sf_alloc_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::one_frame: HANDLE_CODE(c.get >().pack(bref)); break; case types::four_frames: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_s::sf_alloc_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_sf_cfg_s::sf_alloc_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::one_frame: HANDLE_CODE(c.get >().unpack(bref)); break; case types::four_frames: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_s::sf_alloc_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MBSFN-SubframeConfig-v1430 ::= SEQUENCE SRSASN_CODE mbsfn_sf_cfg_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(sf_alloc_v1430.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_sf_cfg_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(sf_alloc_v1430.unpack(bref)); return SRSASN_SUCCESS; } void mbsfn_sf_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("subframeAllocation-v1430"); sf_alloc_v1430.to_json(j); j.end_obj(); } void mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::destroy_() { switch (type_) { case types::one_frame_v1430: c.destroy >(); break; case types::four_frames_v1430: c.destroy >(); break; default: break; } } void mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::one_frame_v1430: c.init >(); break; case types::four_frames_v1430: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_"); } } mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::sf_alloc_v1430_c_(const mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_& other) { type_ = other.type(); switch (type_) { case types::one_frame_v1430: c.init(other.c.get >()); break; case types::four_frames_v1430: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_"); } } mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_& mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_:: operator=(const mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::one_frame_v1430: c.set(other.c.get >()); break; case types::four_frames_v1430: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_"); } return *this; } void mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::one_frame_v1430: j.write_str("oneFrame-v1430", c.get >().to_string()); break; case types::four_frames_v1430: j.write_str("fourFrames-v1430", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_"); } j.end_obj(); } SRSASN_CODE mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::one_frame_v1430: HANDLE_CODE(c.get >().pack(bref)); break; case types::four_frames_v1430: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::one_frame_v1430: HANDLE_CODE(c.get >().unpack(bref)); break; case types::four_frames_v1430: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PCCH-Config ::= SEQUENCE SRSASN_CODE pcch_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, default_paging_cycle)); HANDLE_CODE(pack_enum(bref, nb)); return SRSASN_SUCCESS; } SRSASN_CODE pcch_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(default_paging_cycle, bref)); HANDLE_CODE(unpack_enum(nb, bref)); return SRSASN_SUCCESS; } void pcch_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("defaultPagingCycle", default_paging_cycle.to_string()); j.write_str("nB", nb.to_string()); j.end_obj(); } // PCCH-Config-v1310 ::= SEQUENCE SRSASN_CODE pcch_cfg_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(nb_v1310_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, paging_narrow_bands_r13, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_enum(bref, mpdcch_num_repeat_paging_r13)); if (nb_v1310_present) { HANDLE_CODE(pack_enum(bref, nb_v1310)); } return SRSASN_SUCCESS; } SRSASN_CODE pcch_cfg_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(nb_v1310_present, 1)); HANDLE_CODE(unpack_unalign_integer(paging_narrow_bands_r13, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_enum(mpdcch_num_repeat_paging_r13, bref)); if (nb_v1310_present) { HANDLE_CODE(unpack_enum(nb_v1310, bref)); } return SRSASN_SUCCESS; } void pcch_cfg_v1310_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("paging-narrowBands-r13", paging_narrow_bands_r13); j.write_str("mpdcch-NumRepetition-Paging-r13", mpdcch_num_repeat_paging_r13.to_string()); if (nb_v1310_present) { j.write_str("nB-v1310", nb_v1310.to_string()); } j.end_obj(); } // PDSCH-ConfigCommon ::= SEQUENCE SRSASN_CODE pdsch_cfg_common_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, ref_sig_pwr, (int8_t)-60, (int8_t)50)); HANDLE_CODE(pack_unalign_integer(bref, p_b, (uint8_t)0, (uint8_t)3)); return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_common_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(ref_sig_pwr, bref, (int8_t)-60, (int8_t)50)); HANDLE_CODE(unpack_unalign_integer(p_b, bref, (uint8_t)0, (uint8_t)3)); return SRSASN_SUCCESS; } void pdsch_cfg_common_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("referenceSignalPower", ref_sig_pwr); j.write_int("p-b", p_b); j.end_obj(); } // PDSCH-ConfigCommon-v1310 ::= SEQUENCE SRSASN_CODE pdsch_cfg_common_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pdsch_max_num_repeat_cemode_a_r13_present, 1)); HANDLE_CODE(bref.pack(pdsch_max_num_repeat_cemode_b_r13_present, 1)); if (pdsch_max_num_repeat_cemode_a_r13_present) { HANDLE_CODE(pack_enum(bref, pdsch_max_num_repeat_cemode_a_r13)); } if (pdsch_max_num_repeat_cemode_b_r13_present) { HANDLE_CODE(pack_enum(bref, pdsch_max_num_repeat_cemode_b_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_common_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pdsch_max_num_repeat_cemode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(pdsch_max_num_repeat_cemode_b_r13_present, 1)); if (pdsch_max_num_repeat_cemode_a_r13_present) { HANDLE_CODE(unpack_enum(pdsch_max_num_repeat_cemode_a_r13, bref)); } if (pdsch_max_num_repeat_cemode_b_r13_present) { HANDLE_CODE(unpack_enum(pdsch_max_num_repeat_cemode_b_r13, bref)); } return SRSASN_SUCCESS; } void pdsch_cfg_common_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (pdsch_max_num_repeat_cemode_a_r13_present) { j.write_str("pdsch-maxNumRepetitionCEmodeA-r13", pdsch_max_num_repeat_cemode_a_r13.to_string()); } if (pdsch_max_num_repeat_cemode_b_r13_present) { j.write_str("pdsch-maxNumRepetitionCEmodeB-r13", pdsch_max_num_repeat_cemode_b_r13.to_string()); } j.end_obj(); } // PLMN-Info-r15 ::= SEQUENCE SRSASN_CODE plmn_info_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(upper_layer_ind_r15_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE plmn_info_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(upper_layer_ind_r15_present, 1)); return SRSASN_SUCCESS; } void plmn_info_r15_s::to_json(json_writer& j) const { j.start_obj(); if (upper_layer_ind_r15_present) { j.write_str("upperLayerIndication-r15", "true"); } j.end_obj(); } // PRACH-Config-v1430 ::= SEQUENCE SRSASN_CODE prach_cfg_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, root_seq_idx_high_speed_r14, (uint16_t)0, (uint16_t)837)); HANDLE_CODE(pack_unalign_integer(bref, zero_correlation_zone_cfg_high_speed_r14, (uint8_t)0, (uint8_t)12)); HANDLE_CODE(pack_unalign_integer(bref, prach_cfg_idx_high_speed_r14, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(pack_unalign_integer(bref, prach_freq_offset_high_speed_r14, (uint8_t)0, (uint8_t)94)); return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(root_seq_idx_high_speed_r14, bref, (uint16_t)0, (uint16_t)837)); HANDLE_CODE(unpack_unalign_integer(zero_correlation_zone_cfg_high_speed_r14, bref, (uint8_t)0, (uint8_t)12)); HANDLE_CODE(unpack_unalign_integer(prach_cfg_idx_high_speed_r14, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(unpack_unalign_integer(prach_freq_offset_high_speed_r14, bref, (uint8_t)0, (uint8_t)94)); return SRSASN_SUCCESS; } void prach_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rootSequenceIndexHighSpeed-r14", root_seq_idx_high_speed_r14); j.write_int("zeroCorrelationZoneConfigHighSpeed-r14", zero_correlation_zone_cfg_high_speed_r14); j.write_int("prach-ConfigIndexHighSpeed-r14", prach_cfg_idx_high_speed_r14); j.write_int("prach-FreqOffsetHighSpeed-r14", prach_freq_offset_high_speed_r14); j.end_obj(); } // PRACH-ConfigSIB ::= SEQUENCE SRSASN_CODE prach_cfg_sib_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, root_seq_idx, (uint16_t)0, (uint16_t)837)); HANDLE_CODE(prach_cfg_info.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_sib_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(root_seq_idx, bref, (uint16_t)0, (uint16_t)837)); HANDLE_CODE(prach_cfg_info.unpack(bref)); return SRSASN_SUCCESS; } void prach_cfg_sib_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rootSequenceIndex", root_seq_idx); j.write_fieldname("prach-ConfigInfo"); prach_cfg_info.to_json(j); j.end_obj(); } // PRACH-ConfigSIB-v1310 ::= SEQUENCE SRSASN_CODE prach_cfg_sib_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mpdcch_start_sf_css_ra_r13_present, 1)); HANDLE_CODE(bref.pack(prach_hop_offset_r13_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, rsrp_thress_prach_info_list_r13, 1, 3, UnalignedIntegerPacker(0, 97))); if (mpdcch_start_sf_css_ra_r13_present) { HANDLE_CODE(mpdcch_start_sf_css_ra_r13.pack(bref)); } if (prach_hop_offset_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, prach_hop_offset_r13, (uint8_t)0, (uint8_t)94)); } HANDLE_CODE(pack_dyn_seq_of(bref, prach_params_list_ce_r13, 1, 4)); return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_sib_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mpdcch_start_sf_css_ra_r13_present, 1)); HANDLE_CODE(bref.unpack(prach_hop_offset_r13_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(rsrp_thress_prach_info_list_r13, bref, 1, 3, UnalignedIntegerPacker(0, 97))); if (mpdcch_start_sf_css_ra_r13_present) { HANDLE_CODE(mpdcch_start_sf_css_ra_r13.unpack(bref)); } if (prach_hop_offset_r13_present) { HANDLE_CODE(unpack_unalign_integer(prach_hop_offset_r13, bref, (uint8_t)0, (uint8_t)94)); } HANDLE_CODE(unpack_dyn_seq_of(prach_params_list_ce_r13, bref, 1, 4)); return SRSASN_SUCCESS; } void prach_cfg_sib_v1310_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("rsrp-ThresholdsPrachInfoList-r13"); for (uint32_t i1 = 0; i1 < rsrp_thress_prach_info_list_r13.size(); ++i1) { j.write_int(rsrp_thress_prach_info_list_r13[i1]); } j.end_array(); if (mpdcch_start_sf_css_ra_r13_present) { j.write_fieldname("mpdcch-startSF-CSS-RA-r13"); mpdcch_start_sf_css_ra_r13.to_json(j); } if (prach_hop_offset_r13_present) { j.write_int("prach-HoppingOffset-r13", prach_hop_offset_r13); } j.start_array("prach-ParametersListCE-r13"); for (uint32_t i1 = 0; i1 < prach_params_list_ce_r13.size(); ++i1) { prach_params_list_ce_r13[i1].to_json(j); } j.end_array(); j.end_obj(); } void prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::destroy_() {} void prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::set(types::options e) { destroy_(); type_ = e; } prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::mpdcch_start_sf_css_ra_r13_c_( const prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_& other) { type_ = other.type(); switch (type_) { case types::fdd_r13: c.init(other.c.get()); break; case types::tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); } } prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_& prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_:: operator=(const prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd_r13: c.set(other.c.get()); break; case types::tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); } return *this; } void prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd_r13: j.write_str("fdd-r13", c.get().to_string()); break; case types::tdd_r13: j.write_str("tdd-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); } j.end_obj(); } SRSASN_CODE prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PRACH-ConfigSIB-v1530 ::= SEQUENCE SRSASN_CODE prach_cfg_sib_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, edt_prach_params_list_ce_r15, 1, 4)); return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_sib_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(edt_prach_params_list_ce_r15, bref, 1, 4)); return SRSASN_SUCCESS; } void prach_cfg_sib_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("edt-PRACH-ParametersListCE-r15"); for (uint32_t i1 = 0; i1 < edt_prach_params_list_ce_r15.size(); ++i1) { edt_prach_params_list_ce_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } // PUCCH-ConfigCommon ::= SEQUENCE SRSASN_CODE pucch_cfg_common_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, delta_pucch_shift)); HANDLE_CODE(pack_unalign_integer(bref, n_rb_cqi, (uint8_t)0, (uint8_t)98)); HANDLE_CODE(pack_unalign_integer(bref, n_cs_an, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, n1_pucch_an, (uint16_t)0, (uint16_t)2047)); return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_common_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(delta_pucch_shift, bref)); HANDLE_CODE(unpack_unalign_integer(n_rb_cqi, bref, (uint8_t)0, (uint8_t)98)); HANDLE_CODE(unpack_unalign_integer(n_cs_an, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(n1_pucch_an, bref, (uint16_t)0, (uint16_t)2047)); return SRSASN_SUCCESS; } void pucch_cfg_common_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("deltaPUCCH-Shift", delta_pucch_shift.to_string()); j.write_int("nRB-CQI", n_rb_cqi); j.write_int("nCS-AN", n_cs_an); j.write_int("n1PUCCH-AN", n1_pucch_an); j.end_obj(); } // PUCCH-ConfigCommon-v1310 ::= SEQUENCE SRSASN_CODE pucch_cfg_common_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(n1_pucch_an_info_list_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_num_repeat_ce_msg4_level0_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_num_repeat_ce_msg4_level1_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_num_repeat_ce_msg4_level2_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_num_repeat_ce_msg4_level3_r13_present, 1)); if (n1_pucch_an_info_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, n1_pucch_an_info_list_r13, 1, 4, UnalignedIntegerPacker(0, 2047))); } if (pucch_num_repeat_ce_msg4_level0_r13_present) { HANDLE_CODE(pack_enum(bref, pucch_num_repeat_ce_msg4_level0_r13)); } if (pucch_num_repeat_ce_msg4_level1_r13_present) { HANDLE_CODE(pack_enum(bref, pucch_num_repeat_ce_msg4_level1_r13)); } if (pucch_num_repeat_ce_msg4_level2_r13_present) { HANDLE_CODE(pack_enum(bref, pucch_num_repeat_ce_msg4_level2_r13)); } if (pucch_num_repeat_ce_msg4_level3_r13_present) { HANDLE_CODE(pack_enum(bref, pucch_num_repeat_ce_msg4_level3_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_common_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(n1_pucch_an_info_list_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_num_repeat_ce_msg4_level0_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_num_repeat_ce_msg4_level1_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_num_repeat_ce_msg4_level2_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_num_repeat_ce_msg4_level3_r13_present, 1)); if (n1_pucch_an_info_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(n1_pucch_an_info_list_r13, bref, 1, 4, UnalignedIntegerPacker(0, 2047))); } if (pucch_num_repeat_ce_msg4_level0_r13_present) { HANDLE_CODE(unpack_enum(pucch_num_repeat_ce_msg4_level0_r13, bref)); } if (pucch_num_repeat_ce_msg4_level1_r13_present) { HANDLE_CODE(unpack_enum(pucch_num_repeat_ce_msg4_level1_r13, bref)); } if (pucch_num_repeat_ce_msg4_level2_r13_present) { HANDLE_CODE(unpack_enum(pucch_num_repeat_ce_msg4_level2_r13, bref)); } if (pucch_num_repeat_ce_msg4_level3_r13_present) { HANDLE_CODE(unpack_enum(pucch_num_repeat_ce_msg4_level3_r13, bref)); } return SRSASN_SUCCESS; } void pucch_cfg_common_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (n1_pucch_an_info_list_r13_present) { j.start_array("n1PUCCH-AN-InfoList-r13"); for (uint32_t i1 = 0; i1 < n1_pucch_an_info_list_r13.size(); ++i1) { j.write_int(n1_pucch_an_info_list_r13[i1]); } j.end_array(); } if (pucch_num_repeat_ce_msg4_level0_r13_present) { j.write_str("pucch-NumRepetitionCE-Msg4-Level0-r13", pucch_num_repeat_ce_msg4_level0_r13.to_string()); } if (pucch_num_repeat_ce_msg4_level1_r13_present) { j.write_str("pucch-NumRepetitionCE-Msg4-Level1-r13", pucch_num_repeat_ce_msg4_level1_r13.to_string()); } if (pucch_num_repeat_ce_msg4_level2_r13_present) { j.write_str("pucch-NumRepetitionCE-Msg4-Level2-r13", pucch_num_repeat_ce_msg4_level2_r13.to_string()); } if (pucch_num_repeat_ce_msg4_level3_r13_present) { j.write_str("pucch-NumRepetitionCE-Msg4-Level3-r13", pucch_num_repeat_ce_msg4_level3_r13.to_string()); } j.end_obj(); } // PUCCH-ConfigCommon-v1430 ::= SEQUENCE SRSASN_CODE pucch_cfg_common_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pucch_num_repeat_ce_msg4_level3_r14_present, 1)); if (pucch_num_repeat_ce_msg4_level3_r14_present) { HANDLE_CODE(pack_enum(bref, pucch_num_repeat_ce_msg4_level3_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_common_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pucch_num_repeat_ce_msg4_level3_r14_present, 1)); if (pucch_num_repeat_ce_msg4_level3_r14_present) { HANDLE_CODE(unpack_enum(pucch_num_repeat_ce_msg4_level3_r14, bref)); } return SRSASN_SUCCESS; } void pucch_cfg_common_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (pucch_num_repeat_ce_msg4_level3_r14_present) { j.write_str("pucch-NumRepetitionCE-Msg4-Level3-r14", pucch_num_repeat_ce_msg4_level3_r14.to_string()); } j.end_obj(); } // PUSCH-ConfigCommon ::= SEQUENCE SRSASN_CODE pusch_cfg_common_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pusch_cfg_basic.n_sb, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_enum(bref, pusch_cfg_basic.hop_mode)); HANDLE_CODE(pack_unalign_integer(bref, pusch_cfg_basic.pusch_hop_offset, (uint8_t)0, (uint8_t)98)); HANDLE_CODE(bref.pack(pusch_cfg_basic.enable64_qam, 1)); HANDLE_CODE(ul_ref_sigs_pusch.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_common_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pusch_cfg_basic.n_sb, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_enum(pusch_cfg_basic.hop_mode, bref)); HANDLE_CODE(unpack_unalign_integer(pusch_cfg_basic.pusch_hop_offset, bref, (uint8_t)0, (uint8_t)98)); HANDLE_CODE(bref.unpack(pusch_cfg_basic.enable64_qam, 1)); HANDLE_CODE(ul_ref_sigs_pusch.unpack(bref)); return SRSASN_SUCCESS; } void pusch_cfg_common_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("pusch-ConfigBasic"); j.start_obj(); j.write_int("n-SB", pusch_cfg_basic.n_sb); j.write_str("hoppingMode", pusch_cfg_basic.hop_mode.to_string()); j.write_int("pusch-HoppingOffset", pusch_cfg_basic.pusch_hop_offset); j.write_bool("enable64QAM", pusch_cfg_basic.enable64_qam); j.end_obj(); j.write_fieldname("ul-ReferenceSignalsPUSCH"); ul_ref_sigs_pusch.to_json(j); j.end_obj(); } // PUSCH-ConfigCommon-v1270 ::= SEQUENCE SRSASN_CODE pusch_cfg_common_v1270_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_common_v1270_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void pusch_cfg_common_v1270_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("enable64QAM-v1270", "true"); j.end_obj(); } // PUSCH-ConfigCommon-v1310 ::= SEQUENCE SRSASN_CODE pusch_cfg_common_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pusch_max_num_repeat_cemode_a_r13_present, 1)); HANDLE_CODE(bref.pack(pusch_max_num_repeat_cemode_b_r13_present, 1)); HANDLE_CODE(bref.pack(pusch_hop_offset_v1310_present, 1)); if (pusch_max_num_repeat_cemode_a_r13_present) { HANDLE_CODE(pack_enum(bref, pusch_max_num_repeat_cemode_a_r13)); } if (pusch_max_num_repeat_cemode_b_r13_present) { HANDLE_CODE(pack_enum(bref, pusch_max_num_repeat_cemode_b_r13)); } if (pusch_hop_offset_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, pusch_hop_offset_v1310, (uint8_t)1, (uint8_t)16)); } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_common_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pusch_max_num_repeat_cemode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(pusch_max_num_repeat_cemode_b_r13_present, 1)); HANDLE_CODE(bref.unpack(pusch_hop_offset_v1310_present, 1)); if (pusch_max_num_repeat_cemode_a_r13_present) { HANDLE_CODE(unpack_enum(pusch_max_num_repeat_cemode_a_r13, bref)); } if (pusch_max_num_repeat_cemode_b_r13_present) { HANDLE_CODE(unpack_enum(pusch_max_num_repeat_cemode_b_r13, bref)); } if (pusch_hop_offset_v1310_present) { HANDLE_CODE(unpack_unalign_integer(pusch_hop_offset_v1310, bref, (uint8_t)1, (uint8_t)16)); } return SRSASN_SUCCESS; } void pusch_cfg_common_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (pusch_max_num_repeat_cemode_a_r13_present) { j.write_str("pusch-maxNumRepetitionCEmodeA-r13", pusch_max_num_repeat_cemode_a_r13.to_string()); } if (pusch_max_num_repeat_cemode_b_r13_present) { j.write_str("pusch-maxNumRepetitionCEmodeB-r13", pusch_max_num_repeat_cemode_b_r13.to_string()); } if (pusch_hop_offset_v1310_present) { j.write_int("pusch-HoppingOffset-v1310", pusch_hop_offset_v1310); } j.end_obj(); } // RACH-ConfigCommon ::= SEQUENCE SRSASN_CODE rach_cfg_common_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(preamb_info.preambs_group_a_cfg_present, 1)); HANDLE_CODE(pack_enum(bref, preamb_info.nof_ra_preambs)); if (preamb_info.preambs_group_a_cfg_present) { bref.pack(preamb_info.preambs_group_a_cfg.ext, 1); HANDLE_CODE(pack_enum(bref, preamb_info.preambs_group_a_cfg.size_of_ra_preambs_group_a)); HANDLE_CODE(pack_enum(bref, preamb_info.preambs_group_a_cfg.msg_size_group_a)); HANDLE_CODE(pack_enum(bref, preamb_info.preambs_group_a_cfg.msg_pwr_offset_group_b)); } HANDLE_CODE(pwr_ramp_params.pack(bref)); HANDLE_CODE(pack_enum(bref, ra_supervision_info.preamb_trans_max)); HANDLE_CODE(pack_enum(bref, ra_supervision_info.ra_resp_win_size)); HANDLE_CODE(pack_enum(bref, ra_supervision_info.mac_contention_resolution_timer)); HANDLE_CODE(pack_unalign_integer(bref, max_harq_msg3_tx, (uint8_t)1, (uint8_t)8)); if (ext) { ext_groups_header group_flags(2); group_flags[0] |= preamb_trans_max_ce_r13_present; rrc_asn1_warn_assert(rach_ce_level_info_list_r13_present != (rach_ce_level_info_list_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= rach_ce_level_info_list_r13_present; group_flags[1] |= edt_small_tbs_subset_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(preamb_trans_max_ce_r13_present, 1)); HANDLE_CODE(bref.pack(rach_ce_level_info_list_r13_present, 1)); if (preamb_trans_max_ce_r13_present) { HANDLE_CODE(pack_enum(bref, preamb_trans_max_ce_r13)); } if (rach_ce_level_info_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *rach_ce_level_info_list_r13, 1, 4)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(edt_small_tbs_subset_r15_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE rach_cfg_common_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(preamb_info.preambs_group_a_cfg_present, 1)); HANDLE_CODE(unpack_enum(preamb_info.nof_ra_preambs, bref)); if (preamb_info.preambs_group_a_cfg_present) { bref.unpack(preamb_info.preambs_group_a_cfg.ext, 1); HANDLE_CODE(unpack_enum(preamb_info.preambs_group_a_cfg.size_of_ra_preambs_group_a, bref)); HANDLE_CODE(unpack_enum(preamb_info.preambs_group_a_cfg.msg_size_group_a, bref)); HANDLE_CODE(unpack_enum(preamb_info.preambs_group_a_cfg.msg_pwr_offset_group_b, bref)); } HANDLE_CODE(pwr_ramp_params.unpack(bref)); HANDLE_CODE(unpack_enum(ra_supervision_info.preamb_trans_max, bref)); HANDLE_CODE(unpack_enum(ra_supervision_info.ra_resp_win_size, bref)); HANDLE_CODE(unpack_enum(ra_supervision_info.mac_contention_resolution_timer, bref)); HANDLE_CODE(unpack_unalign_integer(max_harq_msg3_tx, bref, (uint8_t)1, (uint8_t)8)); if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(preamb_trans_max_ce_r13_present, 1)); HANDLE_CODE(bref.unpack(rach_ce_level_info_list_r13_present, 1)); if (preamb_trans_max_ce_r13_present) { HANDLE_CODE(unpack_enum(preamb_trans_max_ce_r13, bref)); } if (rach_ce_level_info_list_r13_present) { rach_ce_level_info_list_r13 = make_copy_ptr(rach_ce_level_info_list_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*rach_ce_level_info_list_r13, bref, 1, 4)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(edt_small_tbs_subset_r15_present, 1)); } } return SRSASN_SUCCESS; } void rach_cfg_common_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("preambleInfo"); j.start_obj(); j.write_str("numberOfRA-Preambles", preamb_info.nof_ra_preambs.to_string()); if (preamb_info.preambs_group_a_cfg_present) { j.write_fieldname("preamblesGroupAConfig"); j.start_obj(); j.write_str("sizeOfRA-PreamblesGroupA", preamb_info.preambs_group_a_cfg.size_of_ra_preambs_group_a.to_string()); j.write_str("messageSizeGroupA", preamb_info.preambs_group_a_cfg.msg_size_group_a.to_string()); j.write_str("messagePowerOffsetGroupB", preamb_info.preambs_group_a_cfg.msg_pwr_offset_group_b.to_string()); j.end_obj(); } j.end_obj(); j.write_fieldname("powerRampingParameters"); pwr_ramp_params.to_json(j); j.write_fieldname("ra-SupervisionInfo"); j.start_obj(); j.write_str("preambleTransMax", ra_supervision_info.preamb_trans_max.to_string()); j.write_str("ra-ResponseWindowSize", ra_supervision_info.ra_resp_win_size.to_string()); j.write_str("mac-ContentionResolutionTimer", ra_supervision_info.mac_contention_resolution_timer.to_string()); j.end_obj(); j.write_int("maxHARQ-Msg3Tx", max_harq_msg3_tx); if (ext) { if (preamb_trans_max_ce_r13_present) { j.write_str("preambleTransMax-CE-r13", preamb_trans_max_ce_r13.to_string()); } rrc_asn1_warn_assert(rach_ce_level_info_list_r13_present != (rach_ce_level_info_list_r13.get() != NULL), __FILE__, __LINE__); if (rach_ce_level_info_list_r13_present) { j.start_array("rach-CE-LevelInfoList-r13"); for (uint32_t i1 = 0; i1 < rach_ce_level_info_list_r13->size(); ++i1) { ((*rach_ce_level_info_list_r13)[i1]).to_json(j); } j.end_array(); } if (edt_small_tbs_subset_r15_present) { j.write_str("edt-SmallTBS-Subset-r15", "true"); } } j.end_obj(); } // RACH-ConfigCommon-v1250 ::= SEQUENCE SRSASN_CODE rach_cfg_common_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tx_fail_params_r12.conn_est_fail_offset_r12_present, 1)); HANDLE_CODE(pack_enum(bref, tx_fail_params_r12.conn_est_fail_count_r12)); HANDLE_CODE(pack_enum(bref, tx_fail_params_r12.conn_est_fail_offset_validity_r12)); if (tx_fail_params_r12.conn_est_fail_offset_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, tx_fail_params_r12.conn_est_fail_offset_r12, (uint8_t)0, (uint8_t)15)); } return SRSASN_SUCCESS; } SRSASN_CODE rach_cfg_common_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tx_fail_params_r12.conn_est_fail_offset_r12_present, 1)); HANDLE_CODE(unpack_enum(tx_fail_params_r12.conn_est_fail_count_r12, bref)); HANDLE_CODE(unpack_enum(tx_fail_params_r12.conn_est_fail_offset_validity_r12, bref)); if (tx_fail_params_r12.conn_est_fail_offset_r12_present) { HANDLE_CODE(unpack_unalign_integer(tx_fail_params_r12.conn_est_fail_offset_r12, bref, (uint8_t)0, (uint8_t)15)); } return SRSASN_SUCCESS; } void rach_cfg_common_v1250_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("txFailParams-r12"); j.start_obj(); j.write_str("connEstFailCount-r12", tx_fail_params_r12.conn_est_fail_count_r12.to_string()); j.write_str("connEstFailOffsetValidity-r12", tx_fail_params_r12.conn_est_fail_offset_validity_r12.to_string()); if (tx_fail_params_r12.conn_est_fail_offset_r12_present) { j.write_int("connEstFailOffset-r12", tx_fail_params_r12.conn_est_fail_offset_r12); } j.end_obj(); j.end_obj(); } // RSS-Config-r15 ::= SEQUENCE SRSASN_CODE rss_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, dur_r15)); HANDLE_CODE(pack_unalign_integer(bref, freq_location_r15, (uint8_t)0, (uint8_t)98)); HANDLE_CODE(pack_enum(bref, periodicity_r15)); HANDLE_CODE(pack_enum(bref, pwr_boost_r15)); HANDLE_CODE(pack_unalign_integer(bref, time_offset_r15, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } SRSASN_CODE rss_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(dur_r15, bref)); HANDLE_CODE(unpack_unalign_integer(freq_location_r15, bref, (uint8_t)0, (uint8_t)98)); HANDLE_CODE(unpack_enum(periodicity_r15, bref)); HANDLE_CODE(unpack_enum(pwr_boost_r15, bref)); HANDLE_CODE(unpack_unalign_integer(time_offset_r15, bref, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } void rss_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("duration-r15", dur_r15.to_string()); j.write_int("freqLocation-r15", freq_location_r15); j.write_str("periodicity-r15", periodicity_r15.to_string()); j.write_str("powerBoost-r15", pwr_boost_r15.to_string()); j.write_int("timeOffset-r15", time_offset_r15); j.end_obj(); } // ReferenceTime-r15 ::= SEQUENCE SRSASN_CODE ref_time_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, ref_days_r15, (uint32_t)0, (uint32_t)72999)); HANDLE_CODE(pack_unalign_integer(bref, ref_seconds_r15, (uint32_t)0, (uint32_t)86399)); HANDLE_CODE(pack_unalign_integer(bref, ref_milli_seconds_r15, (uint16_t)0, (uint16_t)999)); HANDLE_CODE(pack_unalign_integer(bref, ref_quarter_micro_seconds_r15, (uint16_t)0, (uint16_t)3999)); return SRSASN_SUCCESS; } SRSASN_CODE ref_time_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(ref_days_r15, bref, (uint32_t)0, (uint32_t)72999)); HANDLE_CODE(unpack_unalign_integer(ref_seconds_r15, bref, (uint32_t)0, (uint32_t)86399)); HANDLE_CODE(unpack_unalign_integer(ref_milli_seconds_r15, bref, (uint16_t)0, (uint16_t)999)); HANDLE_CODE(unpack_unalign_integer(ref_quarter_micro_seconds_r15, bref, (uint16_t)0, (uint16_t)3999)); return SRSASN_SUCCESS; } void ref_time_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("refDays-r15", ref_days_r15); j.write_int("refSeconds-r15", ref_seconds_r15); j.write_int("refMilliSeconds-r15", ref_milli_seconds_r15); j.write_int("refQuarterMicroSeconds-r15", ref_quarter_micro_seconds_r15); j.end_obj(); } // ReselectionInfoRelay-r13 ::= SEQUENCE SRSASN_CODE resel_info_relay_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(min_hyst_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, q_rx_lev_min_r13, (int8_t)-70, (int8_t)-22)); HANDLE_CODE(pack_enum(bref, filt_coef_r13)); if (min_hyst_r13_present) { HANDLE_CODE(pack_enum(bref, min_hyst_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE resel_info_relay_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(min_hyst_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(q_rx_lev_min_r13, bref, (int8_t)-70, (int8_t)-22)); HANDLE_CODE(unpack_enum(filt_coef_r13, bref)); if (min_hyst_r13_present) { HANDLE_CODE(unpack_enum(min_hyst_r13, bref)); } return SRSASN_SUCCESS; } void resel_info_relay_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("q-RxLevMin-r13", q_rx_lev_min_r13); j.write_str("filterCoefficient-r13", filt_coef_r13.to_string()); if (min_hyst_r13_present) { j.write_str("minHyst-r13", min_hyst_r13.to_string()); } j.end_obj(); } // SIB8-PerPLMN-r11 ::= SEQUENCE SRSASN_CODE sib8_per_plmn_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, plmn_id_r11, (uint8_t)1, (uint8_t)6)); HANDLE_CODE(params_cdma2000_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sib8_per_plmn_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(plmn_id_r11, bref, (uint8_t)1, (uint8_t)6)); HANDLE_CODE(params_cdma2000_r11.unpack(bref)); return SRSASN_SUCCESS; } void sib8_per_plmn_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("plmn-Identity-r11", plmn_id_r11); j.write_fieldname("parametersCDMA2000-r11"); params_cdma2000_r11.to_json(j); j.end_obj(); } void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::set(types::options e) { type_ = e; } void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::explicit_value: j.write_fieldname("explicitValue"); c.to_json(j); break; case types::default_value: break; default: log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); } j.end_obj(); } SRSASN_CODE sib8_per_plmn_r11_s::params_cdma2000_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::explicit_value: HANDLE_CODE(c.pack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib8_per_plmn_r11_s::params_cdma2000_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::explicit_value: HANDLE_CODE(c.unpack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE SRSASN_CODE sl_cbr_common_tx_cfg_list_r14_s::pack(bit_ref& bref) const { HANDLE_CODE( pack_dyn_seq_of(bref, cbr_range_common_cfg_list_r14, 1, 4, SeqOfPacker >(1, 16, UnalignedIntegerPacker(0, 100)))); HANDLE_CODE(pack_dyn_seq_of(bref, sl_cbr_pssch_tx_cfg_list_r14, 1, 64)); return SRSASN_SUCCESS; } SRSASN_CODE sl_cbr_common_tx_cfg_list_r14_s::unpack(bit_ref& bref) { HANDLE_CODE( unpack_dyn_seq_of(cbr_range_common_cfg_list_r14, bref, 1, 4, SeqOfPacker >(1, 16, UnalignedIntegerPacker(0, 100)))); HANDLE_CODE(unpack_dyn_seq_of(sl_cbr_pssch_tx_cfg_list_r14, bref, 1, 64)); return SRSASN_SUCCESS; } void sl_cbr_common_tx_cfg_list_r14_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("cbr-RangeCommonConfigList-r14"); for (uint32_t i1 = 0; i1 < cbr_range_common_cfg_list_r14.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < cbr_range_common_cfg_list_r14[i1].size(); ++i2) { j.write_int(cbr_range_common_cfg_list_r14[i1][i2]); } j.end_array(); } j.end_array(); j.start_array("sl-CBR-PSSCH-TxConfigList-r14"); for (uint32_t i1 = 0; i1 < sl_cbr_pssch_tx_cfg_list_r14.size(); ++i1) { sl_cbr_pssch_tx_cfg_list_r14[i1].to_json(j); } j.end_array(); j.end_obj(); } // SL-CarrierFreqInfo-r12 ::= SEQUENCE SRSASN_CODE sl_carrier_freq_info_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(plmn_id_list_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); if (plmn_id_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r12, 1, 6)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_carrier_freq_info_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(plmn_id_list_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); if (plmn_id_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r12, bref, 1, 6)); } return SRSASN_SUCCESS; } void sl_carrier_freq_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r12", carrier_freq_r12); if (plmn_id_list_r12_present) { j.start_array("plmn-IdentityList-r12"); for (uint32_t i1 = 0; i1 < plmn_id_list_r12.size(); ++i1) { plmn_id_list_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SL-CarrierFreqInfo-v1310 ::= SEQUENCE SRSASN_CODE sl_carrier_freq_info_v1310_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(disc_res_non_ps_r13_present, 1)); HANDLE_CODE(bref.pack(disc_res_ps_r13_present, 1)); HANDLE_CODE(bref.pack(disc_cfg_other_r13_present, 1)); if (disc_res_non_ps_r13_present) { HANDLE_CODE(disc_res_non_ps_r13.pack(bref)); } if (disc_res_ps_r13_present) { HANDLE_CODE(disc_res_ps_r13.pack(bref)); } if (disc_cfg_other_r13_present) { HANDLE_CODE(disc_cfg_other_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_carrier_freq_info_v1310_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(disc_res_non_ps_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_res_ps_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_cfg_other_r13_present, 1)); if (disc_res_non_ps_r13_present) { HANDLE_CODE(disc_res_non_ps_r13.unpack(bref)); } if (disc_res_ps_r13_present) { HANDLE_CODE(disc_res_ps_r13.unpack(bref)); } if (disc_cfg_other_r13_present) { HANDLE_CODE(disc_cfg_other_r13.unpack(bref)); } return SRSASN_SUCCESS; } void sl_carrier_freq_info_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (disc_res_non_ps_r13_present) { j.write_fieldname("discResourcesNonPS-r13"); disc_res_non_ps_r13.to_json(j); } if (disc_res_ps_r13_present) { j.write_fieldname("discResourcesPS-r13"); disc_res_ps_r13.to_json(j); } if (disc_cfg_other_r13_present) { j.write_fieldname("discConfigOther-r13"); disc_cfg_other_r13.to_json(j); } j.end_obj(); } // SL-CommResourcePool-r12 ::= SEQUENCE SRSASN_CODE sl_comm_res_pool_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ue_sel_res_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(rx_params_ncell_r12_present, 1)); HANDLE_CODE(bref.pack(tx_params_r12_present, 1)); HANDLE_CODE(pack_enum(bref, sc_cp_len_r12)); HANDLE_CODE(pack_enum(bref, sc_period_r12)); HANDLE_CODE(sc_tf_res_cfg_r12.pack(bref)); HANDLE_CODE(pack_enum(bref, data_cp_len_r12)); HANDLE_CODE(data_hop_cfg_r12.pack(bref)); if (ue_sel_res_cfg_r12_present) { HANDLE_CODE(bref.pack(ue_sel_res_cfg_r12.trpt_subset_r12_present, 1)); HANDLE_CODE(ue_sel_res_cfg_r12.data_tf_res_cfg_r12.pack(bref)); if (ue_sel_res_cfg_r12.trpt_subset_r12_present) { HANDLE_CODE(ue_sel_res_cfg_r12.trpt_subset_r12.pack(bref)); } } if (rx_params_ncell_r12_present) { HANDLE_CODE(bref.pack(rx_params_ncell_r12.tdd_cfg_r12_present, 1)); if (rx_params_ncell_r12.tdd_cfg_r12_present) { HANDLE_CODE(rx_params_ncell_r12.tdd_cfg_r12.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, rx_params_ncell_r12.sync_cfg_idx_r12, (uint8_t)0, (uint8_t)15)); } if (tx_params_r12_present) { HANDLE_CODE(tx_params_r12.sc_tx_params_r12.pack(bref)); HANDLE_CODE(tx_params_r12.data_tx_params_r12.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(prio_list_r13_present != (prio_list_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= prio_list_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(prio_list_r13_present, 1)); if (prio_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *prio_list_r13, 1, 8, UnalignedIntegerPacker(1, 8))); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_res_pool_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ue_sel_res_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(rx_params_ncell_r12_present, 1)); HANDLE_CODE(bref.unpack(tx_params_r12_present, 1)); HANDLE_CODE(unpack_enum(sc_cp_len_r12, bref)); HANDLE_CODE(unpack_enum(sc_period_r12, bref)); HANDLE_CODE(sc_tf_res_cfg_r12.unpack(bref)); HANDLE_CODE(unpack_enum(data_cp_len_r12, bref)); HANDLE_CODE(data_hop_cfg_r12.unpack(bref)); if (ue_sel_res_cfg_r12_present) { HANDLE_CODE(bref.unpack(ue_sel_res_cfg_r12.trpt_subset_r12_present, 1)); HANDLE_CODE(ue_sel_res_cfg_r12.data_tf_res_cfg_r12.unpack(bref)); if (ue_sel_res_cfg_r12.trpt_subset_r12_present) { HANDLE_CODE(ue_sel_res_cfg_r12.trpt_subset_r12.unpack(bref)); } } if (rx_params_ncell_r12_present) { HANDLE_CODE(bref.unpack(rx_params_ncell_r12.tdd_cfg_r12_present, 1)); if (rx_params_ncell_r12.tdd_cfg_r12_present) { HANDLE_CODE(rx_params_ncell_r12.tdd_cfg_r12.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(rx_params_ncell_r12.sync_cfg_idx_r12, bref, (uint8_t)0, (uint8_t)15)); } if (tx_params_r12_present) { HANDLE_CODE(tx_params_r12.sc_tx_params_r12.unpack(bref)); HANDLE_CODE(tx_params_r12.data_tx_params_r12.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(prio_list_r13_present, 1)); if (prio_list_r13_present) { prio_list_r13 = make_copy_ptr(sl_prio_list_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*prio_list_r13, bref, 1, 8, UnalignedIntegerPacker(1, 8))); } } } return SRSASN_SUCCESS; } void sl_comm_res_pool_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sc-CP-Len-r12", sc_cp_len_r12.to_string()); j.write_str("sc-Period-r12", sc_period_r12.to_string()); j.write_fieldname("sc-TF-ResourceConfig-r12"); sc_tf_res_cfg_r12.to_json(j); j.write_str("data-CP-Len-r12", data_cp_len_r12.to_string()); j.write_fieldname("dataHoppingConfig-r12"); data_hop_cfg_r12.to_json(j); if (ue_sel_res_cfg_r12_present) { j.write_fieldname("ue-SelectedResourceConfig-r12"); j.start_obj(); j.write_fieldname("data-TF-ResourceConfig-r12"); ue_sel_res_cfg_r12.data_tf_res_cfg_r12.to_json(j); if (ue_sel_res_cfg_r12.trpt_subset_r12_present) { j.write_str("trpt-Subset-r12", ue_sel_res_cfg_r12.trpt_subset_r12.to_string()); } j.end_obj(); } if (rx_params_ncell_r12_present) { j.write_fieldname("rxParametersNCell-r12"); j.start_obj(); if (rx_params_ncell_r12.tdd_cfg_r12_present) { j.write_fieldname("tdd-Config-r12"); rx_params_ncell_r12.tdd_cfg_r12.to_json(j); } j.write_int("syncConfigIndex-r12", rx_params_ncell_r12.sync_cfg_idx_r12); j.end_obj(); } if (tx_params_r12_present) { j.write_fieldname("txParameters-r12"); j.start_obj(); j.write_fieldname("sc-TxParameters-r12"); tx_params_r12.sc_tx_params_r12.to_json(j); j.write_fieldname("dataTxParameters-r12"); tx_params_r12.data_tx_params_r12.to_json(j); j.end_obj(); } if (ext) { rrc_asn1_warn_assert(prio_list_r13_present != (prio_list_r13.get() != NULL), __FILE__, __LINE__); if (prio_list_r13_present) { j.start_array("priorityList-r13"); for (uint32_t i1 = 0; i1 < prio_list_r13->size(); ++i1) { j.write_int(((*prio_list_r13)[i1])); } j.end_array(); } } j.end_obj(); } // SL-PPPP-TxConfigIndex-r15 ::= SEQUENCE SRSASN_CODE sl_pppp_tx_cfg_idx_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, prio_thres_r15, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pack_unalign_integer(bref, default_tx_cfg_idx_r15, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, cbr_cfg_idx_r15, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_dyn_seq_of(bref, tx_cfg_idx_list_r15, 1, 16, UnalignedIntegerPacker(0, 63))); HANDLE_CODE(pack_dyn_seq_of(bref, mcs_pssch_range_list_r15, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE sl_pppp_tx_cfg_idx_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(prio_thres_r15, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_unalign_integer(default_tx_cfg_idx_r15, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(cbr_cfg_idx_r15, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_dyn_seq_of(tx_cfg_idx_list_r15, bref, 1, 16, UnalignedIntegerPacker(0, 63))); HANDLE_CODE(unpack_dyn_seq_of(mcs_pssch_range_list_r15, bref, 1, 16)); return SRSASN_SUCCESS; } void sl_pppp_tx_cfg_idx_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("priorityThreshold-r15", prio_thres_r15); j.write_int("defaultTxConfigIndex-r15", default_tx_cfg_idx_r15); j.write_int("cbr-ConfigIndex-r15", cbr_cfg_idx_r15); j.start_array("tx-ConfigIndexList-r15"); for (uint32_t i1 = 0; i1 < tx_cfg_idx_list_r15.size(); ++i1) { j.write_int(tx_cfg_idx_list_r15[i1]); } j.end_array(); j.start_array("mcs-PSSCH-RangeList-r15"); for (uint32_t i1 = 0; i1 < mcs_pssch_range_list_r15.size(); ++i1) { mcs_pssch_range_list_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } // SoundingRS-UL-ConfigCommon ::= CHOICE void srs_ul_cfg_common_c::set(types::options e) { type_ = e; } void srs_ul_cfg_common_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("srs-BandwidthConfig", c.srs_bw_cfg.to_string()); j.write_str("srs-SubframeConfig", c.srs_sf_cfg.to_string()); j.write_bool("ackNackSRS-SimultaneousTransmission", c.ack_nack_srs_simul_tx); if (c.srs_max_up_pts_present) { j.write_str("srs-MaxUpPts", "true"); } j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_common_c"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_common_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.srs_max_up_pts_present, 1)); HANDLE_CODE(pack_enum(bref, c.srs_bw_cfg)); HANDLE_CODE(pack_enum(bref, c.srs_sf_cfg)); HANDLE_CODE(bref.pack(c.ack_nack_srs_simul_tx, 1)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_common_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_common_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.srs_max_up_pts_present, 1)); HANDLE_CODE(unpack_enum(c.srs_bw_cfg, bref)); HANDLE_CODE(unpack_enum(c.srs_sf_cfg, bref)); HANDLE_CODE(bref.unpack(c.ack_nack_srs_simul_tx, 1)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_common_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v10j0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (freq_band_info_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); } if (multi_band_info_list_v10j0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v10j0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (freq_band_info_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); } if (multi_band_info_list_v10j0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v10j0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_info_r10_present) { j.start_array("freqBandInfo-r10"); for (uint32_t i1 = 0; i1 < freq_band_info_r10.size(); ++i1) { freq_band_info_r10[i1].to_json(j); } j.end_array(); } if (multi_band_info_list_v10j0_present) { j.start_array("multiBandInfoList-v10j0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v10j0.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < multi_band_info_list_v10j0[i1].size(); ++i2) { multi_band_info_list_v10j0[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType1-v1250-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_sel_info_v1250_present, 1)); HANDLE_CODE(bref.pack(freq_band_ind_prio_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(cell_access_related_info_v1250.category0_allowed_r12_present, 1)); if (cell_sel_info_v1250_present) { HANDLE_CODE(cell_sel_info_v1250.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_sel_info_v1250_present, 1)); HANDLE_CODE(bref.unpack(freq_band_ind_prio_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(cell_access_related_info_v1250.category0_allowed_r12_present, 1)); if (cell_sel_info_v1250_present) { HANDLE_CODE(cell_sel_info_v1250.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("cellAccessRelatedInfo-v1250"); j.start_obj(); if (cell_access_related_info_v1250.category0_allowed_r12_present) { j.write_str("category0Allowed-r12", "true"); } j.end_obj(); if (cell_sel_info_v1250_present) { j.write_fieldname("cellSelectionInfo-v1250"); cell_sel_info_v1250.to_json(j); } if (freq_band_ind_prio_r12_present) { j.write_str("freqBandIndicatorPriority-r12", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE SRSASN_CODE sib_type2_v9e0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_carrier_freq_v9e0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ul_carrier_freq_v9e0_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_carrier_freq_v9e0, (uint32_t)65536, (uint32_t)262143)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type2_v9e0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_carrier_freq_v9e0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ul_carrier_freq_v9e0_present) { HANDLE_CODE(unpack_unalign_integer(ul_carrier_freq_v9e0, bref, (uint32_t)65536, (uint32_t)262143)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type2_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ul_carrier_freq_v9e0_present) { j.write_int("ul-CarrierFreq-v9e0", ul_carrier_freq_v9e0); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE SRSASN_CODE sib_type3_v10l0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (freq_band_info_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); } if (multi_band_info_list_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type3_v10l0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (freq_band_info_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); } if (multi_band_info_list_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } return SRSASN_SUCCESS; } void sib_type3_v10l0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_info_v10l0_present) { j.start_array("freqBandInfo-v10l0"); for (uint32_t i1 = 0; i1 < freq_band_info_v10l0.size(); ++i1) { freq_band_info_v10l0[i1].to_json(j); } j.end_array(); } if (multi_band_info_list_v10l0_present) { j.start_array("multiBandInfoList-v10l0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v10l0.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < multi_band_info_list_v10l0[i1].size(); ++i2) { multi_band_info_list_v10l0[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE SRSASN_CODE sib_type5_v9e0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v9e0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (inter_freq_carrier_freq_list_v9e0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v9e0, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type5_v9e0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v9e0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (inter_freq_carrier_freq_list_v9e0_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v9e0, bref, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type5_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (inter_freq_carrier_freq_list_v9e0_present) { j.start_array("interFreqCarrierFreqList-v9e0"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v9e0.size(); ++i1) { inter_freq_carrier_freq_list_v9e0[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UAC-BarringInfoSet-r15 ::= SEQUENCE SRSASN_CODE uac_barr_info_set_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, uac_barr_factor_r15)); HANDLE_CODE(pack_enum(bref, uac_barr_time_r15)); HANDLE_CODE(uac_barr_for_access_id_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE uac_barr_info_set_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(uac_barr_factor_r15, bref)); HANDLE_CODE(unpack_enum(uac_barr_time_r15, bref)); HANDLE_CODE(uac_barr_for_access_id_r15.unpack(bref)); return SRSASN_SUCCESS; } void uac_barr_info_set_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("uac-BarringFactor-r15", uac_barr_factor_r15.to_string()); j.write_str("uac-BarringTime-r15", uac_barr_time_r15.to_string()); j.write_str("uac-BarringForAccessIdentity-r15", uac_barr_for_access_id_r15.to_string()); j.end_obj(); } // UAC-BarringPerPLMN-r15 ::= SEQUENCE SRSASN_CODE uac_barr_per_plmn_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(uac_ac_barr_list_type_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, plmn_id_idx_r15, (uint8_t)1, (uint8_t)6)); if (uac_ac_barr_list_type_r15_present) { HANDLE_CODE(uac_ac_barr_list_type_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE uac_barr_per_plmn_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(uac_ac_barr_list_type_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(plmn_id_idx_r15, bref, (uint8_t)1, (uint8_t)6)); if (uac_ac_barr_list_type_r15_present) { HANDLE_CODE(uac_ac_barr_list_type_r15.unpack(bref)); } return SRSASN_SUCCESS; } void uac_barr_per_plmn_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("plmn-IdentityIndex-r15", plmn_id_idx_r15); if (uac_ac_barr_list_type_r15_present) { j.write_fieldname("uac-AC-BarringListType-r15"); uac_ac_barr_list_type_r15.to_json(j); } j.end_obj(); } void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::destroy_() { switch (type_) { case types::uac_implicit_ac_barr_list_r15: c.destroy(); break; case types::uac_explicit_ac_barr_list_r15: c.destroy(); break; default: break; } } void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::uac_implicit_ac_barr_list_r15: c.init(); break; case types::uac_explicit_ac_barr_list_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); } } uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::uac_ac_barr_list_type_r15_c_( const uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& other) { type_ = other.type(); switch (type_) { case types::uac_implicit_ac_barr_list_r15: c.init(other.c.get()); break; case types::uac_explicit_ac_barr_list_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); } } uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_:: operator=(const uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::uac_implicit_ac_barr_list_r15: c.set(other.c.get()); break; case types::uac_explicit_ac_barr_list_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); } return *this; } void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::uac_implicit_ac_barr_list_r15: j.start_array("uac-ImplicitAC-BarringList-r15"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_int(c.get()[i1]); } j.end_array(); break; case types::uac_explicit_ac_barr_list_r15: j.start_array("uac-ExplicitAC-BarringList-r15"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); } j.end_obj(); } SRSASN_CODE uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::uac_implicit_ac_barr_list_r15: HANDLE_CODE(pack_fixed_seq_of(bref, &(c.get())[0], c.get().size(), UnalignedIntegerPacker(1, 8))); break; case types::uac_explicit_ac_barr_list_r15: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 63)); break; default: log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::uac_implicit_ac_barr_list_r15: HANDLE_CODE(unpack_fixed_seq_of(&(c.get())[0], bref, c.get().size(), UnalignedIntegerPacker(1, 8))); break; case types::uac_explicit_ac_barr_list_r15: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 63)); break; default: log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UDT-RestrictingPerPLMN-r13 ::= SEQUENCE SRSASN_CODE udt_restricting_per_plmn_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(udt_restricting_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, plmn_id_idx_r13, (uint8_t)1, (uint8_t)6)); if (udt_restricting_r13_present) { HANDLE_CODE(udt_restricting_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE udt_restricting_per_plmn_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(udt_restricting_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(plmn_id_idx_r13, bref, (uint8_t)1, (uint8_t)6)); if (udt_restricting_r13_present) { HANDLE_CODE(udt_restricting_r13.unpack(bref)); } return SRSASN_SUCCESS; } void udt_restricting_per_plmn_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("plmn-IdentityIndex-r13", plmn_id_idx_r13); if (udt_restricting_r13_present) { j.write_fieldname("udt-Restricting-r13"); udt_restricting_r13.to_json(j); } j.end_obj(); } // UplinkPowerControlCommon ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, p0_nominal_pusch, (int8_t)-126, (int8_t)24)); HANDLE_CODE(pack_enum(bref, alpha)); HANDLE_CODE(pack_unalign_integer(bref, p0_nominal_pucch, (int8_t)-127, (int8_t)-96)); HANDLE_CODE(delta_flist_pucch.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, delta_preamb_msg3, (int8_t)-1, (int8_t)6)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(p0_nominal_pusch, bref, (int8_t)-126, (int8_t)24)); HANDLE_CODE(unpack_enum(alpha, bref)); HANDLE_CODE(unpack_unalign_integer(p0_nominal_pucch, bref, (int8_t)-127, (int8_t)-96)); HANDLE_CODE(delta_flist_pucch.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(delta_preamb_msg3, bref, (int8_t)-1, (int8_t)6)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p0-NominalPUSCH", p0_nominal_pusch); j.write_str("alpha", alpha.to_string()); j.write_int("p0-NominalPUCCH", p0_nominal_pucch); j.write_fieldname("deltaFList-PUCCH"); delta_flist_pucch.to_json(j); j.write_int("deltaPreambleMsg3", delta_preamb_msg3); j.end_obj(); } // UplinkPowerControlCommon-v1020 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format3_r10)); HANDLE_CODE(pack_enum(bref, delta_f_pucch_format1b_cs_r10)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(delta_f_pucch_format3_r10, bref)); HANDLE_CODE(unpack_enum(delta_f_pucch_format1b_cs_r10, bref)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_v1020_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("deltaF-PUCCH-Format3-r10", delta_f_pucch_format3_r10.to_string()); j.write_str("deltaF-PUCCH-Format1bCS-r10", delta_f_pucch_format1b_cs_r10.to_string()); j.end_obj(); } // WLAN-OffloadConfig-r12 ::= SEQUENCE SRSASN_CODE wlan_offload_cfg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(thres_rsrp_r12_present, 1)); HANDLE_CODE(bref.pack(thres_rsrq_r12_present, 1)); HANDLE_CODE(bref.pack(thres_rsrq_on_all_symbols_with_wb_r12_present, 1)); HANDLE_CODE(bref.pack(thres_rsrq_on_all_symbols_r12_present, 1)); HANDLE_CODE(bref.pack(thres_rsrq_wb_r12_present, 1)); HANDLE_CODE(bref.pack(thres_ch_utilization_r12_present, 1)); HANDLE_CODE(bref.pack(thres_backhaul_bw_r12_present, 1)); HANDLE_CODE(bref.pack(thres_wlan_rssi_r12_present, 1)); HANDLE_CODE(bref.pack(offload_pref_ind_r12_present, 1)); HANDLE_CODE(bref.pack(t_steering_wlan_r12_present, 1)); if (thres_rsrp_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_rsrp_r12.thres_rsrp_low_r12, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, thres_rsrp_r12.thres_rsrp_high_r12, (uint8_t)0, (uint8_t)97)); } if (thres_rsrq_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_rsrq_r12.thres_rsrq_low_r12, (uint8_t)0, (uint8_t)34)); HANDLE_CODE(pack_unalign_integer(bref, thres_rsrq_r12.thres_rsrq_high_r12, (uint8_t)0, (uint8_t)34)); } if (thres_rsrq_on_all_symbols_with_wb_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_rsrq_on_all_symbols_with_wb_r12.thres_rsrq_on_all_symbols_with_wb_low_r12, (uint8_t)0, (uint8_t)34)); HANDLE_CODE(pack_unalign_integer(bref, thres_rsrq_on_all_symbols_with_wb_r12.thres_rsrq_on_all_symbols_with_wb_high_r12, (uint8_t)0, (uint8_t)34)); } if (thres_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_rsrq_on_all_symbols_r12.thres_rsrq_on_all_symbols_low_r12, (uint8_t)0, (uint8_t)34)); HANDLE_CODE(pack_unalign_integer(bref, thres_rsrq_on_all_symbols_r12.thres_rsrq_on_all_symbols_high_r12, (uint8_t)0, (uint8_t)34)); } if (thres_rsrq_wb_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_rsrq_wb_r12.thres_rsrq_wb_low_r12, (uint8_t)0, (uint8_t)34)); HANDLE_CODE(pack_unalign_integer(bref, thres_rsrq_wb_r12.thres_rsrq_wb_high_r12, (uint8_t)0, (uint8_t)34)); } if (thres_ch_utilization_r12_present) { HANDLE_CODE( pack_unalign_integer(bref, thres_ch_utilization_r12.thres_ch_utilization_low_r12, (uint8_t)0, (uint8_t)255)); HANDLE_CODE( pack_unalign_integer(bref, thres_ch_utilization_r12.thres_ch_utilization_high_r12, (uint8_t)0, (uint8_t)255)); } if (thres_backhaul_bw_r12_present) { HANDLE_CODE(pack_enum(bref, thres_backhaul_bw_r12.thres_backhaul_dl_bw_low_r12)); HANDLE_CODE(pack_enum(bref, thres_backhaul_bw_r12.thres_backhaul_dl_bw_high_r12)); HANDLE_CODE(pack_enum(bref, thres_backhaul_bw_r12.thres_backhaul_ul_bw_low_r12)); HANDLE_CODE(pack_enum(bref, thres_backhaul_bw_r12.thres_backhaul_ul_bw_high_r12)); } if (thres_wlan_rssi_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_wlan_rssi_r12.thres_wlan_rssi_low_r12, (uint8_t)0, (uint8_t)255)); HANDLE_CODE(pack_unalign_integer(bref, thres_wlan_rssi_r12.thres_wlan_rssi_high_r12, (uint8_t)0, (uint8_t)255)); } if (offload_pref_ind_r12_present) { HANDLE_CODE(offload_pref_ind_r12.pack(bref)); } if (t_steering_wlan_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, t_steering_wlan_r12, (uint8_t)0, (uint8_t)7)); } return SRSASN_SUCCESS; } SRSASN_CODE wlan_offload_cfg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(thres_rsrp_r12_present, 1)); HANDLE_CODE(bref.unpack(thres_rsrq_r12_present, 1)); HANDLE_CODE(bref.unpack(thres_rsrq_on_all_symbols_with_wb_r12_present, 1)); HANDLE_CODE(bref.unpack(thres_rsrq_on_all_symbols_r12_present, 1)); HANDLE_CODE(bref.unpack(thres_rsrq_wb_r12_present, 1)); HANDLE_CODE(bref.unpack(thres_ch_utilization_r12_present, 1)); HANDLE_CODE(bref.unpack(thres_backhaul_bw_r12_present, 1)); HANDLE_CODE(bref.unpack(thres_wlan_rssi_r12_present, 1)); HANDLE_CODE(bref.unpack(offload_pref_ind_r12_present, 1)); HANDLE_CODE(bref.unpack(t_steering_wlan_r12_present, 1)); if (thres_rsrp_r12_present) { HANDLE_CODE(unpack_unalign_integer(thres_rsrp_r12.thres_rsrp_low_r12, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(thres_rsrp_r12.thres_rsrp_high_r12, bref, (uint8_t)0, (uint8_t)97)); } if (thres_rsrq_r12_present) { HANDLE_CODE(unpack_unalign_integer(thres_rsrq_r12.thres_rsrq_low_r12, bref, (uint8_t)0, (uint8_t)34)); HANDLE_CODE(unpack_unalign_integer(thres_rsrq_r12.thres_rsrq_high_r12, bref, (uint8_t)0, (uint8_t)34)); } if (thres_rsrq_on_all_symbols_with_wb_r12_present) { HANDLE_CODE(unpack_unalign_integer(thres_rsrq_on_all_symbols_with_wb_r12.thres_rsrq_on_all_symbols_with_wb_low_r12, bref, (uint8_t)0, (uint8_t)34)); HANDLE_CODE(unpack_unalign_integer(thres_rsrq_on_all_symbols_with_wb_r12.thres_rsrq_on_all_symbols_with_wb_high_r12, bref, (uint8_t)0, (uint8_t)34)); } if (thres_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(unpack_unalign_integer(thres_rsrq_on_all_symbols_r12.thres_rsrq_on_all_symbols_low_r12, bref, (uint8_t)0, (uint8_t)34)); HANDLE_CODE(unpack_unalign_integer(thres_rsrq_on_all_symbols_r12.thres_rsrq_on_all_symbols_high_r12, bref, (uint8_t)0, (uint8_t)34)); } if (thres_rsrq_wb_r12_present) { HANDLE_CODE(unpack_unalign_integer(thres_rsrq_wb_r12.thres_rsrq_wb_low_r12, bref, (uint8_t)0, (uint8_t)34)); HANDLE_CODE(unpack_unalign_integer(thres_rsrq_wb_r12.thres_rsrq_wb_high_r12, bref, (uint8_t)0, (uint8_t)34)); } if (thres_ch_utilization_r12_present) { HANDLE_CODE( unpack_unalign_integer(thres_ch_utilization_r12.thres_ch_utilization_low_r12, bref, (uint8_t)0, (uint8_t)255)); HANDLE_CODE( unpack_unalign_integer(thres_ch_utilization_r12.thres_ch_utilization_high_r12, bref, (uint8_t)0, (uint8_t)255)); } if (thres_backhaul_bw_r12_present) { HANDLE_CODE(unpack_enum(thres_backhaul_bw_r12.thres_backhaul_dl_bw_low_r12, bref)); HANDLE_CODE(unpack_enum(thres_backhaul_bw_r12.thres_backhaul_dl_bw_high_r12, bref)); HANDLE_CODE(unpack_enum(thres_backhaul_bw_r12.thres_backhaul_ul_bw_low_r12, bref)); HANDLE_CODE(unpack_enum(thres_backhaul_bw_r12.thres_backhaul_ul_bw_high_r12, bref)); } if (thres_wlan_rssi_r12_present) { HANDLE_CODE(unpack_unalign_integer(thres_wlan_rssi_r12.thres_wlan_rssi_low_r12, bref, (uint8_t)0, (uint8_t)255)); HANDLE_CODE(unpack_unalign_integer(thres_wlan_rssi_r12.thres_wlan_rssi_high_r12, bref, (uint8_t)0, (uint8_t)255)); } if (offload_pref_ind_r12_present) { HANDLE_CODE(offload_pref_ind_r12.unpack(bref)); } if (t_steering_wlan_r12_present) { HANDLE_CODE(unpack_unalign_integer(t_steering_wlan_r12, bref, (uint8_t)0, (uint8_t)7)); } return SRSASN_SUCCESS; } void wlan_offload_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); if (thres_rsrp_r12_present) { j.write_fieldname("thresholdRSRP-r12"); j.start_obj(); j.write_int("thresholdRSRP-Low-r12", thres_rsrp_r12.thres_rsrp_low_r12); j.write_int("thresholdRSRP-High-r12", thres_rsrp_r12.thres_rsrp_high_r12); j.end_obj(); } if (thres_rsrq_r12_present) { j.write_fieldname("thresholdRSRQ-r12"); j.start_obj(); j.write_int("thresholdRSRQ-Low-r12", thres_rsrq_r12.thres_rsrq_low_r12); j.write_int("thresholdRSRQ-High-r12", thres_rsrq_r12.thres_rsrq_high_r12); j.end_obj(); } if (thres_rsrq_on_all_symbols_with_wb_r12_present) { j.write_fieldname("thresholdRSRQ-OnAllSymbolsWithWB-r12"); j.start_obj(); j.write_int("thresholdRSRQ-OnAllSymbolsWithWB-Low-r12", thres_rsrq_on_all_symbols_with_wb_r12.thres_rsrq_on_all_symbols_with_wb_low_r12); j.write_int("thresholdRSRQ-OnAllSymbolsWithWB-High-r12", thres_rsrq_on_all_symbols_with_wb_r12.thres_rsrq_on_all_symbols_with_wb_high_r12); j.end_obj(); } if (thres_rsrq_on_all_symbols_r12_present) { j.write_fieldname("thresholdRSRQ-OnAllSymbols-r12"); j.start_obj(); j.write_int("thresholdRSRQ-OnAllSymbolsLow-r12", thres_rsrq_on_all_symbols_r12.thres_rsrq_on_all_symbols_low_r12); j.write_int("thresholdRSRQ-OnAllSymbolsHigh-r12", thres_rsrq_on_all_symbols_r12.thres_rsrq_on_all_symbols_high_r12); j.end_obj(); } if (thres_rsrq_wb_r12_present) { j.write_fieldname("thresholdRSRQ-WB-r12"); j.start_obj(); j.write_int("thresholdRSRQ-WB-Low-r12", thres_rsrq_wb_r12.thres_rsrq_wb_low_r12); j.write_int("thresholdRSRQ-WB-High-r12", thres_rsrq_wb_r12.thres_rsrq_wb_high_r12); j.end_obj(); } if (thres_ch_utilization_r12_present) { j.write_fieldname("thresholdChannelUtilization-r12"); j.start_obj(); j.write_int("thresholdChannelUtilizationLow-r12", thres_ch_utilization_r12.thres_ch_utilization_low_r12); j.write_int("thresholdChannelUtilizationHigh-r12", thres_ch_utilization_r12.thres_ch_utilization_high_r12); j.end_obj(); } if (thres_backhaul_bw_r12_present) { j.write_fieldname("thresholdBackhaul-Bandwidth-r12"); j.start_obj(); j.write_str("thresholdBackhaulDL-BandwidthLow-r12", thres_backhaul_bw_r12.thres_backhaul_dl_bw_low_r12.to_string()); j.write_str("thresholdBackhaulDL-BandwidthHigh-r12", thres_backhaul_bw_r12.thres_backhaul_dl_bw_high_r12.to_string()); j.write_str("thresholdBackhaulUL-BandwidthLow-r12", thres_backhaul_bw_r12.thres_backhaul_ul_bw_low_r12.to_string()); j.write_str("thresholdBackhaulUL-BandwidthHigh-r12", thres_backhaul_bw_r12.thres_backhaul_ul_bw_high_r12.to_string()); j.end_obj(); } if (thres_wlan_rssi_r12_present) { j.write_fieldname("thresholdWLAN-RSSI-r12"); j.start_obj(); j.write_int("thresholdWLAN-RSSI-Low-r12", thres_wlan_rssi_r12.thres_wlan_rssi_low_r12); j.write_int("thresholdWLAN-RSSI-High-r12", thres_wlan_rssi_r12.thres_wlan_rssi_high_r12); j.end_obj(); } if (offload_pref_ind_r12_present) { j.write_str("offloadPreferenceIndicator-r12", offload_pref_ind_r12.to_string()); } if (t_steering_wlan_r12_present) { j.write_int("t-SteeringWLAN-r12", t_steering_wlan_r12); } j.end_obj(); } // WUS-Config-r15 ::= SEQUENCE SRSASN_CODE wus_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(num_pos_r15_present, 1)); HANDLE_CODE(bref.pack(time_offset_e_drx_long_r15_present, 1)); HANDLE_CODE(pack_enum(bref, max_dur_factor_r15)); if (num_pos_r15_present) { HANDLE_CODE(pack_enum(bref, num_pos_r15)); } HANDLE_CODE(pack_enum(bref, freq_location_r15)); HANDLE_CODE(pack_enum(bref, time_offset_drx_r15)); HANDLE_CODE(pack_enum(bref, time_offset_e_drx_short_r15)); if (time_offset_e_drx_long_r15_present) { HANDLE_CODE(pack_enum(bref, time_offset_e_drx_long_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE wus_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(num_pos_r15_present, 1)); HANDLE_CODE(bref.unpack(time_offset_e_drx_long_r15_present, 1)); HANDLE_CODE(unpack_enum(max_dur_factor_r15, bref)); if (num_pos_r15_present) { HANDLE_CODE(unpack_enum(num_pos_r15, bref)); } HANDLE_CODE(unpack_enum(freq_location_r15, bref)); HANDLE_CODE(unpack_enum(time_offset_drx_r15, bref)); HANDLE_CODE(unpack_enum(time_offset_e_drx_short_r15, bref)); if (time_offset_e_drx_long_r15_present) { HANDLE_CODE(unpack_enum(time_offset_e_drx_long_r15, bref)); } return SRSASN_SUCCESS; } void wus_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("maxDurationFactor-r15", max_dur_factor_r15.to_string()); if (num_pos_r15_present) { j.write_str("numPOs-r15", num_pos_r15.to_string()); } j.write_str("freqLocation-r15", freq_location_r15.to_string()); j.write_str("timeOffsetDRX-r15", time_offset_drx_r15.to_string()); j.write_str("timeOffset-eDRX-Short-r15", time_offset_e_drx_short_r15.to_string()); if (time_offset_e_drx_long_r15_present) { j.write_str("timeOffset-eDRX-Long-r15", time_offset_e_drx_long_r15.to_string()); } j.end_obj(); } // ACDC-BarringForCommon-r13 ::= SEQUENCE SRSASN_CODE acdc_barr_for_common_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(acdc_hplm_nonly_r13, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, barr_per_acdc_category_list_r13, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE acdc_barr_for_common_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(acdc_hplm_nonly_r13, 1)); HANDLE_CODE(unpack_dyn_seq_of(barr_per_acdc_category_list_r13, bref, 1, 16)); return SRSASN_SUCCESS; } void acdc_barr_for_common_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("acdc-HPLMNonly-r13", acdc_hplm_nonly_r13); j.start_array("barringPerACDC-CategoryList-r13"); for (uint32_t i1 = 0; i1 < barr_per_acdc_category_list_r13.size(); ++i1) { barr_per_acdc_category_list_r13[i1].to_json(j); } j.end_array(); j.end_obj(); } // CarrierFreqInfoUTRA-v1250 ::= SEQUENCE SRSASN_CODE carrier_freq_info_utra_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_info_utra_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); return SRSASN_SUCCESS; } void carrier_freq_info_utra_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (reduced_meas_performance_r12_present) { j.write_str("reducedMeasPerformance-r12", "true"); } j.end_obj(); } // CellReselectionInfoCommon-v1460 ::= SEQUENCE SRSASN_CODE cell_resel_info_common_v1460_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, s_search_delta_p_r14)); return SRSASN_SUCCESS; } SRSASN_CODE cell_resel_info_common_v1460_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(s_search_delta_p_r14, bref)); return SRSASN_SUCCESS; } void cell_resel_info_common_v1460_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("s-SearchDeltaP-r14", s_search_delta_p_r14.to_string()); j.end_obj(); } // CellReselectionInfoHSDN-r15 ::= SEQUENCE SRSASN_CODE cell_resel_info_hsdn_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_equivalent_size_r15, (uint8_t)2, (uint8_t)16)); return SRSASN_SUCCESS; } SRSASN_CODE cell_resel_info_hsdn_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_equivalent_size_r15, bref, (uint8_t)2, (uint8_t)16)); return SRSASN_SUCCESS; } void cell_resel_info_hsdn_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellEquivalentSize-r15", cell_equivalent_size_r15); j.end_obj(); } // CellReselectionParametersCDMA2000 ::= SEQUENCE SRSASN_CODE cell_resel_params_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(t_resel_cdma2000_sf_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, band_class_list, 1, 32)); HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list, 1, 16)); HANDLE_CODE(pack_unalign_integer(bref, t_resel_cdma2000, (uint8_t)0, (uint8_t)7)); if (t_resel_cdma2000_sf_present) { HANDLE_CODE(t_resel_cdma2000_sf.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cell_resel_params_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(t_resel_cdma2000_sf_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(band_class_list, bref, 1, 32)); HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list, bref, 1, 16)); HANDLE_CODE(unpack_unalign_integer(t_resel_cdma2000, bref, (uint8_t)0, (uint8_t)7)); if (t_resel_cdma2000_sf_present) { HANDLE_CODE(t_resel_cdma2000_sf.unpack(bref)); } return SRSASN_SUCCESS; } void cell_resel_params_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("bandClassList"); for (uint32_t i1 = 0; i1 < band_class_list.size(); ++i1) { band_class_list[i1].to_json(j); } j.end_array(); j.start_array("neighCellList"); for (uint32_t i1 = 0; i1 < neigh_cell_list.size(); ++i1) { neigh_cell_list[i1].to_json(j); } j.end_array(); j.write_int("t-ReselectionCDMA2000", t_resel_cdma2000); if (t_resel_cdma2000_sf_present) { j.write_fieldname("t-ReselectionCDMA2000-SF"); t_resel_cdma2000_sf.to_json(j); } j.end_obj(); } // CellReselectionParametersCDMA2000-v920 ::= SEQUENCE SRSASN_CODE cell_resel_params_cdma2000_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list_v920, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE cell_resel_params_cdma2000_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list_v920, bref, 1, 16)); return SRSASN_SUCCESS; } void cell_resel_params_cdma2000_v920_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("neighCellList-v920"); for (uint32_t i1 = 0; i1 < neigh_cell_list_v920.size(); ++i1) { neigh_cell_list_v920[i1].to_json(j); } j.end_array(); j.end_obj(); } // CellReselectionServingFreqInfo-v1310 ::= SEQUENCE SRSASN_CODE cell_resel_serving_freq_info_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, cell_resel_sub_prio_r13)); return SRSASN_SUCCESS; } SRSASN_CODE cell_resel_serving_freq_info_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(cell_resel_sub_prio_r13, bref)); return SRSASN_SUCCESS; } void cell_resel_serving_freq_info_v1310_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cellReselectionSubPriority-r13", cell_resel_sub_prio_r13.to_string()); j.end_obj(); } // CellSelectionInfo-v920 ::= SEQUENCE SRSASN_CODE cell_sel_info_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(q_qual_min_offset_r9_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_r9, (int8_t)-34, (int8_t)-3)); if (q_qual_min_offset_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_offset_r9, (uint8_t)1, (uint8_t)8)); } return SRSASN_SUCCESS; } SRSASN_CODE cell_sel_info_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(q_qual_min_offset_r9_present, 1)); HANDLE_CODE(unpack_unalign_integer(q_qual_min_r9, bref, (int8_t)-34, (int8_t)-3)); if (q_qual_min_offset_r9_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_offset_r9, bref, (uint8_t)1, (uint8_t)8)); } return SRSASN_SUCCESS; } void cell_sel_info_v920_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("q-QualMin-r9", q_qual_min_r9); if (q_qual_min_offset_r9_present) { j.write_int("q-QualMinOffset-r9", q_qual_min_offset_r9); } j.end_obj(); } // EAB-ConfigPLMN-r11 ::= SEQUENCE SRSASN_CODE eab_cfg_plmn_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(eab_cfg_r11_present, 1)); if (eab_cfg_r11_present) { HANDLE_CODE(eab_cfg_r11.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE eab_cfg_plmn_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(eab_cfg_r11_present, 1)); if (eab_cfg_r11_present) { HANDLE_CODE(eab_cfg_r11.unpack(bref)); } return SRSASN_SUCCESS; } void eab_cfg_plmn_r11_s::to_json(json_writer& j) const { j.start_obj(); if (eab_cfg_r11_present) { j.write_fieldname("eab-Config-r11"); eab_cfg_r11.to_json(j); } j.end_obj(); } // MBMS-NotificationConfig-r9 ::= SEQUENCE SRSASN_CODE mbms_notif_cfg_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, notif_repeat_coeff_r9)); HANDLE_CODE(pack_unalign_integer(bref, notif_offset_r9, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(pack_unalign_integer(bref, notif_sf_idx_r9, (uint8_t)1, (uint8_t)6)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_notif_cfg_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(notif_repeat_coeff_r9, bref)); HANDLE_CODE(unpack_unalign_integer(notif_offset_r9, bref, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(unpack_unalign_integer(notif_sf_idx_r9, bref, (uint8_t)1, (uint8_t)6)); return SRSASN_SUCCESS; } void mbms_notif_cfg_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("notificationRepetitionCoeff-r9", notif_repeat_coeff_r9.to_string()); j.write_int("notificationOffset-r9", notif_offset_r9); j.write_int("notificationSF-Index-r9", notif_sf_idx_r9); j.end_obj(); } // MBMS-NotificationConfig-v1430 ::= SEQUENCE SRSASN_CODE mbms_notif_cfg_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, notif_sf_idx_v1430, (uint8_t)7, (uint8_t)10)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_notif_cfg_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(notif_sf_idx_v1430, bref, (uint8_t)7, (uint8_t)10)); return SRSASN_SUCCESS; } void mbms_notif_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("notificationSF-Index-v1430", notif_sf_idx_v1430); j.end_obj(); } // MeasIdleConfigSIB-r15 ::= SEQUENCE SRSASN_CODE meas_idle_cfg_sib_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_dyn_seq_of(bref, meas_idle_carrier_list_eutra_r15, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE meas_idle_cfg_sib_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_dyn_seq_of(meas_idle_carrier_list_eutra_r15, bref, 1, 8)); return SRSASN_SUCCESS; } void meas_idle_cfg_sib_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("measIdleCarrierListEUTRA-r15"); for (uint32_t i1 = 0; i1 < meas_idle_carrier_list_eutra_r15.size(); ++i1) { meas_idle_carrier_list_eutra_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } // MobilityStateParameters ::= SEQUENCE SRSASN_CODE mob_state_params_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, t_eval)); HANDLE_CODE(pack_enum(bref, t_hyst_normal)); HANDLE_CODE(pack_unalign_integer(bref, n_cell_change_medium, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_unalign_integer(bref, n_cell_change_high, (uint8_t)1, (uint8_t)16)); return SRSASN_SUCCESS; } SRSASN_CODE mob_state_params_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(t_eval, bref)); HANDLE_CODE(unpack_enum(t_hyst_normal, bref)); HANDLE_CODE(unpack_unalign_integer(n_cell_change_medium, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_unalign_integer(n_cell_change_high, bref, (uint8_t)1, (uint8_t)16)); return SRSASN_SUCCESS; } void mob_state_params_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("t-Evaluation", t_eval.to_string()); j.write_str("t-HystNormal", t_hyst_normal.to_string()); j.write_int("n-CellChangeMedium", n_cell_change_medium); j.write_int("n-CellChangeHigh", n_cell_change_high); j.end_obj(); } // RadioResourceConfigCommonSIB ::= SEQUENCE SRSASN_CODE rr_cfg_common_sib_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(rach_cfg_common.pack(bref)); HANDLE_CODE(bcch_cfg.pack(bref)); HANDLE_CODE(pcch_cfg.pack(bref)); HANDLE_CODE(prach_cfg.pack(bref)); HANDLE_CODE(pdsch_cfg_common.pack(bref)); HANDLE_CODE(pusch_cfg_common.pack(bref)); HANDLE_CODE(pucch_cfg_common.pack(bref)); HANDLE_CODE(srs_ul_cfg_common.pack(bref)); HANDLE_CODE(ul_pwr_ctrl_common.pack(bref)); HANDLE_CODE(pack_enum(bref, ul_cp_len)); if (ext) { ext_groups_header group_flags(6); rrc_asn1_warn_assert(ul_pwr_ctrl_common_v1020_present != (ul_pwr_ctrl_common_v1020.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ul_pwr_ctrl_common_v1020_present; rrc_asn1_warn_assert(rach_cfg_common_v1250_present != (rach_cfg_common_v1250.get() != NULL), __FILE__, __LINE__); group_flags[1] |= rach_cfg_common_v1250_present; rrc_asn1_warn_assert(pusch_cfg_common_v1270_present != (pusch_cfg_common_v1270.get() != NULL), __FILE__, __LINE__); group_flags[2] |= pusch_cfg_common_v1270_present; rrc_asn1_warn_assert(bcch_cfg_v1310_present != (bcch_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= bcch_cfg_v1310_present; rrc_asn1_warn_assert(pcch_cfg_v1310_present != (pcch_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pcch_cfg_v1310_present; rrc_asn1_warn_assert(freq_hop_params_r13_present != (freq_hop_params_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= freq_hop_params_r13_present; rrc_asn1_warn_assert(pdsch_cfg_common_v1310_present != (pdsch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pdsch_cfg_common_v1310_present; rrc_asn1_warn_assert(pusch_cfg_common_v1310_present != (pusch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pusch_cfg_common_v1310_present; rrc_asn1_warn_assert(prach_cfg_common_v1310_present != (prach_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= prach_cfg_common_v1310_present; rrc_asn1_warn_assert(pucch_cfg_common_v1310_present != (pucch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pucch_cfg_common_v1310_present; rrc_asn1_warn_assert(high_speed_cfg_r14_present != (high_speed_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= high_speed_cfg_r14_present; rrc_asn1_warn_assert(prach_cfg_v1430_present != (prach_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[4] |= prach_cfg_v1430_present; rrc_asn1_warn_assert(pucch_cfg_common_v1430_present != (pucch_cfg_common_v1430.get() != NULL), __FILE__, __LINE__); group_flags[4] |= pucch_cfg_common_v1430_present; rrc_asn1_warn_assert(prach_cfg_v1530_present != (prach_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[5] |= prach_cfg_v1530_present; rrc_asn1_warn_assert(ce_rss_cfg_r15_present != (ce_rss_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[5] |= ce_rss_cfg_r15_present; rrc_asn1_warn_assert(wus_cfg_r15_present != (wus_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[5] |= wus_cfg_r15_present; rrc_asn1_warn_assert(high_speed_cfg_v1530_present != (high_speed_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[5] |= high_speed_cfg_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_v1020_present, 1)); if (ul_pwr_ctrl_common_v1020_present) { HANDLE_CODE(ul_pwr_ctrl_common_v1020->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rach_cfg_common_v1250_present, 1)); if (rach_cfg_common_v1250_present) { HANDLE_CODE(rach_cfg_common_v1250->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pusch_cfg_common_v1270_present, 1)); if (pusch_cfg_common_v1270_present) { HANDLE_CODE(pusch_cfg_common_v1270->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(bcch_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(pcch_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(freq_hop_params_r13_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.pack(prach_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_common_v1310_present, 1)); if (bcch_cfg_v1310_present) { HANDLE_CODE(bcch_cfg_v1310->pack(bref)); } if (pcch_cfg_v1310_present) { HANDLE_CODE(pcch_cfg_v1310->pack(bref)); } if (freq_hop_params_r13_present) { HANDLE_CODE(freq_hop_params_r13->pack(bref)); } if (pdsch_cfg_common_v1310_present) { HANDLE_CODE(pdsch_cfg_common_v1310->pack(bref)); } if (pusch_cfg_common_v1310_present) { HANDLE_CODE(pusch_cfg_common_v1310->pack(bref)); } if (prach_cfg_common_v1310_present) { HANDLE_CODE(prach_cfg_common_v1310->pack(bref)); } if (pucch_cfg_common_v1310_present) { HANDLE_CODE(pucch_cfg_common_v1310->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(high_speed_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(prach_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_common_v1430_present, 1)); if (high_speed_cfg_r14_present) { HANDLE_CODE(high_speed_cfg_r14->pack(bref)); } if (prach_cfg_v1430_present) { HANDLE_CODE(prach_cfg_v1430->pack(bref)); } if (pucch_cfg_common_v1430_present) { HANDLE_CODE(pucch_cfg_common_v1430->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(prach_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(ce_rss_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(wus_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(high_speed_cfg_v1530_present, 1)); if (prach_cfg_v1530_present) { HANDLE_CODE(prach_cfg_v1530->pack(bref)); } if (ce_rss_cfg_r15_present) { HANDLE_CODE(ce_rss_cfg_r15->pack(bref)); } if (wus_cfg_r15_present) { HANDLE_CODE(wus_cfg_r15->pack(bref)); } if (high_speed_cfg_v1530_present) { HANDLE_CODE(high_speed_cfg_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_common_sib_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(rach_cfg_common.unpack(bref)); HANDLE_CODE(bcch_cfg.unpack(bref)); HANDLE_CODE(pcch_cfg.unpack(bref)); HANDLE_CODE(prach_cfg.unpack(bref)); HANDLE_CODE(pdsch_cfg_common.unpack(bref)); HANDLE_CODE(pusch_cfg_common.unpack(bref)); HANDLE_CODE(pucch_cfg_common.unpack(bref)); HANDLE_CODE(srs_ul_cfg_common.unpack(bref)); HANDLE_CODE(ul_pwr_ctrl_common.unpack(bref)); HANDLE_CODE(unpack_enum(ul_cp_len, bref)); if (ext) { ext_groups_header group_flags(6); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_v1020_present, 1)); if (ul_pwr_ctrl_common_v1020_present) { ul_pwr_ctrl_common_v1020 = make_copy_ptr(ul_pwr_ctrl_common_v1020_s()); HANDLE_CODE(ul_pwr_ctrl_common_v1020->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rach_cfg_common_v1250_present, 1)); if (rach_cfg_common_v1250_present) { rach_cfg_common_v1250 = make_copy_ptr(rach_cfg_common_v1250_s()); HANDLE_CODE(rach_cfg_common_v1250->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pusch_cfg_common_v1270_present, 1)); if (pusch_cfg_common_v1270_present) { pusch_cfg_common_v1270 = make_copy_ptr(pusch_cfg_common_v1270_s()); HANDLE_CODE(pusch_cfg_common_v1270->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(bcch_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(pcch_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(freq_hop_params_r13_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.unpack(prach_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_common_v1310_present, 1)); if (bcch_cfg_v1310_present) { bcch_cfg_v1310 = make_copy_ptr(bcch_cfg_v1310_s()); HANDLE_CODE(bcch_cfg_v1310->unpack(bref)); } if (pcch_cfg_v1310_present) { pcch_cfg_v1310 = make_copy_ptr(pcch_cfg_v1310_s()); HANDLE_CODE(pcch_cfg_v1310->unpack(bref)); } if (freq_hop_params_r13_present) { freq_hop_params_r13 = make_copy_ptr(freq_hop_params_r13_s()); HANDLE_CODE(freq_hop_params_r13->unpack(bref)); } if (pdsch_cfg_common_v1310_present) { pdsch_cfg_common_v1310 = make_copy_ptr(pdsch_cfg_common_v1310_s()); HANDLE_CODE(pdsch_cfg_common_v1310->unpack(bref)); } if (pusch_cfg_common_v1310_present) { pusch_cfg_common_v1310 = make_copy_ptr(pusch_cfg_common_v1310_s()); HANDLE_CODE(pusch_cfg_common_v1310->unpack(bref)); } if (prach_cfg_common_v1310_present) { prach_cfg_common_v1310 = make_copy_ptr(prach_cfg_sib_v1310_s()); HANDLE_CODE(prach_cfg_common_v1310->unpack(bref)); } if (pucch_cfg_common_v1310_present) { pucch_cfg_common_v1310 = make_copy_ptr(pucch_cfg_common_v1310_s()); HANDLE_CODE(pucch_cfg_common_v1310->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(high_speed_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(prach_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_common_v1430_present, 1)); if (high_speed_cfg_r14_present) { high_speed_cfg_r14 = make_copy_ptr(high_speed_cfg_r14_s()); HANDLE_CODE(high_speed_cfg_r14->unpack(bref)); } if (prach_cfg_v1430_present) { prach_cfg_v1430 = make_copy_ptr(prach_cfg_v1430_s()); HANDLE_CODE(prach_cfg_v1430->unpack(bref)); } if (pucch_cfg_common_v1430_present) { pucch_cfg_common_v1430 = make_copy_ptr(pucch_cfg_common_v1430_s()); HANDLE_CODE(pucch_cfg_common_v1430->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(prach_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(ce_rss_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(wus_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(high_speed_cfg_v1530_present, 1)); if (prach_cfg_v1530_present) { prach_cfg_v1530 = make_copy_ptr(prach_cfg_sib_v1530_s()); HANDLE_CODE(prach_cfg_v1530->unpack(bref)); } if (ce_rss_cfg_r15_present) { ce_rss_cfg_r15 = make_copy_ptr(rss_cfg_r15_s()); HANDLE_CODE(ce_rss_cfg_r15->unpack(bref)); } if (wus_cfg_r15_present) { wus_cfg_r15 = make_copy_ptr(wus_cfg_r15_s()); HANDLE_CODE(wus_cfg_r15->unpack(bref)); } if (high_speed_cfg_v1530_present) { high_speed_cfg_v1530 = make_copy_ptr(high_speed_cfg_v1530_s()); HANDLE_CODE(high_speed_cfg_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void rr_cfg_common_sib_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("rach-ConfigCommon"); rach_cfg_common.to_json(j); j.write_fieldname("bcch-Config"); bcch_cfg.to_json(j); j.write_fieldname("pcch-Config"); pcch_cfg.to_json(j); j.write_fieldname("prach-Config"); prach_cfg.to_json(j); j.write_fieldname("pdsch-ConfigCommon"); pdsch_cfg_common.to_json(j); j.write_fieldname("pusch-ConfigCommon"); pusch_cfg_common.to_json(j); j.write_fieldname("pucch-ConfigCommon"); pucch_cfg_common.to_json(j); j.write_fieldname("soundingRS-UL-ConfigCommon"); srs_ul_cfg_common.to_json(j); j.write_fieldname("uplinkPowerControlCommon"); ul_pwr_ctrl_common.to_json(j); j.write_str("ul-CyclicPrefixLength", ul_cp_len.to_string()); if (ext) { rrc_asn1_warn_assert(ul_pwr_ctrl_common_v1020_present != (ul_pwr_ctrl_common_v1020.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_v1020_present) { j.write_fieldname("uplinkPowerControlCommon-v1020"); ul_pwr_ctrl_common_v1020->to_json(j); } rrc_asn1_warn_assert(rach_cfg_common_v1250_present != (rach_cfg_common_v1250.get() != NULL), __FILE__, __LINE__); if (rach_cfg_common_v1250_present) { j.write_fieldname("rach-ConfigCommon-v1250"); rach_cfg_common_v1250->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_common_v1270_present != (pusch_cfg_common_v1270.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_common_v1270_present) { j.write_fieldname("pusch-ConfigCommon-v1270"); pusch_cfg_common_v1270->to_json(j); } rrc_asn1_warn_assert(bcch_cfg_v1310_present != (bcch_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (bcch_cfg_v1310_present) { j.write_fieldname("bcch-Config-v1310"); bcch_cfg_v1310->to_json(j); } rrc_asn1_warn_assert(pcch_cfg_v1310_present != (pcch_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (pcch_cfg_v1310_present) { j.write_fieldname("pcch-Config-v1310"); pcch_cfg_v1310->to_json(j); } rrc_asn1_warn_assert(freq_hop_params_r13_present != (freq_hop_params_r13.get() != NULL), __FILE__, __LINE__); if (freq_hop_params_r13_present) { j.write_fieldname("freqHoppingParameters-r13"); freq_hop_params_r13->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_common_v1310_present != (pdsch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_common_v1310_present) { j.write_fieldname("pdsch-ConfigCommon-v1310"); pdsch_cfg_common_v1310->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_common_v1310_present != (pusch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_common_v1310_present) { j.write_fieldname("pusch-ConfigCommon-v1310"); pusch_cfg_common_v1310->to_json(j); } rrc_asn1_warn_assert(prach_cfg_common_v1310_present != (prach_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); if (prach_cfg_common_v1310_present) { j.write_fieldname("prach-ConfigCommon-v1310"); prach_cfg_common_v1310->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_common_v1310_present != (pucch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_common_v1310_present) { j.write_fieldname("pucch-ConfigCommon-v1310"); pucch_cfg_common_v1310->to_json(j); } rrc_asn1_warn_assert(high_speed_cfg_r14_present != (high_speed_cfg_r14.get() != NULL), __FILE__, __LINE__); if (high_speed_cfg_r14_present) { j.write_fieldname("highSpeedConfig-r14"); high_speed_cfg_r14->to_json(j); } rrc_asn1_warn_assert(prach_cfg_v1430_present != (prach_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (prach_cfg_v1430_present) { j.write_fieldname("prach-Config-v1430"); prach_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_common_v1430_present != (pucch_cfg_common_v1430.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_common_v1430_present) { j.write_fieldname("pucch-ConfigCommon-v1430"); pucch_cfg_common_v1430->to_json(j); } rrc_asn1_warn_assert(prach_cfg_v1530_present != (prach_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (prach_cfg_v1530_present) { j.write_fieldname("prach-Config-v1530"); prach_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(ce_rss_cfg_r15_present != (ce_rss_cfg_r15.get() != NULL), __FILE__, __LINE__); if (ce_rss_cfg_r15_present) { j.write_fieldname("ce-RSS-Config-r15"); ce_rss_cfg_r15->to_json(j); } rrc_asn1_warn_assert(wus_cfg_r15_present != (wus_cfg_r15.get() != NULL), __FILE__, __LINE__); if (wus_cfg_r15_present) { j.write_fieldname("wus-Config-r15"); wus_cfg_r15->to_json(j); } rrc_asn1_warn_assert(high_speed_cfg_v1530_present != (high_speed_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (high_speed_cfg_v1530_present) { j.write_fieldname("highSpeedConfig-v1530"); high_speed_cfg_v1530->to_json(j); } } j.end_obj(); } // RedistributionServingInfo-r13 ::= SEQUENCE SRSASN_CODE redist_serving_info_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(redist_factor_cell_r13_present, 1)); HANDLE_CODE(bref.pack(redistr_on_paging_only_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, redist_factor_serving_r13, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(pack_enum(bref, t360_r13)); return SRSASN_SUCCESS; } SRSASN_CODE redist_serving_info_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(redist_factor_cell_r13_present, 1)); HANDLE_CODE(bref.unpack(redistr_on_paging_only_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(redist_factor_serving_r13, bref, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(unpack_enum(t360_r13, bref)); return SRSASN_SUCCESS; } void redist_serving_info_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("redistributionFactorServing-r13", redist_factor_serving_r13); if (redist_factor_cell_r13_present) { j.write_str("redistributionFactorCell-r13", "true"); } j.write_str("t360-r13", t360_r13.to_string()); if (redistr_on_paging_only_r13_present) { j.write_str("redistrOnPagingOnly-r13", "true"); } j.end_obj(); } // SC-MCCH-SchedulingInfo-r14 ::= SEQUENCE SRSASN_CODE sc_mcch_sched_info_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, on_dur_timer_scptm_r14)); HANDLE_CODE(pack_enum(bref, drx_inactivity_timer_scptm_r14)); HANDLE_CODE(sched_period_start_offset_scptm_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sc_mcch_sched_info_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(on_dur_timer_scptm_r14, bref)); HANDLE_CODE(unpack_enum(drx_inactivity_timer_scptm_r14, bref)); HANDLE_CODE(sched_period_start_offset_scptm_r14.unpack(bref)); return SRSASN_SUCCESS; } void sc_mcch_sched_info_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("onDurationTimerSCPTM-r14", on_dur_timer_scptm_r14.to_string()); j.write_str("drx-InactivityTimerSCPTM-r14", drx_inactivity_timer_scptm_r14.to_string()); j.write_fieldname("schedulingPeriodStartOffsetSCPTM-r14"); sched_period_start_offset_scptm_r14.to_json(j); j.end_obj(); } void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::destroy_() {} void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set(types::options e) { destroy_(); type_ = e; } sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::sched_period_start_offset_scptm_r14_c_( const sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& other) { type_ = other.type(); switch (type_) { case types::sf10: c.init(other.c.get()); break; case types::sf20: c.init(other.c.get()); break; case types::sf32: c.init(other.c.get()); break; case types::sf40: c.init(other.c.get()); break; case types::sf64: c.init(other.c.get()); break; case types::sf80: c.init(other.c.get()); break; case types::sf128: c.init(other.c.get()); break; case types::sf160: c.init(other.c.get()); break; case types::sf256: c.init(other.c.get()); break; case types::sf320: c.init(other.c.get()); break; case types::sf512: c.init(other.c.get()); break; case types::sf640: c.init(other.c.get()); break; case types::sf1024: c.init(other.c.get()); break; case types::sf2048: c.init(other.c.get()); break; case types::sf4096: c.init(other.c.get()); break; case types::sf8192: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); } } sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_:: operator=(const sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf10: c.set(other.c.get()); break; case types::sf20: c.set(other.c.get()); break; case types::sf32: c.set(other.c.get()); break; case types::sf40: c.set(other.c.get()); break; case types::sf64: c.set(other.c.get()); break; case types::sf80: c.set(other.c.get()); break; case types::sf128: c.set(other.c.get()); break; case types::sf160: c.set(other.c.get()); break; case types::sf256: c.set(other.c.get()); break; case types::sf320: c.set(other.c.get()); break; case types::sf512: c.set(other.c.get()); break; case types::sf640: c.set(other.c.get()); break; case types::sf1024: c.set(other.c.get()); break; case types::sf2048: c.set(other.c.get()); break; case types::sf4096: c.set(other.c.get()); break; case types::sf8192: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); } return *this; } void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf10: j.write_int("sf10", c.get()); break; case types::sf20: j.write_int("sf20", c.get()); break; case types::sf32: j.write_int("sf32", c.get()); break; case types::sf40: j.write_int("sf40", c.get()); break; case types::sf64: j.write_int("sf64", c.get()); break; case types::sf80: j.write_int("sf80", c.get()); break; case types::sf128: j.write_int("sf128", c.get()); break; case types::sf160: j.write_int("sf160", c.get()); break; case types::sf256: j.write_int("sf256", c.get()); break; case types::sf320: j.write_int("sf320", c.get()); break; case types::sf512: j.write_int("sf512", c.get()); break; case types::sf640: j.write_int("sf640", c.get()); break; case types::sf1024: j.write_int("sf1024", c.get()); break; case types::sf2048: j.write_int("sf2048", c.get()); break; case types::sf4096: j.write_int("sf4096", c.get()); break; case types::sf8192: j.write_int("sf8192", c.get()); break; default: log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); } j.end_obj(); } SRSASN_CODE sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf10: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)9)); break; case types::sf20: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)19)); break; case types::sf32: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)31)); break; case types::sf40: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); break; case types::sf64: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)63)); break; case types::sf80: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::sf128: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; case types::sf160: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; case types::sf256: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)255)); break; case types::sf320: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::sf512: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::sf640: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::sf1024: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1023)); break; case types::sf2048: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)2047)); break; case types::sf4096: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)4095)); break; case types::sf8192: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)8191)); break; default: log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf10: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)9)); break; case types::sf20: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)19)); break; case types::sf32: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)31)); break; case types::sf40: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); break; case types::sf64: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)63)); break; case types::sf80: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::sf128: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; case types::sf160: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; case types::sf256: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)255)); break; case types::sf320: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::sf512: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::sf640: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::sf1024: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1023)); break; case types::sf2048: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)2047)); break; case types::sf4096: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)4095)); break; case types::sf8192: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)8191)); break; default: log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-DiscConfigRelayUE-r13 ::= SEQUENCE SRSASN_CODE sl_disc_cfg_relay_ue_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(thresh_high_r13_present, 1)); HANDLE_CODE(bref.pack(thresh_low_r13_present, 1)); HANDLE_CODE(bref.pack(hyst_max_r13_present, 1)); HANDLE_CODE(bref.pack(hyst_min_r13_present, 1)); if (thresh_high_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_high_r13, (uint8_t)0, (uint8_t)49)); } if (thresh_low_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_low_r13, (uint8_t)0, (uint8_t)49)); } if (hyst_max_r13_present) { HANDLE_CODE(pack_enum(bref, hyst_max_r13)); } if (hyst_min_r13_present) { HANDLE_CODE(pack_enum(bref, hyst_min_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_relay_ue_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(thresh_high_r13_present, 1)); HANDLE_CODE(bref.unpack(thresh_low_r13_present, 1)); HANDLE_CODE(bref.unpack(hyst_max_r13_present, 1)); HANDLE_CODE(bref.unpack(hyst_min_r13_present, 1)); if (thresh_high_r13_present) { HANDLE_CODE(unpack_unalign_integer(thresh_high_r13, bref, (uint8_t)0, (uint8_t)49)); } if (thresh_low_r13_present) { HANDLE_CODE(unpack_unalign_integer(thresh_low_r13, bref, (uint8_t)0, (uint8_t)49)); } if (hyst_max_r13_present) { HANDLE_CODE(unpack_enum(hyst_max_r13, bref)); } if (hyst_min_r13_present) { HANDLE_CODE(unpack_enum(hyst_min_r13, bref)); } return SRSASN_SUCCESS; } void sl_disc_cfg_relay_ue_r13_s::to_json(json_writer& j) const { j.start_obj(); if (thresh_high_r13_present) { j.write_int("threshHigh-r13", thresh_high_r13); } if (thresh_low_r13_present) { j.write_int("threshLow-r13", thresh_low_r13); } if (hyst_max_r13_present) { j.write_str("hystMax-r13", hyst_max_r13.to_string()); } if (hyst_min_r13_present) { j.write_str("hystMin-r13", hyst_min_r13.to_string()); } j.end_obj(); } // SL-DiscConfigRemoteUE-r13 ::= SEQUENCE SRSASN_CODE sl_disc_cfg_remote_ue_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(thresh_high_r13_present, 1)); HANDLE_CODE(bref.pack(hyst_max_r13_present, 1)); if (thresh_high_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_high_r13, (uint8_t)0, (uint8_t)49)); } if (hyst_max_r13_present) { HANDLE_CODE(pack_enum(bref, hyst_max_r13)); } HANDLE_CODE(resel_info_ic_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_remote_ue_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(thresh_high_r13_present, 1)); HANDLE_CODE(bref.unpack(hyst_max_r13_present, 1)); if (thresh_high_r13_present) { HANDLE_CODE(unpack_unalign_integer(thresh_high_r13, bref, (uint8_t)0, (uint8_t)49)); } if (hyst_max_r13_present) { HANDLE_CODE(unpack_enum(hyst_max_r13, bref)); } HANDLE_CODE(resel_info_ic_r13.unpack(bref)); return SRSASN_SUCCESS; } void sl_disc_cfg_remote_ue_r13_s::to_json(json_writer& j) const { j.start_obj(); if (thresh_high_r13_present) { j.write_int("threshHigh-r13", thresh_high_r13); } if (hyst_max_r13_present) { j.write_str("hystMax-r13", hyst_max_r13.to_string()); } j.write_fieldname("reselectionInfoIC-r13"); resel_info_ic_r13.to_json(j); j.end_obj(); } // SL-V2X-ConfigCommon-r14 ::= SEQUENCE SRSASN_CODE sl_v2x_cfg_common_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(v2x_comm_rx_pool_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_comm_tx_pool_normal_common_r14_present, 1)); HANDLE_CODE(bref.pack(p2x_comm_tx_pool_normal_common_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_comm_tx_pool_exceptional_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_sync_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_inter_freq_info_list_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_res_sel_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(zone_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(type_tx_sync_r14_present, 1)); HANDLE_CODE(bref.pack(thres_sl_tx_prioritization_r14_present, 1)); HANDLE_CODE(bref.pack(anchor_carrier_freq_list_r14_present, 1)); HANDLE_CODE(bref.pack(offset_dfn_r14_present, 1)); HANDLE_CODE(bref.pack(cbr_common_tx_cfg_list_r14_present, 1)); if (v2x_comm_rx_pool_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_rx_pool_r14, 1, 16)); } if (v2x_comm_tx_pool_normal_common_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_tx_pool_normal_common_r14, 1, 8)); } if (p2x_comm_tx_pool_normal_common_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, p2x_comm_tx_pool_normal_common_r14, 1, 8)); } if (v2x_comm_tx_pool_exceptional_r14_present) { HANDLE_CODE(v2x_comm_tx_pool_exceptional_r14.pack(bref)); } if (v2x_sync_cfg_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_sync_cfg_r14, 1, 16)); } if (v2x_inter_freq_info_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_inter_freq_info_list_r14, 0, 7)); } if (v2x_res_sel_cfg_r14_present) { HANDLE_CODE(v2x_res_sel_cfg_r14.pack(bref)); } if (zone_cfg_r14_present) { HANDLE_CODE(zone_cfg_r14.pack(bref)); } if (type_tx_sync_r14_present) { HANDLE_CODE(pack_enum(bref, type_tx_sync_r14)); } if (thres_sl_tx_prioritization_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_sl_tx_prioritization_r14, (uint8_t)1, (uint8_t)8)); } if (anchor_carrier_freq_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, anchor_carrier_freq_list_r14, 1, 8, UnalignedIntegerPacker(0, 262143))); } if (offset_dfn_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, offset_dfn_r14, (uint16_t)0, (uint16_t)1000)); } if (cbr_common_tx_cfg_list_r14_present) { HANDLE_CODE(cbr_common_tx_cfg_list_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_cfg_common_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(v2x_comm_rx_pool_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_comm_tx_pool_normal_common_r14_present, 1)); HANDLE_CODE(bref.unpack(p2x_comm_tx_pool_normal_common_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_comm_tx_pool_exceptional_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_sync_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_inter_freq_info_list_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_res_sel_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(zone_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(type_tx_sync_r14_present, 1)); HANDLE_CODE(bref.unpack(thres_sl_tx_prioritization_r14_present, 1)); HANDLE_CODE(bref.unpack(anchor_carrier_freq_list_r14_present, 1)); HANDLE_CODE(bref.unpack(offset_dfn_r14_present, 1)); HANDLE_CODE(bref.unpack(cbr_common_tx_cfg_list_r14_present, 1)); if (v2x_comm_rx_pool_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_rx_pool_r14, bref, 1, 16)); } if (v2x_comm_tx_pool_normal_common_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_tx_pool_normal_common_r14, bref, 1, 8)); } if (p2x_comm_tx_pool_normal_common_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(p2x_comm_tx_pool_normal_common_r14, bref, 1, 8)); } if (v2x_comm_tx_pool_exceptional_r14_present) { HANDLE_CODE(v2x_comm_tx_pool_exceptional_r14.unpack(bref)); } if (v2x_sync_cfg_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_sync_cfg_r14, bref, 1, 16)); } if (v2x_inter_freq_info_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_inter_freq_info_list_r14, bref, 0, 7)); } if (v2x_res_sel_cfg_r14_present) { HANDLE_CODE(v2x_res_sel_cfg_r14.unpack(bref)); } if (zone_cfg_r14_present) { HANDLE_CODE(zone_cfg_r14.unpack(bref)); } if (type_tx_sync_r14_present) { HANDLE_CODE(unpack_enum(type_tx_sync_r14, bref)); } if (thres_sl_tx_prioritization_r14_present) { HANDLE_CODE(unpack_unalign_integer(thres_sl_tx_prioritization_r14, bref, (uint8_t)1, (uint8_t)8)); } if (anchor_carrier_freq_list_r14_present) { HANDLE_CODE( unpack_dyn_seq_of(anchor_carrier_freq_list_r14, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); } if (offset_dfn_r14_present) { HANDLE_CODE(unpack_unalign_integer(offset_dfn_r14, bref, (uint16_t)0, (uint16_t)1000)); } if (cbr_common_tx_cfg_list_r14_present) { HANDLE_CODE(cbr_common_tx_cfg_list_r14.unpack(bref)); } return SRSASN_SUCCESS; } void sl_v2x_cfg_common_r14_s::to_json(json_writer& j) const { j.start_obj(); if (v2x_comm_rx_pool_r14_present) { j.start_array("v2x-CommRxPool-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_rx_pool_r14.size(); ++i1) { v2x_comm_rx_pool_r14[i1].to_json(j); } j.end_array(); } if (v2x_comm_tx_pool_normal_common_r14_present) { j.start_array("v2x-CommTxPoolNormalCommon-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_tx_pool_normal_common_r14.size(); ++i1) { v2x_comm_tx_pool_normal_common_r14[i1].to_json(j); } j.end_array(); } if (p2x_comm_tx_pool_normal_common_r14_present) { j.start_array("p2x-CommTxPoolNormalCommon-r14"); for (uint32_t i1 = 0; i1 < p2x_comm_tx_pool_normal_common_r14.size(); ++i1) { p2x_comm_tx_pool_normal_common_r14[i1].to_json(j); } j.end_array(); } if (v2x_comm_tx_pool_exceptional_r14_present) { j.write_fieldname("v2x-CommTxPoolExceptional-r14"); v2x_comm_tx_pool_exceptional_r14.to_json(j); } if (v2x_sync_cfg_r14_present) { j.start_array("v2x-SyncConfig-r14"); for (uint32_t i1 = 0; i1 < v2x_sync_cfg_r14.size(); ++i1) { v2x_sync_cfg_r14[i1].to_json(j); } j.end_array(); } if (v2x_inter_freq_info_list_r14_present) { j.start_array("v2x-InterFreqInfoList-r14"); for (uint32_t i1 = 0; i1 < v2x_inter_freq_info_list_r14.size(); ++i1) { v2x_inter_freq_info_list_r14[i1].to_json(j); } j.end_array(); } if (v2x_res_sel_cfg_r14_present) { j.write_fieldname("v2x-ResourceSelectionConfig-r14"); v2x_res_sel_cfg_r14.to_json(j); } if (zone_cfg_r14_present) { j.write_fieldname("zoneConfig-r14"); zone_cfg_r14.to_json(j); } if (type_tx_sync_r14_present) { j.write_str("typeTxSync-r14", type_tx_sync_r14.to_string()); } if (thres_sl_tx_prioritization_r14_present) { j.write_int("thresSL-TxPrioritization-r14", thres_sl_tx_prioritization_r14); } if (anchor_carrier_freq_list_r14_present) { j.start_array("anchorCarrierFreqList-r14"); for (uint32_t i1 = 0; i1 < anchor_carrier_freq_list_r14.size(); ++i1) { j.write_int(anchor_carrier_freq_list_r14[i1]); } j.end_array(); } if (offset_dfn_r14_present) { j.write_int("offsetDFN-r14", offset_dfn_r14); } if (cbr_common_tx_cfg_list_r14_present) { j.write_fieldname("cbr-CommonTxConfigList-r14"); cbr_common_tx_cfg_list_r14.to_json(j); } j.end_obj(); } // SL-V2X-PacketDuplicationConfig-r15 ::= SEQUENCE SRSASN_CODE sl_v2x_packet_dupl_cfg_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(allowed_carrier_freq_cfg_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, thresh_sl_reliability_r15, (uint8_t)1, (uint8_t)8)); if (allowed_carrier_freq_cfg_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, allowed_carrier_freq_cfg_r15, 1, 16)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_packet_dupl_cfg_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(allowed_carrier_freq_cfg_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(thresh_sl_reliability_r15, bref, (uint8_t)1, (uint8_t)8)); if (allowed_carrier_freq_cfg_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(allowed_carrier_freq_cfg_r15, bref, 1, 16)); } return SRSASN_SUCCESS; } void sl_v2x_packet_dupl_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("threshSL-Reliability-r15", thresh_sl_reliability_r15); if (allowed_carrier_freq_cfg_r15_present) { j.start_array("allowedCarrierFreqConfig-r15"); for (uint32_t i1 = 0; i1 < allowed_carrier_freq_cfg_r15.size(); ++i1) { allowed_carrier_freq_cfg_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SystemInformationBlockType1-v1130-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tdd_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(cell_sel_info_v1130_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (tdd_cfg_v1130_present) { HANDLE_CODE(tdd_cfg_v1130.pack(bref)); } if (cell_sel_info_v1130_present) { HANDLE_CODE(cell_sel_info_v1130.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tdd_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(cell_sel_info_v1130_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (tdd_cfg_v1130_present) { HANDLE_CODE(tdd_cfg_v1130.unpack(bref)); } if (cell_sel_info_v1130_present) { HANDLE_CODE(cell_sel_info_v1130.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (tdd_cfg_v1130_present) { j.write_fieldname("tdd-Config-v1130"); tdd_cfg_v1130.to_json(j); } if (cell_sel_info_v1130_present) { j.write_fieldname("cellSelectionInfo-v1130"); cell_sel_info_v1130.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v9e0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_ind_v9e0_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v9e0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (freq_band_ind_v9e0_present) { HANDLE_CODE(pack_unalign_integer(bref, freq_band_ind_v9e0, (uint16_t)65, (uint16_t)256)); } if (multi_band_info_list_v9e0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v9e0, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v9e0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_ind_v9e0_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v9e0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (freq_band_ind_v9e0_present) { HANDLE_CODE(unpack_unalign_integer(freq_band_ind_v9e0, bref, (uint16_t)65, (uint16_t)256)); } if (multi_band_info_list_v9e0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v9e0, bref, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_ind_v9e0_present) { j.write_int("freqBandIndicator-v9e0", freq_band_ind_v9e0); } if (multi_band_info_list_v9e0_present) { j.start_array("multiBandInfoList-v9e0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v9e0.size(); ++i1) { multi_band_info_list_v9e0[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE SRSASN_CODE sib_type2_v8h0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (multi_band_info_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, UnalignedIntegerPacker(1, 32))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type2_v8h0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (multi_band_info_list_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, UnalignedIntegerPacker(1, 32))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type2_v8h0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (multi_band_info_list_present) { j.start_array("multiBandInfoList"); for (uint32_t i1 = 0; i1 < multi_band_info_list.size(); ++i1) { j.write_int(multi_band_info_list[i1]); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE SRSASN_CODE sib_type3_v10j0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (freq_band_info_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); } if (multi_band_info_list_v10j0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type3_v10j0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (freq_band_info_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); } if (multi_band_info_list_v10j0_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type3_v10j0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_info_r10_present) { j.start_array("freqBandInfo-r10"); for (uint32_t i1 = 0; i1 < freq_band_info_r10.size(); ++i1) { freq_band_info_r10[i1].to_json(j); } j.end_array(); } if (multi_band_info_list_v10j0_present) { j.start_array("multiBandInfoList-v10j0"); for (uint32_t i1 = 0; i1 < multi_band_info_list_v10j0.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < multi_band_info_list_v10j0[i1].size(); ++i2) { multi_band_info_list_v10j0[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE SRSASN_CODE sib_type5_v8h0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v8h0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (inter_freq_carrier_freq_list_v8h0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v8h0, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type5_v8h0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v8h0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (inter_freq_carrier_freq_list_v8h0_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v8h0, bref, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type5_v8h0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (inter_freq_carrier_freq_list_v8h0_present) { j.start_array("interFreqCarrierFreqList-v8h0"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v8h0.size(); ++i1) { inter_freq_carrier_freq_list_v8h0[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE SRSASN_CODE sib_type6_v8h0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_v8h0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (carrier_freq_list_utra_fdd_v8h0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_fdd_v8h0, 1, 16)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type6_v8h0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_v8h0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (carrier_freq_list_utra_fdd_v8h0_present) { HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_fdd_v8h0, bref, 1, 16)); } return SRSASN_SUCCESS; } void sib_type6_v8h0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_list_utra_fdd_v8h0_present) { j.start_array("carrierFreqListUTRA-FDD-v8h0"); for (uint32_t i1 = 0; i1 < carrier_freq_list_utra_fdd_v8h0.size(); ++i1) { carrier_freq_list_utra_fdd_v8h0[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // TimeReferenceInfo-r15 ::= SEQUENCE SRSASN_CODE time_ref_info_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(uncertainty_r15_present, 1)); HANDLE_CODE(bref.pack(time_info_type_r15_present, 1)); HANDLE_CODE(bref.pack(ref_sfn_r15_present, 1)); HANDLE_CODE(time_r15.pack(bref)); if (uncertainty_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, uncertainty_r15, (uint8_t)0, (uint8_t)12)); } if (ref_sfn_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, ref_sfn_r15, (uint16_t)0, (uint16_t)1023)); } return SRSASN_SUCCESS; } SRSASN_CODE time_ref_info_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(uncertainty_r15_present, 1)); HANDLE_CODE(bref.unpack(time_info_type_r15_present, 1)); HANDLE_CODE(bref.unpack(ref_sfn_r15_present, 1)); HANDLE_CODE(time_r15.unpack(bref)); if (uncertainty_r15_present) { HANDLE_CODE(unpack_unalign_integer(uncertainty_r15, bref, (uint8_t)0, (uint8_t)12)); } if (ref_sfn_r15_present) { HANDLE_CODE(unpack_unalign_integer(ref_sfn_r15, bref, (uint16_t)0, (uint16_t)1023)); } return SRSASN_SUCCESS; } void time_ref_info_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("time-r15"); time_r15.to_json(j); if (uncertainty_r15_present) { j.write_int("uncertainty-r15", uncertainty_r15); } if (time_info_type_r15_present) { j.write_str("timeInfoType-r15", "localClock"); } if (ref_sfn_r15_present) { j.write_int("referenceSFN-r15", ref_sfn_r15); } j.end_obj(); } // UE-TimersAndConstants ::= SEQUENCE SRSASN_CODE ue_timers_and_consts_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, t300)); HANDLE_CODE(pack_enum(bref, t301)); HANDLE_CODE(pack_enum(bref, t310)); HANDLE_CODE(pack_enum(bref, n310)); HANDLE_CODE(pack_enum(bref, t311)); HANDLE_CODE(pack_enum(bref, n311)); if (ext) { ext_groups_header group_flags(3); group_flags[0] |= t300_v1310_present; group_flags[0] |= t301_v1310_present; group_flags[1] |= t310_v1330_present; group_flags[2] |= t300_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(t300_v1310_present, 1)); HANDLE_CODE(bref.pack(t301_v1310_present, 1)); if (t300_v1310_present) { HANDLE_CODE(pack_enum(bref, t300_v1310)); } if (t301_v1310_present) { HANDLE_CODE(pack_enum(bref, t301_v1310)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(t310_v1330_present, 1)); if (t310_v1330_present) { HANDLE_CODE(pack_enum(bref, t310_v1330)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(t300_r15_present, 1)); if (t300_r15_present) { HANDLE_CODE(pack_enum(bref, t300_r15)); } } } return SRSASN_SUCCESS; } SRSASN_CODE ue_timers_and_consts_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(t300, bref)); HANDLE_CODE(unpack_enum(t301, bref)); HANDLE_CODE(unpack_enum(t310, bref)); HANDLE_CODE(unpack_enum(n310, bref)); HANDLE_CODE(unpack_enum(t311, bref)); HANDLE_CODE(unpack_enum(n311, bref)); if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(t300_v1310_present, 1)); HANDLE_CODE(bref.unpack(t301_v1310_present, 1)); if (t300_v1310_present) { HANDLE_CODE(unpack_enum(t300_v1310, bref)); } if (t301_v1310_present) { HANDLE_CODE(unpack_enum(t301_v1310, bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(t310_v1330_present, 1)); if (t310_v1330_present) { HANDLE_CODE(unpack_enum(t310_v1330, bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(t300_r15_present, 1)); if (t300_r15_present) { HANDLE_CODE(unpack_enum(t300_r15, bref)); } } } return SRSASN_SUCCESS; } void ue_timers_and_consts_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("t300", t300.to_string()); j.write_str("t301", t301.to_string()); j.write_str("t310", t310.to_string()); j.write_str("n310", n310.to_string()); j.write_str("t311", t311.to_string()); j.write_str("n311", n311.to_string()); if (ext) { if (t300_v1310_present) { j.write_str("t300-v1310", t300_v1310.to_string()); } if (t301_v1310_present) { j.write_str("t301-v1310", t301_v1310.to_string()); } if (t310_v1330_present) { j.write_str("t310-v1330", t310_v1330.to_string()); } if (t300_r15_present) { j.write_str("t300-r15", t300_r15.to_string()); } } j.end_obj(); } // WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE SRSASN_CODE wlan_offload_info_per_plmn_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(wlan_offload_cfg_common_r12_present, 1)); HANDLE_CODE(bref.pack(wlan_id_list_r12_present, 1)); if (wlan_offload_cfg_common_r12_present) { HANDLE_CODE(wlan_offload_cfg_common_r12.pack(bref)); } if (wlan_id_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_id_list_r12, 1, 16)); } return SRSASN_SUCCESS; } SRSASN_CODE wlan_offload_info_per_plmn_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(wlan_offload_cfg_common_r12_present, 1)); HANDLE_CODE(bref.unpack(wlan_id_list_r12_present, 1)); if (wlan_offload_cfg_common_r12_present) { HANDLE_CODE(wlan_offload_cfg_common_r12.unpack(bref)); } if (wlan_id_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_id_list_r12, bref, 1, 16)); } return SRSASN_SUCCESS; } void wlan_offload_info_per_plmn_r12_s::to_json(json_writer& j) const { j.start_obj(); if (wlan_offload_cfg_common_r12_present) { j.write_fieldname("wlan-OffloadConfigCommon-r12"); wlan_offload_cfg_common_r12.to_json(j); } if (wlan_id_list_r12_present) { j.start_array("wlan-Id-List-r12"); for (uint32_t i1 = 0; i1 < wlan_id_list_r12.size(); ++i1) { wlan_id_list_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SchedulingInfo ::= SEQUENCE SRSASN_CODE sched_info_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, si_periodicity)); HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info, 0, 31, EnumPacker())); return SRSASN_SUCCESS; } SRSASN_CODE sched_info_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(si_periodicity, bref)); HANDLE_CODE(unpack_dyn_seq_of(sib_map_info, bref, 0, 31, EnumPacker())); return SRSASN_SUCCESS; } void sched_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("si-Periodicity", si_periodicity.to_string()); j.start_array("sib-MappingInfo"); for (uint32_t i1 = 0; i1 < sib_map_info.size(); ++i1) { j.write_str(sib_map_info[i1].to_string()); } j.end_array(); j.end_obj(); } // SystemInformation-v8a0-IEs ::= SEQUENCE SRSASN_CODE sys_info_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sys_info_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sys_info_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SystemInformationBlockPos-r15 ::= SEQUENCE SRSASN_CODE sib_pos_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(assist_data_sib_elem_r15.pack(bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_pos_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(assist_data_sib_elem_r15.unpack(bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_pos_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("assistanceDataSIB-Element-r15", assist_data_sib_elem_r15.to_string()); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); } // SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v8h0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (multi_band_info_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, UnalignedIntegerPacker(1, 64))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v8h0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (multi_band_info_list_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, UnalignedIntegerPacker(1, 64))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v8h0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (multi_band_info_list_present) { j.start_array("multiBandInfoList"); for (uint32_t i1 = 0; i1 < multi_band_info_list.size(); ++i1) { j.write_int(multi_band_info_list[i1]); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType1-v920-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v920_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ims_emergency_support_r9_present, 1)); HANDLE_CODE(bref.pack(cell_sel_info_v920_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (cell_sel_info_v920_present) { HANDLE_CODE(cell_sel_info_v920.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v920_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ims_emergency_support_r9_present, 1)); HANDLE_CODE(bref.unpack(cell_sel_info_v920_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (cell_sel_info_v920_present) { HANDLE_CODE(cell_sel_info_v920.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v920_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ims_emergency_support_r9_present) { j.write_str("ims-EmergencySupport-r9", "true"); } if (cell_sel_info_v920_present) { j.write_fieldname("cellSelectionInfo-v920"); cell_sel_info_v920.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType10 ::= SEQUENCE SRSASN_CODE sib_type10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(dummy_present, 1)); HANDLE_CODE(msg_id.pack(bref)); HANDLE_CODE(serial_num.pack(bref)); HANDLE_CODE(warning_type.pack(bref)); if (dummy_present) { HANDLE_CODE(dummy.pack(bref)); } if (ext) { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(dummy_present, 1)); HANDLE_CODE(msg_id.unpack(bref)); HANDLE_CODE(serial_num.unpack(bref)); HANDLE_CODE(warning_type.unpack(bref)); if (dummy_present) { HANDLE_CODE(dummy.unpack(bref)); } if (ext) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } } return SRSASN_SUCCESS; } void sib_type10_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("messageIdentifier", msg_id.to_string()); j.write_str("serialNumber", serial_num.to_string()); j.write_str("warningType", warning_type.to_string()); if (dummy_present) { j.write_str("dummy", dummy.to_string()); } if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } } j.end_obj(); } // SystemInformationBlockType11 ::= SEQUENCE SRSASN_CODE sib_type11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(data_coding_scheme_present, 1)); HANDLE_CODE(msg_id.pack(bref)); HANDLE_CODE(serial_num.pack(bref)); HANDLE_CODE(pack_enum(bref, warning_msg_segment_type)); HANDLE_CODE(pack_unalign_integer(bref, warning_msg_segment_num, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(warning_msg_segment.pack(bref)); if (data_coding_scheme_present) { HANDLE_CODE(data_coding_scheme.pack(bref)); } if (ext) { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(data_coding_scheme_present, 1)); HANDLE_CODE(msg_id.unpack(bref)); HANDLE_CODE(serial_num.unpack(bref)); HANDLE_CODE(unpack_enum(warning_msg_segment_type, bref)); HANDLE_CODE(unpack_unalign_integer(warning_msg_segment_num, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(warning_msg_segment.unpack(bref)); if (data_coding_scheme_present) { HANDLE_CODE(data_coding_scheme.unpack(bref)); } if (ext) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } } return SRSASN_SUCCESS; } void sib_type11_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("messageIdentifier", msg_id.to_string()); j.write_str("serialNumber", serial_num.to_string()); j.write_str("warningMessageSegmentType", warning_msg_segment_type.to_string()); j.write_int("warningMessageSegmentNumber", warning_msg_segment_num); j.write_str("warningMessageSegment", warning_msg_segment.to_string()); if (data_coding_scheme_present) { j.write_str("dataCodingScheme", data_coding_scheme.to_string()); } if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } } j.end_obj(); } // SystemInformationBlockType12-r9 ::= SEQUENCE SRSASN_CODE sib_type12_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(data_coding_scheme_r9_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(msg_id_r9.pack(bref)); HANDLE_CODE(serial_num_r9.pack(bref)); HANDLE_CODE(pack_enum(bref, warning_msg_segment_type_r9)); HANDLE_CODE(pack_unalign_integer(bref, warning_msg_segment_num_r9, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(warning_msg_segment_r9.pack(bref)); if (data_coding_scheme_r9_present) { HANDLE_CODE(data_coding_scheme_r9.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= warning_area_coordinates_segment_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(warning_area_coordinates_segment_r15_present, 1)); if (warning_area_coordinates_segment_r15_present) { HANDLE_CODE(warning_area_coordinates_segment_r15.pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type12_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(data_coding_scheme_r9_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(msg_id_r9.unpack(bref)); HANDLE_CODE(serial_num_r9.unpack(bref)); HANDLE_CODE(unpack_enum(warning_msg_segment_type_r9, bref)); HANDLE_CODE(unpack_unalign_integer(warning_msg_segment_num_r9, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(warning_msg_segment_r9.unpack(bref)); if (data_coding_scheme_r9_present) { HANDLE_CODE(data_coding_scheme_r9.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(warning_area_coordinates_segment_r15_present, 1)); if (warning_area_coordinates_segment_r15_present) { HANDLE_CODE(warning_area_coordinates_segment_r15.unpack(bref)); } } } return SRSASN_SUCCESS; } void sib_type12_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("messageIdentifier-r9", msg_id_r9.to_string()); j.write_str("serialNumber-r9", serial_num_r9.to_string()); j.write_str("warningMessageSegmentType-r9", warning_msg_segment_type_r9.to_string()); j.write_int("warningMessageSegmentNumber-r9", warning_msg_segment_num_r9); j.write_str("warningMessageSegment-r9", warning_msg_segment_r9.to_string()); if (data_coding_scheme_r9_present) { j.write_str("dataCodingScheme-r9", data_coding_scheme_r9.to_string()); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (ext) { if (warning_area_coordinates_segment_r15_present) { j.write_str("warningAreaCoordinatesSegment-r15", warning_area_coordinates_segment_r15.to_string()); } } j.end_obj(); } // SystemInformationBlockType13-r9 ::= SEQUENCE SRSASN_CODE sib_type13_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, mbsfn_area_info_list_r9, 1, 8)); HANDLE_CODE(notif_cfg_r9.pack(bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(notif_cfg_v1430_present != (notif_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[0] |= notif_cfg_v1430_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(notif_cfg_v1430_present, 1)); if (notif_cfg_v1430_present) { HANDLE_CODE(notif_cfg_v1430->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type13_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(mbsfn_area_info_list_r9, bref, 1, 8)); HANDLE_CODE(notif_cfg_r9.unpack(bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(notif_cfg_v1430_present, 1)); if (notif_cfg_v1430_present) { notif_cfg_v1430 = make_copy_ptr(mbms_notif_cfg_v1430_s()); HANDLE_CODE(notif_cfg_v1430->unpack(bref)); } } } return SRSASN_SUCCESS; } void sib_type13_r9_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("mbsfn-AreaInfoList-r9"); for (uint32_t i1 = 0; i1 < mbsfn_area_info_list_r9.size(); ++i1) { mbsfn_area_info_list_r9[i1].to_json(j); } j.end_array(); j.write_fieldname("notificationConfig-r9"); notif_cfg_r9.to_json(j); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (ext) { rrc_asn1_warn_assert(notif_cfg_v1430_present != (notif_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (notif_cfg_v1430_present) { j.write_fieldname("notificationConfig-v1430"); notif_cfg_v1430->to_json(j); } } j.end_obj(); } // SystemInformationBlockType14-r11 ::= SEQUENCE SRSASN_CODE sib_type14_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(eab_param_r11_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (eab_param_r11_present) { HANDLE_CODE(eab_param_r11.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= eab_per_rsrp_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(eab_per_rsrp_r15_present, 1)); if (eab_per_rsrp_r15_present) { HANDLE_CODE(pack_enum(bref, eab_per_rsrp_r15)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type14_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(eab_param_r11_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (eab_param_r11_present) { HANDLE_CODE(eab_param_r11.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(eab_per_rsrp_r15_present, 1)); if (eab_per_rsrp_r15_present) { HANDLE_CODE(unpack_enum(eab_per_rsrp_r15, bref)); } } } return SRSASN_SUCCESS; } void sib_type14_r11_s::to_json(json_writer& j) const { j.start_obj(); if (eab_param_r11_present) { j.write_fieldname("eab-Param-r11"); eab_param_r11.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (ext) { if (eab_per_rsrp_r15_present) { j.write_str("eab-PerRSRP-r15", eab_per_rsrp_r15.to_string()); } } j.end_obj(); } void sib_type14_r11_s::eab_param_r11_c_::destroy_() { switch (type_) { case types::eab_common_r11: c.destroy(); break; case types::eab_per_plmn_list_r11: c.destroy(); break; default: break; } } void sib_type14_r11_s::eab_param_r11_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::eab_common_r11: c.init(); break; case types::eab_per_plmn_list_r11: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); } } sib_type14_r11_s::eab_param_r11_c_::eab_param_r11_c_(const sib_type14_r11_s::eab_param_r11_c_& other) { type_ = other.type(); switch (type_) { case types::eab_common_r11: c.init(other.c.get()); break; case types::eab_per_plmn_list_r11: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); } } sib_type14_r11_s::eab_param_r11_c_& sib_type14_r11_s::eab_param_r11_c_:: operator=(const sib_type14_r11_s::eab_param_r11_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::eab_common_r11: c.set(other.c.get()); break; case types::eab_per_plmn_list_r11: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); } return *this; } void sib_type14_r11_s::eab_param_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::eab_common_r11: j.write_fieldname("eab-Common-r11"); c.get().to_json(j); break; case types::eab_per_plmn_list_r11: j.start_array("eab-PerPLMN-List-r11"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); } j.end_obj(); } SRSASN_CODE sib_type14_r11_s::eab_param_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::eab_common_r11: HANDLE_CODE(c.get().pack(bref)); break; case types::eab_per_plmn_list_r11: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 6)); break; default: log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib_type14_r11_s::eab_param_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::eab_common_r11: HANDLE_CODE(c.get().unpack(bref)); break; case types::eab_per_plmn_list_r11: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 6)); break; default: log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType15-r11 ::= SEQUENCE SRSASN_CODE sib_type15_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(mbms_sai_intra_freq_r11_present, 1)); HANDLE_CODE(bref.pack(mbms_sai_inter_freq_list_r11_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (mbms_sai_intra_freq_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_intra_freq_r11, 1, 64, UnalignedIntegerPacker(0, 65535))); } if (mbms_sai_inter_freq_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_inter_freq_list_r11, 1, 8)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(mbms_sai_inter_freq_list_v1140_present != (mbms_sai_inter_freq_list_v1140.get() != NULL), __FILE__, __LINE__); group_flags[0] |= mbms_sai_inter_freq_list_v1140_present; rrc_asn1_warn_assert(mbms_intra_freq_carrier_type_r14_present != (mbms_intra_freq_carrier_type_r14.get() != NULL), __FILE__, __LINE__); group_flags[1] |= mbms_intra_freq_carrier_type_r14_present; rrc_asn1_warn_assert(mbms_inter_freq_carrier_type_list_r14_present != (mbms_inter_freq_carrier_type_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[1] |= mbms_inter_freq_carrier_type_list_r14_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mbms_sai_inter_freq_list_v1140_present, 1)); if (mbms_sai_inter_freq_list_v1140_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *mbms_sai_inter_freq_list_v1140, 1, 8)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mbms_intra_freq_carrier_type_r14_present, 1)); HANDLE_CODE(bref.pack(mbms_inter_freq_carrier_type_list_r14_present, 1)); if (mbms_intra_freq_carrier_type_r14_present) { HANDLE_CODE(mbms_intra_freq_carrier_type_r14->pack(bref)); } if (mbms_inter_freq_carrier_type_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *mbms_inter_freq_carrier_type_list_r14, 1, 8)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type15_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(mbms_sai_intra_freq_r11_present, 1)); HANDLE_CODE(bref.unpack(mbms_sai_inter_freq_list_r11_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (mbms_sai_intra_freq_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_intra_freq_r11, bref, 1, 64, UnalignedIntegerPacker(0, 65535))); } if (mbms_sai_inter_freq_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_inter_freq_list_r11, bref, 1, 8)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mbms_sai_inter_freq_list_v1140_present, 1)); if (mbms_sai_inter_freq_list_v1140_present) { mbms_sai_inter_freq_list_v1140 = make_copy_ptr(mbms_sai_inter_freq_list_v1140_l()); HANDLE_CODE(unpack_dyn_seq_of(*mbms_sai_inter_freq_list_v1140, bref, 1, 8)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mbms_intra_freq_carrier_type_r14_present, 1)); HANDLE_CODE(bref.unpack(mbms_inter_freq_carrier_type_list_r14_present, 1)); if (mbms_intra_freq_carrier_type_r14_present) { mbms_intra_freq_carrier_type_r14 = make_copy_ptr(mbms_carrier_type_r14_s()); HANDLE_CODE(mbms_intra_freq_carrier_type_r14->unpack(bref)); } if (mbms_inter_freq_carrier_type_list_r14_present) { mbms_inter_freq_carrier_type_list_r14 = make_copy_ptr(mbms_inter_freq_carrier_type_list_r14_l()); HANDLE_CODE(unpack_dyn_seq_of(*mbms_inter_freq_carrier_type_list_r14, bref, 1, 8)); } } } return SRSASN_SUCCESS; } void sib_type15_r11_s::to_json(json_writer& j) const { j.start_obj(); if (mbms_sai_intra_freq_r11_present) { j.start_array("mbms-SAI-IntraFreq-r11"); for (uint32_t i1 = 0; i1 < mbms_sai_intra_freq_r11.size(); ++i1) { j.write_int(mbms_sai_intra_freq_r11[i1]); } j.end_array(); } if (mbms_sai_inter_freq_list_r11_present) { j.start_array("mbms-SAI-InterFreqList-r11"); for (uint32_t i1 = 0; i1 < mbms_sai_inter_freq_list_r11.size(); ++i1) { mbms_sai_inter_freq_list_r11[i1].to_json(j); } j.end_array(); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (ext) { rrc_asn1_warn_assert(mbms_sai_inter_freq_list_v1140_present != (mbms_sai_inter_freq_list_v1140.get() != NULL), __FILE__, __LINE__); if (mbms_sai_inter_freq_list_v1140_present) { j.start_array("mbms-SAI-InterFreqList-v1140"); for (uint32_t i1 = 0; i1 < mbms_sai_inter_freq_list_v1140->size(); ++i1) { ((*mbms_sai_inter_freq_list_v1140)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(mbms_intra_freq_carrier_type_r14_present != (mbms_intra_freq_carrier_type_r14.get() != NULL), __FILE__, __LINE__); if (mbms_intra_freq_carrier_type_r14_present) { j.write_fieldname("mbms-IntraFreqCarrierType-r14"); mbms_intra_freq_carrier_type_r14->to_json(j); } rrc_asn1_warn_assert(mbms_inter_freq_carrier_type_list_r14_present != (mbms_inter_freq_carrier_type_list_r14.get() != NULL), __FILE__, __LINE__); if (mbms_inter_freq_carrier_type_list_r14_present) { j.start_array("mbms-InterFreqCarrierTypeList-r14"); for (uint32_t i1 = 0; i1 < mbms_inter_freq_carrier_type_list_r14->size(); ++i1) { ((*mbms_inter_freq_carrier_type_list_r14)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SystemInformationBlockType16-r11 ::= SEQUENCE SRSASN_CODE sib_type16_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(time_info_r11_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (time_info_r11_present) { HANDLE_CODE(bref.pack(time_info_r11.day_light_saving_time_r11_present, 1)); HANDLE_CODE(bref.pack(time_info_r11.leap_seconds_r11_present, 1)); HANDLE_CODE(bref.pack(time_info_r11.local_time_offset_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, time_info_r11.time_info_utc_r11, (uint64_t)0, (uint64_t)549755813887)); if (time_info_r11.day_light_saving_time_r11_present) { HANDLE_CODE(time_info_r11.day_light_saving_time_r11.pack(bref)); } if (time_info_r11.leap_seconds_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, time_info_r11.leap_seconds_r11, (int16_t)-127, (int16_t)128)); } if (time_info_r11.local_time_offset_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, time_info_r11.local_time_offset_r11, (int8_t)-63, (int8_t)64)); } } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(time_ref_info_r15_present != (time_ref_info_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= time_ref_info_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(time_ref_info_r15_present, 1)); if (time_ref_info_r15_present) { HANDLE_CODE(time_ref_info_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type16_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(time_info_r11_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (time_info_r11_present) { HANDLE_CODE(bref.unpack(time_info_r11.day_light_saving_time_r11_present, 1)); HANDLE_CODE(bref.unpack(time_info_r11.leap_seconds_r11_present, 1)); HANDLE_CODE(bref.unpack(time_info_r11.local_time_offset_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(time_info_r11.time_info_utc_r11, bref, (uint64_t)0, (uint64_t)549755813887)); if (time_info_r11.day_light_saving_time_r11_present) { HANDLE_CODE(time_info_r11.day_light_saving_time_r11.unpack(bref)); } if (time_info_r11.leap_seconds_r11_present) { HANDLE_CODE(unpack_unalign_integer(time_info_r11.leap_seconds_r11, bref, (int16_t)-127, (int16_t)128)); } if (time_info_r11.local_time_offset_r11_present) { HANDLE_CODE(unpack_unalign_integer(time_info_r11.local_time_offset_r11, bref, (int8_t)-63, (int8_t)64)); } } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(time_ref_info_r15_present, 1)); if (time_ref_info_r15_present) { time_ref_info_r15 = make_copy_ptr(time_ref_info_r15_s()); HANDLE_CODE(time_ref_info_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void sib_type16_r11_s::to_json(json_writer& j) const { j.start_obj(); if (time_info_r11_present) { j.write_fieldname("timeInfo-r11"); j.start_obj(); j.write_int("timeInfoUTC-r11", time_info_r11.time_info_utc_r11); if (time_info_r11.day_light_saving_time_r11_present) { j.write_str("dayLightSavingTime-r11", time_info_r11.day_light_saving_time_r11.to_string()); } if (time_info_r11.leap_seconds_r11_present) { j.write_int("leapSeconds-r11", time_info_r11.leap_seconds_r11); } if (time_info_r11.local_time_offset_r11_present) { j.write_int("localTimeOffset-r11", time_info_r11.local_time_offset_r11); } j.end_obj(); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (ext) { rrc_asn1_warn_assert(time_ref_info_r15_present != (time_ref_info_r15.get() != NULL), __FILE__, __LINE__); if (time_ref_info_r15_present) { j.write_fieldname("timeReferenceInfo-r15"); time_ref_info_r15->to_json(j); } } j.end_obj(); } // SystemInformationBlockType17-r12 ::= SEQUENCE SRSASN_CODE sib_type17_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(wlan_offload_info_per_plmn_list_r12_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (wlan_offload_info_per_plmn_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_offload_info_per_plmn_list_r12, 1, 6)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type17_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(wlan_offload_info_per_plmn_list_r12_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (wlan_offload_info_per_plmn_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_offload_info_per_plmn_list_r12, bref, 1, 6)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type17_r12_s::to_json(json_writer& j) const { j.start_obj(); if (wlan_offload_info_per_plmn_list_r12_present) { j.start_array("wlan-OffloadInfoPerPLMN-List-r12"); for (uint32_t i1 = 0; i1 < wlan_offload_info_per_plmn_list_r12.size(); ++i1) { wlan_offload_info_per_plmn_list_r12[i1].to_json(j); } j.end_array(); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); } // SystemInformationBlockType18-r12 ::= SEQUENCE SRSASN_CODE sib_type18_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(comm_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (comm_cfg_r12_present) { HANDLE_CODE(bref.pack(comm_cfg_r12.comm_tx_pool_normal_common_r12_present, 1)); HANDLE_CODE(bref.pack(comm_cfg_r12.comm_tx_pool_exceptional_r12_present, 1)); HANDLE_CODE(bref.pack(comm_cfg_r12.comm_sync_cfg_r12_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_rx_pool_r12, 1, 16)); if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_tx_pool_normal_common_r12, 1, 4)); } if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_tx_pool_exceptional_r12, 1, 4)); } if (comm_cfg_r12.comm_sync_cfg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_sync_cfg_r12, 1, 16)); } } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(comm_tx_pool_normal_common_ext_r13_present != (comm_tx_pool_normal_common_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= comm_tx_pool_normal_common_ext_r13_present; group_flags[0] |= comm_tx_res_uc_req_allowed_r13_present; group_flags[0] |= comm_tx_allow_relay_common_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(comm_tx_pool_normal_common_ext_r13_present, 1)); HANDLE_CODE(bref.pack(comm_tx_res_uc_req_allowed_r13_present, 1)); HANDLE_CODE(bref.pack(comm_tx_allow_relay_common_r13_present, 1)); if (comm_tx_pool_normal_common_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *comm_tx_pool_normal_common_ext_r13, 1, 4)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type18_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(comm_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (comm_cfg_r12_present) { HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_tx_pool_normal_common_r12_present, 1)); HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_tx_pool_exceptional_r12_present, 1)); HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_sync_cfg_r12_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_rx_pool_r12, bref, 1, 16)); if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_tx_pool_normal_common_r12, bref, 1, 4)); } if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_tx_pool_exceptional_r12, bref, 1, 4)); } if (comm_cfg_r12.comm_sync_cfg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_sync_cfg_r12, bref, 1, 16)); } } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(comm_tx_pool_normal_common_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(comm_tx_res_uc_req_allowed_r13_present, 1)); HANDLE_CODE(bref.unpack(comm_tx_allow_relay_common_r13_present, 1)); if (comm_tx_pool_normal_common_ext_r13_present) { comm_tx_pool_normal_common_ext_r13 = make_copy_ptr(sl_comm_tx_pool_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*comm_tx_pool_normal_common_ext_r13, bref, 1, 4)); } } } return SRSASN_SUCCESS; } void sib_type18_r12_s::to_json(json_writer& j) const { j.start_obj(); if (comm_cfg_r12_present) { j.write_fieldname("commConfig-r12"); j.start_obj(); j.start_array("commRxPool-r12"); for (uint32_t i1 = 0; i1 < comm_cfg_r12.comm_rx_pool_r12.size(); ++i1) { comm_cfg_r12.comm_rx_pool_r12[i1].to_json(j); } j.end_array(); if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { j.start_array("commTxPoolNormalCommon-r12"); for (uint32_t i1 = 0; i1 < comm_cfg_r12.comm_tx_pool_normal_common_r12.size(); ++i1) { comm_cfg_r12.comm_tx_pool_normal_common_r12[i1].to_json(j); } j.end_array(); } if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { j.start_array("commTxPoolExceptional-r12"); for (uint32_t i1 = 0; i1 < comm_cfg_r12.comm_tx_pool_exceptional_r12.size(); ++i1) { comm_cfg_r12.comm_tx_pool_exceptional_r12[i1].to_json(j); } j.end_array(); } if (comm_cfg_r12.comm_sync_cfg_r12_present) { j.start_array("commSyncConfig-r12"); for (uint32_t i1 = 0; i1 < comm_cfg_r12.comm_sync_cfg_r12.size(); ++i1) { comm_cfg_r12.comm_sync_cfg_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (ext) { rrc_asn1_warn_assert(comm_tx_pool_normal_common_ext_r13_present != (comm_tx_pool_normal_common_ext_r13.get() != NULL), __FILE__, __LINE__); if (comm_tx_pool_normal_common_ext_r13_present) { j.start_array("commTxPoolNormalCommonExt-r13"); for (uint32_t i1 = 0; i1 < comm_tx_pool_normal_common_ext_r13->size(); ++i1) { ((*comm_tx_pool_normal_common_ext_r13)[i1]).to_json(j); } j.end_array(); } if (comm_tx_res_uc_req_allowed_r13_present) { j.write_str("commTxResourceUC-ReqAllowed-r13", "true"); } if (comm_tx_allow_relay_common_r13_present) { j.write_str("commTxAllowRelayCommon-r13", "true"); } } j.end_obj(); } // SystemInformationBlockType19-r12 ::= SEQUENCE SRSASN_CODE sib_type19_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(disc_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(disc_inter_freq_list_r12_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (disc_cfg_r12_present) { HANDLE_CODE(bref.pack(disc_cfg_r12.disc_tx_pool_common_r12_present, 1)); HANDLE_CODE(bref.pack(disc_cfg_r12.disc_tx_pwr_info_r12_present, 1)); HANDLE_CODE(bref.pack(disc_cfg_r12.disc_sync_cfg_r12_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_rx_pool_r12, 1, 16)); if (disc_cfg_r12.disc_tx_pool_common_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_tx_pool_common_r12, 1, 4)); } if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { HANDLE_CODE( pack_fixed_seq_of(bref, &(disc_cfg_r12.disc_tx_pwr_info_r12)[0], disc_cfg_r12.disc_tx_pwr_info_r12.size())); } if (disc_cfg_r12.disc_sync_cfg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_sync_cfg_r12, 1, 16)); } } if (disc_inter_freq_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_inter_freq_list_r12, 1, 8)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(disc_cfg_v1310_present != (disc_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[0] |= disc_cfg_v1310_present; rrc_asn1_warn_assert(disc_cfg_relay_r13_present != (disc_cfg_relay_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= disc_cfg_relay_r13_present; rrc_asn1_warn_assert(disc_cfg_ps_minus13_present != (disc_cfg_ps_minus13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= disc_cfg_ps_minus13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(disc_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(disc_cfg_relay_r13_present, 1)); HANDLE_CODE(bref.pack(disc_cfg_ps_minus13_present, 1)); if (disc_cfg_v1310_present) { HANDLE_CODE(bref.pack(disc_cfg_v1310->disc_inter_freq_list_v1310_present, 1)); HANDLE_CODE(bref.pack(disc_cfg_v1310->gap_requests_allowed_common_present, 1)); if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_v1310->disc_inter_freq_list_v1310, 1, 8)); } } if (disc_cfg_relay_r13_present) { HANDLE_CODE(disc_cfg_relay_r13->relay_ue_cfg_r13.pack(bref)); HANDLE_CODE(disc_cfg_relay_r13->remote_ue_cfg_r13.pack(bref)); } if (disc_cfg_ps_minus13_present) { HANDLE_CODE(bref.pack(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_ps_minus13->disc_rx_pool_ps_r13, 1, 16)); if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13, 1, 4)); } } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type19_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(disc_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_inter_freq_list_r12_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (disc_cfg_r12_present) { HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_tx_pool_common_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_tx_pwr_info_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_sync_cfg_r12_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_rx_pool_r12, bref, 1, 16)); if (disc_cfg_r12.disc_tx_pool_common_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_tx_pool_common_r12, bref, 1, 4)); } if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { HANDLE_CODE( unpack_fixed_seq_of(&(disc_cfg_r12.disc_tx_pwr_info_r12)[0], bref, disc_cfg_r12.disc_tx_pwr_info_r12.size())); } if (disc_cfg_r12.disc_sync_cfg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_sync_cfg_r12, bref, 1, 16)); } } if (disc_inter_freq_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_inter_freq_list_r12, bref, 1, 8)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(disc_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(disc_cfg_relay_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_cfg_ps_minus13_present, 1)); if (disc_cfg_v1310_present) { disc_cfg_v1310 = make_copy_ptr(disc_cfg_v1310_s_()); HANDLE_CODE(bref.unpack(disc_cfg_v1310->disc_inter_freq_list_v1310_present, 1)); HANDLE_CODE(bref.unpack(disc_cfg_v1310->gap_requests_allowed_common_present, 1)); if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_v1310->disc_inter_freq_list_v1310, bref, 1, 8)); } } if (disc_cfg_relay_r13_present) { disc_cfg_relay_r13 = make_copy_ptr(disc_cfg_relay_r13_s_()); HANDLE_CODE(disc_cfg_relay_r13->relay_ue_cfg_r13.unpack(bref)); HANDLE_CODE(disc_cfg_relay_r13->remote_ue_cfg_r13.unpack(bref)); } if (disc_cfg_ps_minus13_present) { disc_cfg_ps_minus13 = make_copy_ptr(disc_cfg_ps_minus13_s_()); HANDLE_CODE(bref.unpack(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_ps_minus13->disc_rx_pool_ps_r13, bref, 1, 16)); if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13, bref, 1, 4)); } } } } return SRSASN_SUCCESS; } void sib_type19_r12_s::to_json(json_writer& j) const { j.start_obj(); if (disc_cfg_r12_present) { j.write_fieldname("discConfig-r12"); j.start_obj(); j.start_array("discRxPool-r12"); for (uint32_t i1 = 0; i1 < disc_cfg_r12.disc_rx_pool_r12.size(); ++i1) { disc_cfg_r12.disc_rx_pool_r12[i1].to_json(j); } j.end_array(); if (disc_cfg_r12.disc_tx_pool_common_r12_present) { j.start_array("discTxPoolCommon-r12"); for (uint32_t i1 = 0; i1 < disc_cfg_r12.disc_tx_pool_common_r12.size(); ++i1) { disc_cfg_r12.disc_tx_pool_common_r12[i1].to_json(j); } j.end_array(); } if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { j.start_array("discTxPowerInfo-r12"); for (uint32_t i1 = 0; i1 < disc_cfg_r12.disc_tx_pwr_info_r12.size(); ++i1) { disc_cfg_r12.disc_tx_pwr_info_r12[i1].to_json(j); } j.end_array(); } if (disc_cfg_r12.disc_sync_cfg_r12_present) { j.start_array("discSyncConfig-r12"); for (uint32_t i1 = 0; i1 < disc_cfg_r12.disc_sync_cfg_r12.size(); ++i1) { disc_cfg_r12.disc_sync_cfg_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); } if (disc_inter_freq_list_r12_present) { j.start_array("discInterFreqList-r12"); for (uint32_t i1 = 0; i1 < disc_inter_freq_list_r12.size(); ++i1) { disc_inter_freq_list_r12[i1].to_json(j); } j.end_array(); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (ext) { rrc_asn1_warn_assert(disc_cfg_v1310_present != (disc_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (disc_cfg_v1310_present) { j.write_fieldname("discConfig-v1310"); j.start_obj(); if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { j.start_array("discInterFreqList-v1310"); for (uint32_t i1 = 0; i1 < disc_cfg_v1310->disc_inter_freq_list_v1310.size(); ++i1) { disc_cfg_v1310->disc_inter_freq_list_v1310[i1].to_json(j); } j.end_array(); } if (disc_cfg_v1310->gap_requests_allowed_common_present) { j.write_str("gapRequestsAllowedCommon", "true"); } j.end_obj(); } rrc_asn1_warn_assert(disc_cfg_relay_r13_present != (disc_cfg_relay_r13.get() != NULL), __FILE__, __LINE__); if (disc_cfg_relay_r13_present) { j.write_fieldname("discConfigRelay-r13"); j.start_obj(); j.write_fieldname("relayUE-Config-r13"); disc_cfg_relay_r13->relay_ue_cfg_r13.to_json(j); j.write_fieldname("remoteUE-Config-r13"); disc_cfg_relay_r13->remote_ue_cfg_r13.to_json(j); j.end_obj(); } rrc_asn1_warn_assert(disc_cfg_ps_minus13_present != (disc_cfg_ps_minus13.get() != NULL), __FILE__, __LINE__); if (disc_cfg_ps_minus13_present) { j.write_fieldname("discConfigPS-13"); j.start_obj(); j.start_array("discRxPoolPS-r13"); for (uint32_t i1 = 0; i1 < disc_cfg_ps_minus13->disc_rx_pool_ps_r13.size(); ++i1) { disc_cfg_ps_minus13->disc_rx_pool_ps_r13[i1].to_json(j); } j.end_array(); if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { j.start_array("discTxPoolPS-Common-r13"); for (uint32_t i1 = 0; i1 < disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13.size(); ++i1) { disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } } j.end_obj(); } // SystemInformationBlockType2 ::= SEQUENCE SRSASN_CODE sib_type2_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ac_barr_info_present, 1)); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_present, 1)); if (ac_barr_info_present) { HANDLE_CODE(bref.pack(ac_barr_info.ac_barr_for_mo_sig_present, 1)); HANDLE_CODE(bref.pack(ac_barr_info.ac_barr_for_mo_data_present, 1)); HANDLE_CODE(bref.pack(ac_barr_info.ac_barr_for_emergency, 1)); if (ac_barr_info.ac_barr_for_mo_sig_present) { HANDLE_CODE(ac_barr_info.ac_barr_for_mo_sig.pack(bref)); } if (ac_barr_info.ac_barr_for_mo_data_present) { HANDLE_CODE(ac_barr_info.ac_barr_for_mo_data.pack(bref)); } } HANDLE_CODE(rr_cfg_common.pack(bref)); HANDLE_CODE(ue_timers_and_consts.pack(bref)); HANDLE_CODE(bref.pack(freq_info.ul_carrier_freq_present, 1)); HANDLE_CODE(bref.pack(freq_info.ul_bw_present, 1)); if (freq_info.ul_carrier_freq_present) { HANDLE_CODE(pack_unalign_integer(bref, freq_info.ul_carrier_freq, (uint16_t)0, (uint16_t)65535)); } if (freq_info.ul_bw_present) { HANDLE_CODE(pack_enum(bref, freq_info.ul_bw)); } HANDLE_CODE(pack_unalign_integer(bref, freq_info.add_spec_emission, (uint8_t)1, (uint8_t)32)); if (mbsfn_sf_cfg_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mbsfn_sf_cfg_list, 1, 8)); } HANDLE_CODE(pack_enum(bref, time_align_timer_common)); if (ext) { ext_groups_header group_flags(10, 1); rrc_asn1_warn_assert(ssac_barr_for_mmtel_voice_r9_present != (ssac_barr_for_mmtel_voice_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ssac_barr_for_mmtel_voice_r9_present; rrc_asn1_warn_assert(ssac_barr_for_mmtel_video_r9_present != (ssac_barr_for_mmtel_video_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ssac_barr_for_mmtel_video_r9_present; rrc_asn1_warn_assert(ac_barr_for_csfb_r10_present != (ac_barr_for_csfb_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ac_barr_for_csfb_r10_present; group_flags[2] |= ac_barr_skip_for_mmtel_voice_r12_present; group_flags[2] |= ac_barr_skip_for_mmtel_video_r12_present; group_flags[2] |= ac_barr_skip_for_sms_r12_present; rrc_asn1_warn_assert(ac_barr_per_plmn_list_r12_present != (ac_barr_per_plmn_list_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= ac_barr_per_plmn_list_r12_present; group_flags[3] |= voice_service_cause_ind_r12_present; rrc_asn1_warn_assert(acdc_barr_for_common_r13_present != (acdc_barr_for_common_r13.get() != NULL), __FILE__, __LINE__); group_flags[4] |= acdc_barr_for_common_r13_present; rrc_asn1_warn_assert(acdc_barr_per_plmn_list_r13_present != (acdc_barr_per_plmn_list_r13.get() != NULL), __FILE__, __LINE__); group_flags[4] |= acdc_barr_per_plmn_list_r13_present; rrc_asn1_warn_assert(udt_restricting_for_common_r13_present != (udt_restricting_for_common_r13.get() != NULL), __FILE__, __LINE__); group_flags[5] |= udt_restricting_for_common_r13_present; rrc_asn1_warn_assert(udt_restricting_per_plmn_list_r13_present != (udt_restricting_per_plmn_list_r13.get() != NULL), __FILE__, __LINE__); group_flags[5] |= udt_restricting_per_plmn_list_r13_present; rrc_asn1_warn_assert(c_io_t_eps_optim_info_r13_present != (c_io_t_eps_optim_info_r13.get() != NULL), __FILE__, __LINE__); group_flags[5] |= c_io_t_eps_optim_info_r13_present; group_flags[5] |= use_full_resume_id_r13_present; group_flags[6] |= unicast_freq_hop_ind_r13_present; rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); group_flags[7] |= mbsfn_sf_cfg_list_v1430_present; group_flags[7] |= video_service_cause_ind_r14_present; rrc_asn1_warn_assert(plmn_info_list_r15_present != (plmn_info_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[8] |= plmn_info_list_r15_present; group_flags[9] |= cp_edt_r15_present; group_flags[9] |= up_edt_r15_present; group_flags[9] |= idle_mode_meass_r15_present; group_flags[9] |= reduced_cp_latency_enabled_r15_present; group_flags.pack_nof_groups(bref); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); group_flags.pack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ssac_barr_for_mmtel_voice_r9_present, 1)); HANDLE_CODE(bref.pack(ssac_barr_for_mmtel_video_r9_present, 1)); if (ssac_barr_for_mmtel_voice_r9_present) { HANDLE_CODE(ssac_barr_for_mmtel_voice_r9->pack(bref)); } if (ssac_barr_for_mmtel_video_r9_present) { HANDLE_CODE(ssac_barr_for_mmtel_video_r9->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ac_barr_for_csfb_r10_present, 1)); if (ac_barr_for_csfb_r10_present) { HANDLE_CODE(ac_barr_for_csfb_r10->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ac_barr_skip_for_mmtel_voice_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_skip_for_mmtel_video_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_skip_for_sms_r12_present, 1)); HANDLE_CODE(bref.pack(ac_barr_per_plmn_list_r12_present, 1)); if (ac_barr_per_plmn_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *ac_barr_per_plmn_list_r12, 1, 6)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(voice_service_cause_ind_r12_present, 1)); } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(acdc_barr_for_common_r13_present, 1)); HANDLE_CODE(bref.pack(acdc_barr_per_plmn_list_r13_present, 1)); if (acdc_barr_for_common_r13_present) { HANDLE_CODE(acdc_barr_for_common_r13->pack(bref)); } if (acdc_barr_per_plmn_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *acdc_barr_per_plmn_list_r13, 1, 6)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(udt_restricting_for_common_r13_present, 1)); HANDLE_CODE(bref.pack(udt_restricting_per_plmn_list_r13_present, 1)); HANDLE_CODE(bref.pack(c_io_t_eps_optim_info_r13_present, 1)); HANDLE_CODE(bref.pack(use_full_resume_id_r13_present, 1)); if (udt_restricting_for_common_r13_present) { HANDLE_CODE(udt_restricting_for_common_r13->pack(bref)); } if (udt_restricting_per_plmn_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *udt_restricting_per_plmn_list_r13, 1, 6)); } if (c_io_t_eps_optim_info_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *c_io_t_eps_optim_info_r13, 1, 6)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(unicast_freq_hop_ind_r13_present, 1)); } if (group_flags[7]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_v1430_present, 1)); HANDLE_CODE(bref.pack(video_service_cause_ind_r14_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *mbsfn_sf_cfg_list_v1430, 1, 8)); } } if (group_flags[8]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(plmn_info_list_r15_present, 1)); if (plmn_info_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *plmn_info_list_r15, 1, 6)); } } if (group_flags[9]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cp_edt_r15_present, 1)); HANDLE_CODE(bref.pack(up_edt_r15_present, 1)); HANDLE_CODE(bref.pack(idle_mode_meass_r15_present, 1)); HANDLE_CODE(bref.pack(reduced_cp_latency_enabled_r15_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type2_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ac_barr_info_present, 1)); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_present, 1)); if (ac_barr_info_present) { HANDLE_CODE(bref.unpack(ac_barr_info.ac_barr_for_mo_sig_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_info.ac_barr_for_mo_data_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_info.ac_barr_for_emergency, 1)); if (ac_barr_info.ac_barr_for_mo_sig_present) { HANDLE_CODE(ac_barr_info.ac_barr_for_mo_sig.unpack(bref)); } if (ac_barr_info.ac_barr_for_mo_data_present) { HANDLE_CODE(ac_barr_info.ac_barr_for_mo_data.unpack(bref)); } } HANDLE_CODE(rr_cfg_common.unpack(bref)); HANDLE_CODE(ue_timers_and_consts.unpack(bref)); HANDLE_CODE(bref.unpack(freq_info.ul_carrier_freq_present, 1)); HANDLE_CODE(bref.unpack(freq_info.ul_bw_present, 1)); if (freq_info.ul_carrier_freq_present) { HANDLE_CODE(unpack_unalign_integer(freq_info.ul_carrier_freq, bref, (uint16_t)0, (uint16_t)65535)); } if (freq_info.ul_bw_present) { HANDLE_CODE(unpack_enum(freq_info.ul_bw, bref)); } HANDLE_CODE(unpack_unalign_integer(freq_info.add_spec_emission, bref, (uint8_t)1, (uint8_t)32)); if (mbsfn_sf_cfg_list_present) { HANDLE_CODE(unpack_dyn_seq_of(mbsfn_sf_cfg_list, bref, 1, 8)); } HANDLE_CODE(unpack_enum(time_align_timer_common, bref)); if (ext) { ext_groups_header group_flags(10, 1); group_flags.unpack_nof_groups(bref); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); group_flags.unpack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ssac_barr_for_mmtel_voice_r9_present, 1)); HANDLE_CODE(bref.unpack(ssac_barr_for_mmtel_video_r9_present, 1)); if (ssac_barr_for_mmtel_voice_r9_present) { ssac_barr_for_mmtel_voice_r9 = make_copy_ptr(ac_barr_cfg_s()); HANDLE_CODE(ssac_barr_for_mmtel_voice_r9->unpack(bref)); } if (ssac_barr_for_mmtel_video_r9_present) { ssac_barr_for_mmtel_video_r9 = make_copy_ptr(ac_barr_cfg_s()); HANDLE_CODE(ssac_barr_for_mmtel_video_r9->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ac_barr_for_csfb_r10_present, 1)); if (ac_barr_for_csfb_r10_present) { ac_barr_for_csfb_r10 = make_copy_ptr(ac_barr_cfg_s()); HANDLE_CODE(ac_barr_for_csfb_r10->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ac_barr_skip_for_mmtel_voice_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_skip_for_mmtel_video_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_skip_for_sms_r12_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_per_plmn_list_r12_present, 1)); if (ac_barr_per_plmn_list_r12_present) { ac_barr_per_plmn_list_r12 = make_copy_ptr(ac_barr_per_plmn_list_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*ac_barr_per_plmn_list_r12, bref, 1, 6)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(voice_service_cause_ind_r12_present, 1)); } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(acdc_barr_for_common_r13_present, 1)); HANDLE_CODE(bref.unpack(acdc_barr_per_plmn_list_r13_present, 1)); if (acdc_barr_for_common_r13_present) { acdc_barr_for_common_r13 = make_copy_ptr(acdc_barr_for_common_r13_s()); HANDLE_CODE(acdc_barr_for_common_r13->unpack(bref)); } if (acdc_barr_per_plmn_list_r13_present) { acdc_barr_per_plmn_list_r13 = make_copy_ptr(acdc_barr_per_plmn_list_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*acdc_barr_per_plmn_list_r13, bref, 1, 6)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(udt_restricting_for_common_r13_present, 1)); HANDLE_CODE(bref.unpack(udt_restricting_per_plmn_list_r13_present, 1)); HANDLE_CODE(bref.unpack(c_io_t_eps_optim_info_r13_present, 1)); HANDLE_CODE(bref.unpack(use_full_resume_id_r13_present, 1)); if (udt_restricting_for_common_r13_present) { udt_restricting_for_common_r13 = make_copy_ptr(udt_restricting_r13_s()); HANDLE_CODE(udt_restricting_for_common_r13->unpack(bref)); } if (udt_restricting_per_plmn_list_r13_present) { udt_restricting_per_plmn_list_r13 = make_copy_ptr(udt_restricting_per_plmn_list_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*udt_restricting_per_plmn_list_r13, bref, 1, 6)); } if (c_io_t_eps_optim_info_r13_present) { c_io_t_eps_optim_info_r13 = make_copy_ptr(ciot_eps_optim_info_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*c_io_t_eps_optim_info_r13, bref, 1, 6)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(unicast_freq_hop_ind_r13_present, 1)); } if (group_flags[7]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_v1430_present, 1)); HANDLE_CODE(bref.unpack(video_service_cause_ind_r14_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { mbsfn_sf_cfg_list_v1430 = make_copy_ptr(mbsfn_sf_cfg_list_v1430_l()); HANDLE_CODE(unpack_dyn_seq_of(*mbsfn_sf_cfg_list_v1430, bref, 1, 8)); } } if (group_flags[8]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(plmn_info_list_r15_present, 1)); if (plmn_info_list_r15_present) { plmn_info_list_r15 = make_copy_ptr(plmn_info_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*plmn_info_list_r15, bref, 1, 6)); } } if (group_flags[9]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cp_edt_r15_present, 1)); HANDLE_CODE(bref.unpack(up_edt_r15_present, 1)); HANDLE_CODE(bref.unpack(idle_mode_meass_r15_present, 1)); HANDLE_CODE(bref.unpack(reduced_cp_latency_enabled_r15_present, 1)); } } return SRSASN_SUCCESS; } void sib_type2_s::to_json(json_writer& j) const { j.start_obj(); if (ac_barr_info_present) { j.write_fieldname("ac-BarringInfo"); j.start_obj(); j.write_bool("ac-BarringForEmergency", ac_barr_info.ac_barr_for_emergency); if (ac_barr_info.ac_barr_for_mo_sig_present) { j.write_fieldname("ac-BarringForMO-Signalling"); ac_barr_info.ac_barr_for_mo_sig.to_json(j); } if (ac_barr_info.ac_barr_for_mo_data_present) { j.write_fieldname("ac-BarringForMO-Data"); ac_barr_info.ac_barr_for_mo_data.to_json(j); } j.end_obj(); } j.write_fieldname("radioResourceConfigCommon"); rr_cfg_common.to_json(j); j.write_fieldname("ue-TimersAndConstants"); ue_timers_and_consts.to_json(j); j.write_fieldname("freqInfo"); j.start_obj(); if (freq_info.ul_carrier_freq_present) { j.write_int("ul-CarrierFreq", freq_info.ul_carrier_freq); } if (freq_info.ul_bw_present) { j.write_str("ul-Bandwidth", freq_info.ul_bw.to_string()); } j.write_int("additionalSpectrumEmission", freq_info.add_spec_emission); j.end_obj(); if (mbsfn_sf_cfg_list_present) { j.start_array("mbsfn-SubframeConfigList"); for (uint32_t i1 = 0; i1 < mbsfn_sf_cfg_list.size(); ++i1) { mbsfn_sf_cfg_list[i1].to_json(j); } j.end_array(); } j.write_str("timeAlignmentTimerCommon", time_align_timer_common.to_string()); if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } rrc_asn1_warn_assert(ssac_barr_for_mmtel_voice_r9_present != (ssac_barr_for_mmtel_voice_r9.get() != NULL), __FILE__, __LINE__); if (ssac_barr_for_mmtel_voice_r9_present) { j.write_fieldname("ssac-BarringForMMTEL-Voice-r9"); ssac_barr_for_mmtel_voice_r9->to_json(j); } rrc_asn1_warn_assert(ssac_barr_for_mmtel_video_r9_present != (ssac_barr_for_mmtel_video_r9.get() != NULL), __FILE__, __LINE__); if (ssac_barr_for_mmtel_video_r9_present) { j.write_fieldname("ssac-BarringForMMTEL-Video-r9"); ssac_barr_for_mmtel_video_r9->to_json(j); } rrc_asn1_warn_assert(ac_barr_for_csfb_r10_present != (ac_barr_for_csfb_r10.get() != NULL), __FILE__, __LINE__); if (ac_barr_for_csfb_r10_present) { j.write_fieldname("ac-BarringForCSFB-r10"); ac_barr_for_csfb_r10->to_json(j); } if (ac_barr_skip_for_mmtel_voice_r12_present) { j.write_str("ac-BarringSkipForMMTELVoice-r12", "true"); } if (ac_barr_skip_for_mmtel_video_r12_present) { j.write_str("ac-BarringSkipForMMTELVideo-r12", "true"); } if (ac_barr_skip_for_sms_r12_present) { j.write_str("ac-BarringSkipForSMS-r12", "true"); } rrc_asn1_warn_assert(ac_barr_per_plmn_list_r12_present != (ac_barr_per_plmn_list_r12.get() != NULL), __FILE__, __LINE__); if (ac_barr_per_plmn_list_r12_present) { j.start_array("ac-BarringPerPLMN-List-r12"); for (uint32_t i1 = 0; i1 < ac_barr_per_plmn_list_r12->size(); ++i1) { ((*ac_barr_per_plmn_list_r12)[i1]).to_json(j); } j.end_array(); } if (voice_service_cause_ind_r12_present) { j.write_str("voiceServiceCauseIndication-r12", "true"); } rrc_asn1_warn_assert(acdc_barr_for_common_r13_present != (acdc_barr_for_common_r13.get() != NULL), __FILE__, __LINE__); if (acdc_barr_for_common_r13_present) { j.write_fieldname("acdc-BarringForCommon-r13"); acdc_barr_for_common_r13->to_json(j); } rrc_asn1_warn_assert(acdc_barr_per_plmn_list_r13_present != (acdc_barr_per_plmn_list_r13.get() != NULL), __FILE__, __LINE__); if (acdc_barr_per_plmn_list_r13_present) { j.start_array("acdc-BarringPerPLMN-List-r13"); for (uint32_t i1 = 0; i1 < acdc_barr_per_plmn_list_r13->size(); ++i1) { ((*acdc_barr_per_plmn_list_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(udt_restricting_for_common_r13_present != (udt_restricting_for_common_r13.get() != NULL), __FILE__, __LINE__); if (udt_restricting_for_common_r13_present) { j.write_fieldname("udt-RestrictingForCommon-r13"); udt_restricting_for_common_r13->to_json(j); } rrc_asn1_warn_assert(udt_restricting_per_plmn_list_r13_present != (udt_restricting_per_plmn_list_r13.get() != NULL), __FILE__, __LINE__); if (udt_restricting_per_plmn_list_r13_present) { j.start_array("udt-RestrictingPerPLMN-List-r13"); for (uint32_t i1 = 0; i1 < udt_restricting_per_plmn_list_r13->size(); ++i1) { ((*udt_restricting_per_plmn_list_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(c_io_t_eps_optim_info_r13_present != (c_io_t_eps_optim_info_r13.get() != NULL), __FILE__, __LINE__); if (c_io_t_eps_optim_info_r13_present) { j.start_array("cIoT-EPS-OptimisationInfo-r13"); for (uint32_t i1 = 0; i1 < c_io_t_eps_optim_info_r13->size(); ++i1) { ((*c_io_t_eps_optim_info_r13)[i1]).to_json(j); } j.end_array(); } if (use_full_resume_id_r13_present) { j.write_str("useFullResumeID-r13", "true"); } if (unicast_freq_hop_ind_r13_present) { j.write_str("unicastFreqHoppingInd-r13", "true"); } rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); if (mbsfn_sf_cfg_list_v1430_present) { j.start_array("mbsfn-SubframeConfigList-v1430"); for (uint32_t i1 = 0; i1 < mbsfn_sf_cfg_list_v1430->size(); ++i1) { ((*mbsfn_sf_cfg_list_v1430)[i1]).to_json(j); } j.end_array(); } if (video_service_cause_ind_r14_present) { j.write_str("videoServiceCauseIndication-r14", "true"); } rrc_asn1_warn_assert(plmn_info_list_r15_present != (plmn_info_list_r15.get() != NULL), __FILE__, __LINE__); if (plmn_info_list_r15_present) { j.start_array("plmn-InfoList-r15"); for (uint32_t i1 = 0; i1 < plmn_info_list_r15->size(); ++i1) { ((*plmn_info_list_r15)[i1]).to_json(j); } j.end_array(); } if (cp_edt_r15_present) { j.write_str("cp-EDT-r15", "true"); } if (up_edt_r15_present) { j.write_str("up-EDT-r15", "true"); } if (idle_mode_meass_r15_present) { j.write_str("idleModeMeasurements-r15", "true"); } if (reduced_cp_latency_enabled_r15_present) { j.write_str("reducedCP-LatencyEnabled-r15", "true"); } } j.end_obj(); } // SystemInformationBlockType20-r13 ::= SEQUENCE SRSASN_CODE sib_type20_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sc_mcch_dur_r13_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(pack_enum(bref, sc_mcch_repeat_period_r13)); HANDLE_CODE(pack_unalign_integer(bref, sc_mcch_offset_r13, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(pack_unalign_integer(bref, sc_mcch_first_sf_r13, (uint8_t)0, (uint8_t)9)); if (sc_mcch_dur_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, sc_mcch_dur_r13, (uint8_t)2, (uint8_t)9)); } HANDLE_CODE(pack_enum(bref, sc_mcch_mod_period_r13)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(br_bcch_cfg_r14_present != (br_bcch_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[0] |= br_bcch_cfg_r14_present; rrc_asn1_warn_assert(sc_mcch_sched_info_r14_present != (sc_mcch_sched_info_r14.get() != NULL), __FILE__, __LINE__); group_flags[0] |= sc_mcch_sched_info_r14_present; group_flags[0] |= pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present; group_flags[0] |= pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present; group_flags[1] |= sc_mcch_repeat_period_v1470_present; group_flags[1] |= sc_mcch_mod_period_v1470_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(br_bcch_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(sc_mcch_sched_info_r14_present, 1)); HANDLE_CODE(bref.pack(pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present, 1)); HANDLE_CODE(bref.pack(pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present, 1)); if (br_bcch_cfg_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_enum(bref, br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14)); HANDLE_CODE(br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.pack(bref)); HANDLE_CODE(pack_enum(bref, br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14)); HANDLE_CODE( pack_unalign_integer(bref, br_bcch_cfg_r14->sc_mcch_carrier_freq_r14, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(pack_unalign_integer(bref, br_bcch_cfg_r14->sc_mcch_offset_br_r14, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(pack_enum(bref, br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14)); HANDLE_CODE(pack_enum(bref, br_bcch_cfg_r14->sc_mcch_mod_period_br_r14)); } if (sc_mcch_sched_info_r14_present) { HANDLE_CODE(sc_mcch_sched_info_r14->pack(bref)); } if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { HANDLE_CODE(pack_enum(bref, pdsch_max_num_repeat_cemode_a_sc_mtch_r14)); } if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { HANDLE_CODE(pack_enum(bref, pdsch_max_num_repeat_cemode_b_sc_mtch_r14)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sc_mcch_repeat_period_v1470_present, 1)); HANDLE_CODE(bref.pack(sc_mcch_mod_period_v1470_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type20_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sc_mcch_dur_r13_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(unpack_enum(sc_mcch_repeat_period_r13, bref)); HANDLE_CODE(unpack_unalign_integer(sc_mcch_offset_r13, bref, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(unpack_unalign_integer(sc_mcch_first_sf_r13, bref, (uint8_t)0, (uint8_t)9)); if (sc_mcch_dur_r13_present) { HANDLE_CODE(unpack_unalign_integer(sc_mcch_dur_r13, bref, (uint8_t)2, (uint8_t)9)); } HANDLE_CODE(unpack_enum(sc_mcch_mod_period_r13, bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(br_bcch_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(sc_mcch_sched_info_r14_present, 1)); HANDLE_CODE(bref.unpack(pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present, 1)); HANDLE_CODE(bref.unpack(pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present, 1)); if (br_bcch_cfg_r14_present) { br_bcch_cfg_r14 = make_copy_ptr(br_bcch_cfg_r14_s_()); HANDLE_CODE(unpack_unalign_integer(br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_enum(br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14, bref)); HANDLE_CODE(br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.unpack(bref)); HANDLE_CODE(unpack_enum(br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14, bref)); HANDLE_CODE( unpack_unalign_integer(br_bcch_cfg_r14->sc_mcch_carrier_freq_r14, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(unpack_unalign_integer(br_bcch_cfg_r14->sc_mcch_offset_br_r14, bref, (uint8_t)0, (uint8_t)10)); HANDLE_CODE(unpack_enum(br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14, bref)); HANDLE_CODE(unpack_enum(br_bcch_cfg_r14->sc_mcch_mod_period_br_r14, bref)); } if (sc_mcch_sched_info_r14_present) { sc_mcch_sched_info_r14 = make_copy_ptr(sc_mcch_sched_info_r14_s()); HANDLE_CODE(sc_mcch_sched_info_r14->unpack(bref)); } if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { HANDLE_CODE(unpack_enum(pdsch_max_num_repeat_cemode_a_sc_mtch_r14, bref)); } if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { HANDLE_CODE(unpack_enum(pdsch_max_num_repeat_cemode_b_sc_mtch_r14, bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sc_mcch_repeat_period_v1470_present, 1)); HANDLE_CODE(bref.unpack(sc_mcch_mod_period_v1470_present, 1)); } } return SRSASN_SUCCESS; } void sib_type20_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sc-mcch-RepetitionPeriod-r13", sc_mcch_repeat_period_r13.to_string()); j.write_int("sc-mcch-Offset-r13", sc_mcch_offset_r13); j.write_int("sc-mcch-FirstSubframe-r13", sc_mcch_first_sf_r13); if (sc_mcch_dur_r13_present) { j.write_int("sc-mcch-duration-r13", sc_mcch_dur_r13); } j.write_str("sc-mcch-ModificationPeriod-r13", sc_mcch_mod_period_r13.to_string()); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (ext) { rrc_asn1_warn_assert(br_bcch_cfg_r14_present != (br_bcch_cfg_r14.get() != NULL), __FILE__, __LINE__); if (br_bcch_cfg_r14_present) { j.write_fieldname("br-BCCH-Config-r14"); j.start_obj(); j.write_str("dummy", "rf1"); j.write_str("dummy2", "rf1"); j.write_int("mpdcch-Narrowband-SC-MCCH-r14", br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14); j.write_str("mpdcch-NumRepetition-SC-MCCH-r14", br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14.to_string()); j.write_fieldname("mpdcch-StartSF-SC-MCCH-r14"); br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.to_json(j); j.write_str("mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14", br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14.to_string()); j.write_int("sc-mcch-CarrierFreq-r14", br_bcch_cfg_r14->sc_mcch_carrier_freq_r14); j.write_int("sc-mcch-Offset-BR-r14", br_bcch_cfg_r14->sc_mcch_offset_br_r14); j.write_str("sc-mcch-RepetitionPeriod-BR-r14", br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14.to_string()); j.write_str("sc-mcch-ModificationPeriod-BR-r14", br_bcch_cfg_r14->sc_mcch_mod_period_br_r14.to_string()); j.end_obj(); } rrc_asn1_warn_assert(sc_mcch_sched_info_r14_present != (sc_mcch_sched_info_r14.get() != NULL), __FILE__, __LINE__); if (sc_mcch_sched_info_r14_present) { j.write_fieldname("sc-mcch-SchedulingInfo-r14"); sc_mcch_sched_info_r14->to_json(j); } if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { j.write_str("pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14", pdsch_max_num_repeat_cemode_a_sc_mtch_r14.to_string()); } if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { j.write_str("pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14", pdsch_max_num_repeat_cemode_b_sc_mtch_r14.to_string()); } if (sc_mcch_repeat_period_v1470_present) { j.write_str("sc-mcch-RepetitionPeriod-v1470", "rf1"); } if (sc_mcch_mod_period_v1470_present) { j.write_str("sc-mcch-ModificationPeriod-v1470", "rf1"); } } j.end_obj(); } void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::destroy_() {} void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::set(types::options e) { destroy_(); type_ = e; } sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::mpdcch_start_sf_sc_mcch_r14_c_( const sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& other) { type_ = other.type(); switch (type_) { case types::fdd_r14: c.init(other.c.get()); break; case types::tdd_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); } } sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_:: operator=(const sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd_r14: c.set(other.c.get()); break; case types::tdd_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); } return *this; } void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd_r14: j.write_str("fdd-r14", c.get().to_string()); break; case types::tdd_r14: j.write_str("tdd-r14", c.get().to_string()); break; default: log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); } j.end_obj(); } SRSASN_CODE sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd_r14: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::tdd_r14: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd_r14: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::tdd_r14: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType21-r14 ::= SEQUENCE SRSASN_CODE sib_type21_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sl_v2x_cfg_common_r14_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (sl_v2x_cfg_common_r14_present) { HANDLE_CODE(sl_v2x_cfg_common_r14.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type21_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sl_v2x_cfg_common_r14_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (sl_v2x_cfg_common_r14_present) { HANDLE_CODE(sl_v2x_cfg_common_r14.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type21_r14_s::to_json(json_writer& j) const { j.start_obj(); if (sl_v2x_cfg_common_r14_present) { j.write_fieldname("sl-V2X-ConfigCommon-r14"); sl_v2x_cfg_common_r14.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); } // SystemInformationBlockType24-r15 ::= SEQUENCE SRSASN_CODE sib_type24_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(carrier_freq_list_nr_r15_present, 1)); HANDLE_CODE(bref.pack(t_resel_nr_sf_r15_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (carrier_freq_list_nr_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_nr_r15, 1, 8)); } HANDLE_CODE(pack_unalign_integer(bref, t_resel_nr_r15, (uint8_t)0, (uint8_t)7)); if (t_resel_nr_sf_r15_present) { HANDLE_CODE(t_resel_nr_sf_r15.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type24_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(carrier_freq_list_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(t_resel_nr_sf_r15_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (carrier_freq_list_nr_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_nr_r15, bref, 1, 8)); } HANDLE_CODE(unpack_unalign_integer(t_resel_nr_r15, bref, (uint8_t)0, (uint8_t)7)); if (t_resel_nr_sf_r15_present) { HANDLE_CODE(t_resel_nr_sf_r15.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type24_r15_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_list_nr_r15_present) { j.start_array("carrierFreqListNR-r15"); for (uint32_t i1 = 0; i1 < carrier_freq_list_nr_r15.size(); ++i1) { carrier_freq_list_nr_r15[i1].to_json(j); } j.end_array(); } j.write_int("t-ReselectionNR-r15", t_resel_nr_r15); if (t_resel_nr_sf_r15_present) { j.write_fieldname("t-ReselectionNR-SF-r15"); t_resel_nr_sf_r15.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); } // SystemInformationBlockType25-r15 ::= SEQUENCE SRSASN_CODE sib_type25_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(uac_barr_for_common_r15_present, 1)); HANDLE_CODE(bref.pack(uac_barr_per_plmn_list_r15_present, 1)); HANDLE_CODE(bref.pack(uac_ac1_select_assist_info_r15_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (uac_barr_for_common_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_for_common_r15, 1, 63)); } if (uac_barr_per_plmn_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_per_plmn_list_r15, 1, 6)); } HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_info_set_list_r15, 1, 8)); if (uac_ac1_select_assist_info_r15_present) { HANDLE_CODE(uac_ac1_select_assist_info_r15.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type25_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(uac_barr_for_common_r15_present, 1)); HANDLE_CODE(bref.unpack(uac_barr_per_plmn_list_r15_present, 1)); HANDLE_CODE(bref.unpack(uac_ac1_select_assist_info_r15_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (uac_barr_for_common_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(uac_barr_for_common_r15, bref, 1, 63)); } if (uac_barr_per_plmn_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(uac_barr_per_plmn_list_r15, bref, 1, 6)); } HANDLE_CODE(unpack_dyn_seq_of(uac_barr_info_set_list_r15, bref, 1, 8)); if (uac_ac1_select_assist_info_r15_present) { HANDLE_CODE(uac_ac1_select_assist_info_r15.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type25_r15_s::to_json(json_writer& j) const { j.start_obj(); if (uac_barr_for_common_r15_present) { j.start_array("uac-BarringForCommon-r15"); for (uint32_t i1 = 0; i1 < uac_barr_for_common_r15.size(); ++i1) { uac_barr_for_common_r15[i1].to_json(j); } j.end_array(); } if (uac_barr_per_plmn_list_r15_present) { j.start_array("uac-BarringPerPLMN-List-r15"); for (uint32_t i1 = 0; i1 < uac_barr_per_plmn_list_r15.size(); ++i1) { uac_barr_per_plmn_list_r15[i1].to_json(j); } j.end_array(); } j.start_array("uac-BarringInfoSetList-r15"); for (uint32_t i1 = 0; i1 < uac_barr_info_set_list_r15.size(); ++i1) { uac_barr_info_set_list_r15[i1].to_json(j); } j.end_array(); if (uac_ac1_select_assist_info_r15_present) { j.write_fieldname("uac-AC1-SelectAssistInfo-r15"); uac_ac1_select_assist_info_r15.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); } void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::destroy_() { switch (type_) { case types::individual_plmn_list_r15: c.destroy(); break; default: break; } } void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::plmn_common_r15: break; case types::individual_plmn_list_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); } } sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::uac_ac1_select_assist_info_r15_c_( const sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& other) { type_ = other.type(); switch (type_) { case types::plmn_common_r15: c.init(other.c.get()); break; case types::individual_plmn_list_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); } } sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_:: operator=(const sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::plmn_common_r15: c.set(other.c.get()); break; case types::individual_plmn_list_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); } return *this; } void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::plmn_common_r15: j.write_str("plmnCommon-r15", c.get().to_string()); break; case types::individual_plmn_list_r15: j.start_array("individualPLMNList-r15"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_str(c.get()[i1].to_string()); } j.end_array(); break; default: log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); } j.end_obj(); } SRSASN_CODE sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::plmn_common_r15: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::individual_plmn_list_r15: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 2, 6, EnumPacker())); break; default: log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::plmn_common_r15: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::individual_plmn_list_r15: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 2, 6, EnumPacker())); break; default: log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType26-r15 ::= SEQUENCE SRSASN_CODE sib_type26_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(v2x_inter_freq_info_list_r15_present, 1)); HANDLE_CODE(bref.pack(cbr_pssch_tx_cfg_list_r15_present, 1)); HANDLE_CODE(bref.pack(v2x_packet_dupl_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(sync_freq_list_r15_present, 1)); HANDLE_CODE(bref.pack(slss_tx_multi_freq_r15_present, 1)); HANDLE_CODE(bref.pack(v2x_freq_sel_cfg_list_r15_present, 1)); HANDLE_CODE(bref.pack(thresh_s_rssi_cbr_r14_present, 1)); if (v2x_inter_freq_info_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_inter_freq_info_list_r15, 0, 7)); } if (cbr_pssch_tx_cfg_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cbr_pssch_tx_cfg_list_r15, 1, 8)); } if (v2x_packet_dupl_cfg_r15_present) { HANDLE_CODE(v2x_packet_dupl_cfg_r15.pack(bref)); } if (sync_freq_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sync_freq_list_r15, 1, 8, UnalignedIntegerPacker(0, 262143))); } if (v2x_freq_sel_cfg_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_freq_sel_cfg_list_r15, 1, 8)); } if (thresh_s_rssi_cbr_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_s_rssi_cbr_r14, (uint8_t)0, (uint8_t)45)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type26_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(v2x_inter_freq_info_list_r15_present, 1)); HANDLE_CODE(bref.unpack(cbr_pssch_tx_cfg_list_r15_present, 1)); HANDLE_CODE(bref.unpack(v2x_packet_dupl_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(sync_freq_list_r15_present, 1)); HANDLE_CODE(bref.unpack(slss_tx_multi_freq_r15_present, 1)); HANDLE_CODE(bref.unpack(v2x_freq_sel_cfg_list_r15_present, 1)); HANDLE_CODE(bref.unpack(thresh_s_rssi_cbr_r14_present, 1)); if (v2x_inter_freq_info_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_inter_freq_info_list_r15, bref, 0, 7)); } if (cbr_pssch_tx_cfg_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(cbr_pssch_tx_cfg_list_r15, bref, 1, 8)); } if (v2x_packet_dupl_cfg_r15_present) { HANDLE_CODE(v2x_packet_dupl_cfg_r15.unpack(bref)); } if (sync_freq_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(sync_freq_list_r15, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); } if (v2x_freq_sel_cfg_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_freq_sel_cfg_list_r15, bref, 1, 8)); } if (thresh_s_rssi_cbr_r14_present) { HANDLE_CODE(unpack_unalign_integer(thresh_s_rssi_cbr_r14, bref, (uint8_t)0, (uint8_t)45)); } return SRSASN_SUCCESS; } void sib_type26_r15_s::to_json(json_writer& j) const { j.start_obj(); if (v2x_inter_freq_info_list_r15_present) { j.start_array("v2x-InterFreqInfoList-r15"); for (uint32_t i1 = 0; i1 < v2x_inter_freq_info_list_r15.size(); ++i1) { v2x_inter_freq_info_list_r15[i1].to_json(j); } j.end_array(); } if (cbr_pssch_tx_cfg_list_r15_present) { j.start_array("cbr-pssch-TxConfigList-r15"); for (uint32_t i1 = 0; i1 < cbr_pssch_tx_cfg_list_r15.size(); ++i1) { cbr_pssch_tx_cfg_list_r15[i1].to_json(j); } j.end_array(); } if (v2x_packet_dupl_cfg_r15_present) { j.write_fieldname("v2x-PacketDuplicationConfig-r15"); v2x_packet_dupl_cfg_r15.to_json(j); } if (sync_freq_list_r15_present) { j.start_array("syncFreqList-r15"); for (uint32_t i1 = 0; i1 < sync_freq_list_r15.size(); ++i1) { j.write_int(sync_freq_list_r15[i1]); } j.end_array(); } if (slss_tx_multi_freq_r15_present) { j.write_str("slss-TxMultiFreq-r15", "true"); } if (v2x_freq_sel_cfg_list_r15_present) { j.start_array("v2x-FreqSelectionConfigList-r15"); for (uint32_t i1 = 0; i1 < v2x_freq_sel_cfg_list_r15.size(); ++i1) { v2x_freq_sel_cfg_list_r15[i1].to_json(j); } j.end_array(); } if (thresh_s_rssi_cbr_r14_present) { j.write_int("threshS-RSSI-CBR-r14", thresh_s_rssi_cbr_r14); } j.end_obj(); } // SystemInformationBlockType3 ::= SEQUENCE SRSASN_CODE sib_type3_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_resel_info_common.speed_state_resel_pars_present, 1)); HANDLE_CODE(pack_enum(bref, cell_resel_info_common.q_hyst)); if (cell_resel_info_common.speed_state_resel_pars_present) { HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.mob_state_params.pack(bref)); HANDLE_CODE(pack_enum(bref, cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium)); HANDLE_CODE(pack_enum(bref, cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high)); } HANDLE_CODE(bref.pack(cell_resel_serving_freq_info.s_non_intra_search_present, 1)); if (cell_resel_serving_freq_info.s_non_intra_search_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_resel_serving_freq_info.s_non_intra_search, (uint8_t)0, (uint8_t)31)); } HANDLE_CODE(pack_unalign_integer(bref, cell_resel_serving_freq_info.thresh_serving_low, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_serving_freq_info.cell_resel_prio, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.p_max_present, 1)); HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.s_intra_search_present, 1)); HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.allowed_meas_bw_present, 1)); HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.t_resel_eutra_sf_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, intra_freq_cell_resel_info.q_rx_lev_min, (int8_t)-70, (int8_t)-22)); if (intra_freq_cell_resel_info.p_max_present) { HANDLE_CODE(pack_unalign_integer(bref, intra_freq_cell_resel_info.p_max, (int8_t)-30, (int8_t)33)); } if (intra_freq_cell_resel_info.s_intra_search_present) { HANDLE_CODE(pack_unalign_integer(bref, intra_freq_cell_resel_info.s_intra_search, (uint8_t)0, (uint8_t)31)); } if (intra_freq_cell_resel_info.allowed_meas_bw_present) { HANDLE_CODE(pack_enum(bref, intra_freq_cell_resel_info.allowed_meas_bw)); } HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.presence_ant_port1, 1)); HANDLE_CODE(intra_freq_cell_resel_info.neigh_cell_cfg.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, intra_freq_cell_resel_info.t_resel_eutra, (uint8_t)0, (uint8_t)7)); if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { HANDLE_CODE(intra_freq_cell_resel_info.t_resel_eutra_sf.pack(bref)); } if (ext) { ext_groups_header group_flags(8, 1); rrc_asn1_warn_assert(s_intra_search_v920_present != (s_intra_search_v920.get() != NULL), __FILE__, __LINE__); group_flags[0] |= s_intra_search_v920_present; rrc_asn1_warn_assert(s_non_intra_search_v920_present != (s_non_intra_search_v920.get() != NULL), __FILE__, __LINE__); group_flags[0] |= s_non_intra_search_v920_present; group_flags[0] |= q_qual_min_r9_present; group_flags[0] |= thresh_serving_low_q_r9_present; group_flags[1] |= q_qual_min_wb_r11_present; group_flags[2] |= q_qual_min_rsrq_on_all_symbols_r12_present; rrc_asn1_warn_assert(cell_resel_serving_freq_info_v1310_present != (cell_resel_serving_freq_info_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= cell_resel_serving_freq_info_v1310_present; rrc_asn1_warn_assert(redist_serving_info_r13_present != (redist_serving_info_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= redist_serving_info_r13_present; rrc_asn1_warn_assert(cell_sel_info_ce_r13_present != (cell_sel_info_ce_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= cell_sel_info_ce_r13_present; group_flags[3] |= t_resel_eutra_ce_r13_present; rrc_asn1_warn_assert(cell_sel_info_ce1_r13_present != (cell_sel_info_ce1_r13.get() != NULL), __FILE__, __LINE__); group_flags[4] |= cell_sel_info_ce1_r13_present; rrc_asn1_warn_assert(cell_sel_info_ce1_v1360_present != (cell_sel_info_ce1_v1360.get() != NULL), __FILE__, __LINE__); group_flags[5] |= cell_sel_info_ce1_v1360_present; rrc_asn1_warn_assert(cell_resel_info_common_v1460_present != (cell_resel_info_common_v1460.get() != NULL), __FILE__, __LINE__); group_flags[6] |= cell_resel_info_common_v1460_present; rrc_asn1_warn_assert(cell_resel_info_hsdn_r15_present != (cell_resel_info_hsdn_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= cell_resel_info_hsdn_r15_present; rrc_asn1_warn_assert(cell_sel_info_ce_v1530_present != (cell_sel_info_ce_v1530.get() != NULL), __FILE__, __LINE__); group_flags[7] |= cell_sel_info_ce_v1530_present; group_flags[7] |= crs_intf_mitig_neigh_cells_ce_r15_present; group_flags.pack_nof_groups(bref); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); group_flags.pack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(s_intra_search_v920_present, 1)); HANDLE_CODE(bref.pack(s_non_intra_search_v920_present, 1)); HANDLE_CODE(bref.pack(q_qual_min_r9_present, 1)); HANDLE_CODE(bref.pack(thresh_serving_low_q_r9_present, 1)); if (s_intra_search_v920_present) { HANDLE_CODE(pack_unalign_integer(bref, s_intra_search_v920->s_intra_search_p_r9, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, s_intra_search_v920->s_intra_search_q_r9, (uint8_t)0, (uint8_t)31)); } if (s_non_intra_search_v920_present) { HANDLE_CODE( pack_unalign_integer(bref, s_non_intra_search_v920->s_non_intra_search_p_r9, (uint8_t)0, (uint8_t)31)); HANDLE_CODE( pack_unalign_integer(bref, s_non_intra_search_v920->s_non_intra_search_q_r9, (uint8_t)0, (uint8_t)31)); } if (q_qual_min_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_r9, (int8_t)-34, (int8_t)-3)); } if (thresh_serving_low_q_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_serving_low_q_r9, (uint8_t)0, (uint8_t)31)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(q_qual_min_wb_r11_present, 1)); if (q_qual_min_wb_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_wb_r11, (int8_t)-34, (int8_t)-3)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); if (q_qual_min_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cell_resel_serving_freq_info_v1310_present, 1)); HANDLE_CODE(bref.pack(redist_serving_info_r13_present, 1)); HANDLE_CODE(bref.pack(cell_sel_info_ce_r13_present, 1)); HANDLE_CODE(bref.pack(t_resel_eutra_ce_r13_present, 1)); if (cell_resel_serving_freq_info_v1310_present) { HANDLE_CODE(cell_resel_serving_freq_info_v1310->pack(bref)); } if (redist_serving_info_r13_present) { HANDLE_CODE(redist_serving_info_r13->pack(bref)); } if (cell_sel_info_ce_r13_present) { HANDLE_CODE(cell_sel_info_ce_r13->pack(bref)); } if (t_resel_eutra_ce_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, t_resel_eutra_ce_r13, (uint8_t)0, (uint8_t)15)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cell_sel_info_ce1_r13_present, 1)); if (cell_sel_info_ce1_r13_present) { HANDLE_CODE(cell_sel_info_ce1_r13->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cell_sel_info_ce1_v1360_present, 1)); if (cell_sel_info_ce1_v1360_present) { HANDLE_CODE(cell_sel_info_ce1_v1360->pack(bref)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cell_resel_info_common_v1460_present, 1)); if (cell_resel_info_common_v1460_present) { HANDLE_CODE(cell_resel_info_common_v1460->pack(bref)); } } if (group_flags[7]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cell_resel_info_hsdn_r15_present, 1)); HANDLE_CODE(bref.pack(cell_sel_info_ce_v1530_present, 1)); HANDLE_CODE(bref.pack(crs_intf_mitig_neigh_cells_ce_r15_present, 1)); if (cell_resel_info_hsdn_r15_present) { HANDLE_CODE(cell_resel_info_hsdn_r15->pack(bref)); } if (cell_sel_info_ce_v1530_present) { HANDLE_CODE(cell_sel_info_ce_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type3_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_resel_info_common.speed_state_resel_pars_present, 1)); HANDLE_CODE(unpack_enum(cell_resel_info_common.q_hyst, bref)); if (cell_resel_info_common.speed_state_resel_pars_present) { HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.mob_state_params.unpack(bref)); HANDLE_CODE(unpack_enum(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium, bref)); HANDLE_CODE(unpack_enum(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high, bref)); } HANDLE_CODE(bref.unpack(cell_resel_serving_freq_info.s_non_intra_search_present, 1)); if (cell_resel_serving_freq_info.s_non_intra_search_present) { HANDLE_CODE(unpack_unalign_integer(cell_resel_serving_freq_info.s_non_intra_search, bref, (uint8_t)0, (uint8_t)31)); } HANDLE_CODE(unpack_unalign_integer(cell_resel_serving_freq_info.thresh_serving_low, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(cell_resel_serving_freq_info.cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.p_max_present, 1)); HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.s_intra_search_present, 1)); HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.allowed_meas_bw_present, 1)); HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.t_resel_eutra_sf_present, 1)); HANDLE_CODE(unpack_unalign_integer(intra_freq_cell_resel_info.q_rx_lev_min, bref, (int8_t)-70, (int8_t)-22)); if (intra_freq_cell_resel_info.p_max_present) { HANDLE_CODE(unpack_unalign_integer(intra_freq_cell_resel_info.p_max, bref, (int8_t)-30, (int8_t)33)); } if (intra_freq_cell_resel_info.s_intra_search_present) { HANDLE_CODE(unpack_unalign_integer(intra_freq_cell_resel_info.s_intra_search, bref, (uint8_t)0, (uint8_t)31)); } if (intra_freq_cell_resel_info.allowed_meas_bw_present) { HANDLE_CODE(unpack_enum(intra_freq_cell_resel_info.allowed_meas_bw, bref)); } HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.presence_ant_port1, 1)); HANDLE_CODE(intra_freq_cell_resel_info.neigh_cell_cfg.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(intra_freq_cell_resel_info.t_resel_eutra, bref, (uint8_t)0, (uint8_t)7)); if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { HANDLE_CODE(intra_freq_cell_resel_info.t_resel_eutra_sf.unpack(bref)); } if (ext) { ext_groups_header group_flags(8, 1); group_flags.unpack_nof_groups(bref); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); group_flags.unpack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(s_intra_search_v920_present, 1)); HANDLE_CODE(bref.unpack(s_non_intra_search_v920_present, 1)); HANDLE_CODE(bref.unpack(q_qual_min_r9_present, 1)); HANDLE_CODE(bref.unpack(thresh_serving_low_q_r9_present, 1)); if (s_intra_search_v920_present) { s_intra_search_v920 = make_copy_ptr(s_intra_search_v920_s_()); HANDLE_CODE(unpack_unalign_integer(s_intra_search_v920->s_intra_search_p_r9, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(s_intra_search_v920->s_intra_search_q_r9, bref, (uint8_t)0, (uint8_t)31)); } if (s_non_intra_search_v920_present) { s_non_intra_search_v920 = make_copy_ptr(s_non_intra_search_v920_s_()); HANDLE_CODE( unpack_unalign_integer(s_non_intra_search_v920->s_non_intra_search_p_r9, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE( unpack_unalign_integer(s_non_intra_search_v920->s_non_intra_search_q_r9, bref, (uint8_t)0, (uint8_t)31)); } if (q_qual_min_r9_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_r9, bref, (int8_t)-34, (int8_t)-3)); } if (thresh_serving_low_q_r9_present) { HANDLE_CODE(unpack_unalign_integer(thresh_serving_low_q_r9, bref, (uint8_t)0, (uint8_t)31)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(q_qual_min_wb_r11_present, 1)); if (q_qual_min_wb_r11_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_wb_r11, bref, (int8_t)-34, (int8_t)-3)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); if (q_qual_min_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(unpack_unalign_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cell_resel_serving_freq_info_v1310_present, 1)); HANDLE_CODE(bref.unpack(redist_serving_info_r13_present, 1)); HANDLE_CODE(bref.unpack(cell_sel_info_ce_r13_present, 1)); HANDLE_CODE(bref.unpack(t_resel_eutra_ce_r13_present, 1)); if (cell_resel_serving_freq_info_v1310_present) { cell_resel_serving_freq_info_v1310 = make_copy_ptr(cell_resel_serving_freq_info_v1310_s()); HANDLE_CODE(cell_resel_serving_freq_info_v1310->unpack(bref)); } if (redist_serving_info_r13_present) { redist_serving_info_r13 = make_copy_ptr(redist_serving_info_r13_s()); HANDLE_CODE(redist_serving_info_r13->unpack(bref)); } if (cell_sel_info_ce_r13_present) { cell_sel_info_ce_r13 = make_copy_ptr(cell_sel_info_ce_r13_s()); HANDLE_CODE(cell_sel_info_ce_r13->unpack(bref)); } if (t_resel_eutra_ce_r13_present) { HANDLE_CODE(unpack_unalign_integer(t_resel_eutra_ce_r13, bref, (uint8_t)0, (uint8_t)15)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cell_sel_info_ce1_r13_present, 1)); if (cell_sel_info_ce1_r13_present) { cell_sel_info_ce1_r13 = make_copy_ptr(cell_sel_info_ce1_r13_s()); HANDLE_CODE(cell_sel_info_ce1_r13->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cell_sel_info_ce1_v1360_present, 1)); if (cell_sel_info_ce1_v1360_present) { cell_sel_info_ce1_v1360 = make_copy_ptr(cell_sel_info_ce1_v1360_s()); HANDLE_CODE(cell_sel_info_ce1_v1360->unpack(bref)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cell_resel_info_common_v1460_present, 1)); if (cell_resel_info_common_v1460_present) { cell_resel_info_common_v1460 = make_copy_ptr(cell_resel_info_common_v1460_s()); HANDLE_CODE(cell_resel_info_common_v1460->unpack(bref)); } } if (group_flags[7]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cell_resel_info_hsdn_r15_present, 1)); HANDLE_CODE(bref.unpack(cell_sel_info_ce_v1530_present, 1)); HANDLE_CODE(bref.unpack(crs_intf_mitig_neigh_cells_ce_r15_present, 1)); if (cell_resel_info_hsdn_r15_present) { cell_resel_info_hsdn_r15 = make_copy_ptr(cell_resel_info_hsdn_r15_s()); HANDLE_CODE(cell_resel_info_hsdn_r15->unpack(bref)); } if (cell_sel_info_ce_v1530_present) { cell_sel_info_ce_v1530 = make_copy_ptr(cell_sel_info_ce_v1530_s()); HANDLE_CODE(cell_sel_info_ce_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void sib_type3_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("cellReselectionInfoCommon"); j.start_obj(); j.write_str("q-Hyst", cell_resel_info_common.q_hyst.to_string()); if (cell_resel_info_common.speed_state_resel_pars_present) { j.write_fieldname("speedStateReselectionPars"); j.start_obj(); j.write_fieldname("mobilityStateParameters"); cell_resel_info_common.speed_state_resel_pars.mob_state_params.to_json(j); j.write_fieldname("q-HystSF"); j.start_obj(); j.write_str("sf-Medium", cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium.to_string()); j.write_str("sf-High", cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high.to_string()); j.end_obj(); j.end_obj(); } j.end_obj(); j.write_fieldname("cellReselectionServingFreqInfo"); j.start_obj(); if (cell_resel_serving_freq_info.s_non_intra_search_present) { j.write_int("s-NonIntraSearch", cell_resel_serving_freq_info.s_non_intra_search); } j.write_int("threshServingLow", cell_resel_serving_freq_info.thresh_serving_low); j.write_int("cellReselectionPriority", cell_resel_serving_freq_info.cell_resel_prio); j.end_obj(); j.write_fieldname("intraFreqCellReselectionInfo"); j.start_obj(); j.write_int("q-RxLevMin", intra_freq_cell_resel_info.q_rx_lev_min); if (intra_freq_cell_resel_info.p_max_present) { j.write_int("p-Max", intra_freq_cell_resel_info.p_max); } if (intra_freq_cell_resel_info.s_intra_search_present) { j.write_int("s-IntraSearch", intra_freq_cell_resel_info.s_intra_search); } if (intra_freq_cell_resel_info.allowed_meas_bw_present) { j.write_str("allowedMeasBandwidth", intra_freq_cell_resel_info.allowed_meas_bw.to_string()); } j.write_bool("presenceAntennaPort1", intra_freq_cell_resel_info.presence_ant_port1); j.write_str("neighCellConfig", intra_freq_cell_resel_info.neigh_cell_cfg.to_string()); j.write_int("t-ReselectionEUTRA", intra_freq_cell_resel_info.t_resel_eutra); if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { j.write_fieldname("t-ReselectionEUTRA-SF"); intra_freq_cell_resel_info.t_resel_eutra_sf.to_json(j); } j.end_obj(); if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } rrc_asn1_warn_assert(s_intra_search_v920_present != (s_intra_search_v920.get() != NULL), __FILE__, __LINE__); if (s_intra_search_v920_present) { j.write_fieldname("s-IntraSearch-v920"); j.start_obj(); j.write_int("s-IntraSearchP-r9", s_intra_search_v920->s_intra_search_p_r9); j.write_int("s-IntraSearchQ-r9", s_intra_search_v920->s_intra_search_q_r9); j.end_obj(); } rrc_asn1_warn_assert(s_non_intra_search_v920_present != (s_non_intra_search_v920.get() != NULL), __FILE__, __LINE__); if (s_non_intra_search_v920_present) { j.write_fieldname("s-NonIntraSearch-v920"); j.start_obj(); j.write_int("s-NonIntraSearchP-r9", s_non_intra_search_v920->s_non_intra_search_p_r9); j.write_int("s-NonIntraSearchQ-r9", s_non_intra_search_v920->s_non_intra_search_q_r9); j.end_obj(); } if (q_qual_min_r9_present) { j.write_int("q-QualMin-r9", q_qual_min_r9); } if (thresh_serving_low_q_r9_present) { j.write_int("threshServingLowQ-r9", thresh_serving_low_q_r9); } if (q_qual_min_wb_r11_present) { j.write_int("q-QualMinWB-r11", q_qual_min_wb_r11); } if (q_qual_min_rsrq_on_all_symbols_r12_present) { j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); } rrc_asn1_warn_assert(cell_resel_serving_freq_info_v1310_present != (cell_resel_serving_freq_info_v1310.get() != NULL), __FILE__, __LINE__); if (cell_resel_serving_freq_info_v1310_present) { j.write_fieldname("cellReselectionServingFreqInfo-v1310"); cell_resel_serving_freq_info_v1310->to_json(j); } rrc_asn1_warn_assert(redist_serving_info_r13_present != (redist_serving_info_r13.get() != NULL), __FILE__, __LINE__); if (redist_serving_info_r13_present) { j.write_fieldname("redistributionServingInfo-r13"); redist_serving_info_r13->to_json(j); } rrc_asn1_warn_assert(cell_sel_info_ce_r13_present != (cell_sel_info_ce_r13.get() != NULL), __FILE__, __LINE__); if (cell_sel_info_ce_r13_present) { j.write_fieldname("cellSelectionInfoCE-r13"); cell_sel_info_ce_r13->to_json(j); } if (t_resel_eutra_ce_r13_present) { j.write_int("t-ReselectionEUTRA-CE-r13", t_resel_eutra_ce_r13); } rrc_asn1_warn_assert(cell_sel_info_ce1_r13_present != (cell_sel_info_ce1_r13.get() != NULL), __FILE__, __LINE__); if (cell_sel_info_ce1_r13_present) { j.write_fieldname("cellSelectionInfoCE1-r13"); cell_sel_info_ce1_r13->to_json(j); } rrc_asn1_warn_assert(cell_sel_info_ce1_v1360_present != (cell_sel_info_ce1_v1360.get() != NULL), __FILE__, __LINE__); if (cell_sel_info_ce1_v1360_present) { j.write_fieldname("cellSelectionInfoCE1-v1360"); cell_sel_info_ce1_v1360->to_json(j); } rrc_asn1_warn_assert(cell_resel_info_common_v1460_present != (cell_resel_info_common_v1460.get() != NULL), __FILE__, __LINE__); if (cell_resel_info_common_v1460_present) { j.write_fieldname("cellReselectionInfoCommon-v1460"); cell_resel_info_common_v1460->to_json(j); } rrc_asn1_warn_assert(cell_resel_info_hsdn_r15_present != (cell_resel_info_hsdn_r15.get() != NULL), __FILE__, __LINE__); if (cell_resel_info_hsdn_r15_present) { j.write_fieldname("cellReselectionInfoHSDN-r15"); cell_resel_info_hsdn_r15->to_json(j); } rrc_asn1_warn_assert(cell_sel_info_ce_v1530_present != (cell_sel_info_ce_v1530.get() != NULL), __FILE__, __LINE__); if (cell_sel_info_ce_v1530_present) { j.write_fieldname("cellSelectionInfoCE-v1530"); cell_sel_info_ce_v1530->to_json(j); } if (crs_intf_mitig_neigh_cells_ce_r15_present) { j.write_str("crs-IntfMitigNeighCellsCE-r15", "enabled"); } } j.end_obj(); } // SystemInformationBlockType4 ::= SEQUENCE SRSASN_CODE sib_type4_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(intra_freq_neigh_cell_list_present, 1)); HANDLE_CODE(bref.pack(intra_freq_black_cell_list_present, 1)); HANDLE_CODE(bref.pack(csg_pci_range_present, 1)); if (intra_freq_neigh_cell_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, intra_freq_neigh_cell_list, 1, 16)); } if (intra_freq_black_cell_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, intra_freq_black_cell_list, 1, 16)); } if (csg_pci_range_present) { HANDLE_CODE(csg_pci_range.pack(bref)); } if (ext) { ext_groups_header group_flags(1, 1); rrc_asn1_warn_assert(intra_freq_neigh_hsdn_cell_list_r15_present != (intra_freq_neigh_hsdn_cell_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= intra_freq_neigh_hsdn_cell_list_r15_present; group_flags.pack_nof_groups(bref); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); group_flags.pack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(intra_freq_neigh_hsdn_cell_list_r15_present, 1)); if (intra_freq_neigh_hsdn_cell_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *intra_freq_neigh_hsdn_cell_list_r15, 1, 16)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type4_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(intra_freq_neigh_cell_list_present, 1)); HANDLE_CODE(bref.unpack(intra_freq_black_cell_list_present, 1)); HANDLE_CODE(bref.unpack(csg_pci_range_present, 1)); if (intra_freq_neigh_cell_list_present) { HANDLE_CODE(unpack_dyn_seq_of(intra_freq_neigh_cell_list, bref, 1, 16)); } if (intra_freq_black_cell_list_present) { HANDLE_CODE(unpack_dyn_seq_of(intra_freq_black_cell_list, bref, 1, 16)); } if (csg_pci_range_present) { HANDLE_CODE(csg_pci_range.unpack(bref)); } if (ext) { ext_groups_header group_flags(1, 1); group_flags.unpack_nof_groups(bref); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); group_flags.unpack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(intra_freq_neigh_hsdn_cell_list_r15_present, 1)); if (intra_freq_neigh_hsdn_cell_list_r15_present) { intra_freq_neigh_hsdn_cell_list_r15 = make_copy_ptr(intra_freq_neigh_hsdn_cell_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*intra_freq_neigh_hsdn_cell_list_r15, bref, 1, 16)); } } } return SRSASN_SUCCESS; } void sib_type4_s::to_json(json_writer& j) const { j.start_obj(); if (intra_freq_neigh_cell_list_present) { j.start_array("intraFreqNeighCellList"); for (uint32_t i1 = 0; i1 < intra_freq_neigh_cell_list.size(); ++i1) { intra_freq_neigh_cell_list[i1].to_json(j); } j.end_array(); } if (intra_freq_black_cell_list_present) { j.start_array("intraFreqBlackCellList"); for (uint32_t i1 = 0; i1 < intra_freq_black_cell_list.size(); ++i1) { intra_freq_black_cell_list[i1].to_json(j); } j.end_array(); } if (csg_pci_range_present) { j.write_fieldname("csg-PhysCellIdRange"); csg_pci_range.to_json(j); } if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } rrc_asn1_warn_assert(intra_freq_neigh_hsdn_cell_list_r15_present != (intra_freq_neigh_hsdn_cell_list_r15.get() != NULL), __FILE__, __LINE__); if (intra_freq_neigh_hsdn_cell_list_r15_present) { j.start_array("intraFreqNeighHSDN-CellList-r15"); for (uint32_t i1 = 0; i1 < intra_freq_neigh_hsdn_cell_list_r15->size(); ++i1) { ((*intra_freq_neigh_hsdn_cell_list_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SystemInformationBlockType5 ::= SEQUENCE SRSASN_CODE sib_type5_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list, 1, 8)); if (ext) { ext_groups_header group_flags(7, 1); rrc_asn1_warn_assert(inter_freq_carrier_freq_list_v1250_present != (inter_freq_carrier_freq_list_v1250.get() != NULL), __FILE__, __LINE__); group_flags[0] |= inter_freq_carrier_freq_list_v1250_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_r12_present != (inter_freq_carrier_freq_list_ext_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= inter_freq_carrier_freq_list_ext_r12_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1280_present != (inter_freq_carrier_freq_list_ext_v1280.get() != NULL), __FILE__, __LINE__); group_flags[1] |= inter_freq_carrier_freq_list_ext_v1280_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_v1310_present != (inter_freq_carrier_freq_list_v1310.get() != NULL), __FILE__, __LINE__); group_flags[2] |= inter_freq_carrier_freq_list_v1310_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1310_present != (inter_freq_carrier_freq_list_ext_v1310.get() != NULL), __FILE__, __LINE__); group_flags[2] |= inter_freq_carrier_freq_list_ext_v1310_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_v1350_present != (inter_freq_carrier_freq_list_v1350.get() != NULL), __FILE__, __LINE__); group_flags[3] |= inter_freq_carrier_freq_list_v1350_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1350_present != (inter_freq_carrier_freq_list_ext_v1350.get() != NULL), __FILE__, __LINE__); group_flags[3] |= inter_freq_carrier_freq_list_ext_v1350_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1360_present != (inter_freq_carrier_freq_list_ext_v1360.get() != NULL), __FILE__, __LINE__); group_flags[4] |= inter_freq_carrier_freq_list_ext_v1360_present; group_flags[5] |= scptm_freq_offset_r14_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_v1530_present != (inter_freq_carrier_freq_list_v1530.get() != NULL), __FILE__, __LINE__); group_flags[6] |= inter_freq_carrier_freq_list_v1530_present; rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1530_present != (inter_freq_carrier_freq_list_ext_v1530.get() != NULL), __FILE__, __LINE__); group_flags[6] |= inter_freq_carrier_freq_list_ext_v1530_present; rrc_asn1_warn_assert(meas_idle_cfg_sib_r15_present != (meas_idle_cfg_sib_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= meas_idle_cfg_sib_r15_present; group_flags.pack_nof_groups(bref); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); group_flags.pack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1250_present, 1)); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_r12_present, 1)); if (inter_freq_carrier_freq_list_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1250, 1, 8)); } if (inter_freq_carrier_freq_list_ext_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_r12, 1, 8)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1280_present, 1)); if (inter_freq_carrier_freq_list_ext_v1280_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1280, 1, 8)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1310_present, 1)); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1310_present, 1)); if (inter_freq_carrier_freq_list_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1310, 1, 8)); } if (inter_freq_carrier_freq_list_ext_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1310, 1, 8)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1350_present, 1)); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1350_present, 1)); if (inter_freq_carrier_freq_list_v1350_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1350, 1, 8)); } if (inter_freq_carrier_freq_list_ext_v1350_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1350, 1, 8)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1360_present, 1)); if (inter_freq_carrier_freq_list_ext_v1360_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1360, 1, 8)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(scptm_freq_offset_r14_present, 1)); if (scptm_freq_offset_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, scptm_freq_offset_r14, (uint8_t)1, (uint8_t)8)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1530_present, 1)); HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1530_present, 1)); HANDLE_CODE(bref.pack(meas_idle_cfg_sib_r15_present, 1)); if (inter_freq_carrier_freq_list_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1530, 1, 8)); } if (inter_freq_carrier_freq_list_ext_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1530, 1, 8)); } if (meas_idle_cfg_sib_r15_present) { HANDLE_CODE(meas_idle_cfg_sib_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type5_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list, bref, 1, 8)); if (ext) { ext_groups_header group_flags(7, 1); group_flags.unpack_nof_groups(bref); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); group_flags.unpack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1250_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_r12_present, 1)); if (inter_freq_carrier_freq_list_v1250_present) { inter_freq_carrier_freq_list_v1250 = make_copy_ptr(inter_freq_carrier_freq_list_v1250_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1250, bref, 1, 8)); } if (inter_freq_carrier_freq_list_ext_r12_present) { inter_freq_carrier_freq_list_ext_r12 = make_copy_ptr(inter_freq_carrier_freq_list_ext_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_r12, bref, 1, 8)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1280_present, 1)); if (inter_freq_carrier_freq_list_ext_v1280_present) { inter_freq_carrier_freq_list_ext_v1280 = make_copy_ptr(inter_freq_carrier_freq_list_ext_v1280_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1280, bref, 1, 8)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1310_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1310_present, 1)); if (inter_freq_carrier_freq_list_v1310_present) { inter_freq_carrier_freq_list_v1310 = make_copy_ptr(inter_freq_carrier_freq_list_v1310_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1310, bref, 1, 8)); } if (inter_freq_carrier_freq_list_ext_v1310_present) { inter_freq_carrier_freq_list_ext_v1310 = make_copy_ptr(inter_freq_carrier_freq_list_ext_v1310_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1310, bref, 1, 8)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1350_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1350_present, 1)); if (inter_freq_carrier_freq_list_v1350_present) { inter_freq_carrier_freq_list_v1350 = make_copy_ptr(inter_freq_carrier_freq_list_v1350_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1350, bref, 1, 8)); } if (inter_freq_carrier_freq_list_ext_v1350_present) { inter_freq_carrier_freq_list_ext_v1350 = make_copy_ptr(inter_freq_carrier_freq_list_ext_v1350_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1350, bref, 1, 8)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1360_present, 1)); if (inter_freq_carrier_freq_list_ext_v1360_present) { inter_freq_carrier_freq_list_ext_v1360 = make_copy_ptr(inter_freq_carrier_freq_list_ext_v1360_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1360, bref, 1, 8)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(scptm_freq_offset_r14_present, 1)); if (scptm_freq_offset_r14_present) { HANDLE_CODE(unpack_unalign_integer(scptm_freq_offset_r14, bref, (uint8_t)1, (uint8_t)8)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1530_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1530_present, 1)); HANDLE_CODE(bref.unpack(meas_idle_cfg_sib_r15_present, 1)); if (inter_freq_carrier_freq_list_v1530_present) { inter_freq_carrier_freq_list_v1530 = make_copy_ptr(inter_freq_carrier_freq_list_v1530_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1530, bref, 1, 8)); } if (inter_freq_carrier_freq_list_ext_v1530_present) { inter_freq_carrier_freq_list_ext_v1530 = make_copy_ptr(inter_freq_carrier_freq_list_ext_v1530_l()); HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1530, bref, 1, 8)); } if (meas_idle_cfg_sib_r15_present) { meas_idle_cfg_sib_r15 = make_copy_ptr(meas_idle_cfg_sib_r15_s()); HANDLE_CODE(meas_idle_cfg_sib_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void sib_type5_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("interFreqCarrierFreqList"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list.size(); ++i1) { inter_freq_carrier_freq_list[i1].to_json(j); } j.end_array(); if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_v1250_present != (inter_freq_carrier_freq_list_v1250.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_v1250_present) { j.start_array("interFreqCarrierFreqList-v1250"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v1250->size(); ++i1) { ((*inter_freq_carrier_freq_list_v1250)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_r12_present != (inter_freq_carrier_freq_list_ext_r12.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_ext_r12_present) { j.start_array("interFreqCarrierFreqListExt-r12"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_ext_r12->size(); ++i1) { ((*inter_freq_carrier_freq_list_ext_r12)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1280_present != (inter_freq_carrier_freq_list_ext_v1280.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_ext_v1280_present) { j.start_array("interFreqCarrierFreqListExt-v1280"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_ext_v1280->size(); ++i1) { ((*inter_freq_carrier_freq_list_ext_v1280)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_v1310_present != (inter_freq_carrier_freq_list_v1310.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_v1310_present) { j.start_array("interFreqCarrierFreqList-v1310"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v1310->size(); ++i1) { ((*inter_freq_carrier_freq_list_v1310)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1310_present != (inter_freq_carrier_freq_list_ext_v1310.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_ext_v1310_present) { j.start_array("interFreqCarrierFreqListExt-v1310"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_ext_v1310->size(); ++i1) { ((*inter_freq_carrier_freq_list_ext_v1310)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_v1350_present != (inter_freq_carrier_freq_list_v1350.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_v1350_present) { j.start_array("interFreqCarrierFreqList-v1350"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v1350->size(); ++i1) { ((*inter_freq_carrier_freq_list_v1350)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1350_present != (inter_freq_carrier_freq_list_ext_v1350.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_ext_v1350_present) { j.start_array("interFreqCarrierFreqListExt-v1350"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_ext_v1350->size(); ++i1) { ((*inter_freq_carrier_freq_list_ext_v1350)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1360_present != (inter_freq_carrier_freq_list_ext_v1360.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_ext_v1360_present) { j.start_array("interFreqCarrierFreqListExt-v1360"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_ext_v1360->size(); ++i1) { ((*inter_freq_carrier_freq_list_ext_v1360)[i1]).to_json(j); } j.end_array(); } if (scptm_freq_offset_r14_present) { j.write_int("scptm-FreqOffset-r14", scptm_freq_offset_r14); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_v1530_present != (inter_freq_carrier_freq_list_v1530.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_v1530_present) { j.start_array("interFreqCarrierFreqList-v1530"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_v1530->size(); ++i1) { ((*inter_freq_carrier_freq_list_v1530)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(inter_freq_carrier_freq_list_ext_v1530_present != (inter_freq_carrier_freq_list_ext_v1530.get() != NULL), __FILE__, __LINE__); if (inter_freq_carrier_freq_list_ext_v1530_present) { j.start_array("interFreqCarrierFreqListExt-v1530"); for (uint32_t i1 = 0; i1 < inter_freq_carrier_freq_list_ext_v1530->size(); ++i1) { ((*inter_freq_carrier_freq_list_ext_v1530)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_idle_cfg_sib_r15_present != (meas_idle_cfg_sib_r15.get() != NULL), __FILE__, __LINE__); if (meas_idle_cfg_sib_r15_present) { j.write_fieldname("measIdleConfigSIB-r15"); meas_idle_cfg_sib_r15->to_json(j); } } j.end_obj(); } // SystemInformationBlockType6 ::= SEQUENCE SRSASN_CODE sib_type6_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_present, 1)); HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_present, 1)); HANDLE_CODE(bref.pack(t_resel_utra_sf_present, 1)); if (carrier_freq_list_utra_fdd_present) { HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_fdd, 1, 16)); } if (carrier_freq_list_utra_tdd_present) { HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_tdd, 1, 16)); } HANDLE_CODE(pack_unalign_integer(bref, t_resel_utra, (uint8_t)0, (uint8_t)7)); if (t_resel_utra_sf_present) { HANDLE_CODE(t_resel_utra_sf.pack(bref)); } if (ext) { ext_groups_header group_flags(1, 1); rrc_asn1_warn_assert(carrier_freq_list_utra_fdd_v1250_present != (carrier_freq_list_utra_fdd_v1250.get() != NULL), __FILE__, __LINE__); group_flags[0] |= carrier_freq_list_utra_fdd_v1250_present; rrc_asn1_warn_assert(carrier_freq_list_utra_tdd_v1250_present != (carrier_freq_list_utra_tdd_v1250.get() != NULL), __FILE__, __LINE__); group_flags[0] |= carrier_freq_list_utra_tdd_v1250_present; rrc_asn1_warn_assert(carrier_freq_list_utra_fdd_ext_r12_present != (carrier_freq_list_utra_fdd_ext_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= carrier_freq_list_utra_fdd_ext_r12_present; rrc_asn1_warn_assert(carrier_freq_list_utra_tdd_ext_r12_present != (carrier_freq_list_utra_tdd_ext_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= carrier_freq_list_utra_tdd_ext_r12_present; group_flags.pack_nof_groups(bref); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); group_flags.pack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_v1250_present, 1)); HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_v1250_present, 1)); HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_ext_r12_present, 1)); HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_ext_r12_present, 1)); if (carrier_freq_list_utra_fdd_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_fdd_v1250, 1, 16)); } if (carrier_freq_list_utra_tdd_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_tdd_v1250, 1, 16)); } if (carrier_freq_list_utra_fdd_ext_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_fdd_ext_r12, 1, 16)); } if (carrier_freq_list_utra_tdd_ext_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_tdd_ext_r12, 1, 16)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type6_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_present, 1)); HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_present, 1)); HANDLE_CODE(bref.unpack(t_resel_utra_sf_present, 1)); if (carrier_freq_list_utra_fdd_present) { HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_fdd, bref, 1, 16)); } if (carrier_freq_list_utra_tdd_present) { HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_tdd, bref, 1, 16)); } HANDLE_CODE(unpack_unalign_integer(t_resel_utra, bref, (uint8_t)0, (uint8_t)7)); if (t_resel_utra_sf_present) { HANDLE_CODE(t_resel_utra_sf.unpack(bref)); } if (ext) { ext_groups_header group_flags(1, 1); group_flags.unpack_nof_groups(bref); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); group_flags.unpack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_v1250_present, 1)); HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_v1250_present, 1)); HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_ext_r12_present, 1)); HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_ext_r12_present, 1)); if (carrier_freq_list_utra_fdd_v1250_present) { carrier_freq_list_utra_fdd_v1250 = make_copy_ptr(carrier_freq_list_utra_fdd_v1250_l_()); HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_fdd_v1250, bref, 1, 16)); } if (carrier_freq_list_utra_tdd_v1250_present) { carrier_freq_list_utra_tdd_v1250 = make_copy_ptr(carrier_freq_list_utra_tdd_v1250_l_()); HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_tdd_v1250, bref, 1, 16)); } if (carrier_freq_list_utra_fdd_ext_r12_present) { carrier_freq_list_utra_fdd_ext_r12 = make_copy_ptr(carrier_freq_list_utra_fdd_ext_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_fdd_ext_r12, bref, 1, 16)); } if (carrier_freq_list_utra_tdd_ext_r12_present) { carrier_freq_list_utra_tdd_ext_r12 = make_copy_ptr(carrier_freq_list_utra_tdd_ext_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_tdd_ext_r12, bref, 1, 16)); } } } return SRSASN_SUCCESS; } void sib_type6_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_list_utra_fdd_present) { j.start_array("carrierFreqListUTRA-FDD"); for (uint32_t i1 = 0; i1 < carrier_freq_list_utra_fdd.size(); ++i1) { carrier_freq_list_utra_fdd[i1].to_json(j); } j.end_array(); } if (carrier_freq_list_utra_tdd_present) { j.start_array("carrierFreqListUTRA-TDD"); for (uint32_t i1 = 0; i1 < carrier_freq_list_utra_tdd.size(); ++i1) { carrier_freq_list_utra_tdd[i1].to_json(j); } j.end_array(); } j.write_int("t-ReselectionUTRA", t_resel_utra); if (t_resel_utra_sf_present) { j.write_fieldname("t-ReselectionUTRA-SF"); t_resel_utra_sf.to_json(j); } if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } rrc_asn1_warn_assert(carrier_freq_list_utra_fdd_v1250_present != (carrier_freq_list_utra_fdd_v1250.get() != NULL), __FILE__, __LINE__); if (carrier_freq_list_utra_fdd_v1250_present) { j.start_array("carrierFreqListUTRA-FDD-v1250"); for (uint32_t i1 = 0; i1 < carrier_freq_list_utra_fdd_v1250->size(); ++i1) { ((*carrier_freq_list_utra_fdd_v1250)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(carrier_freq_list_utra_tdd_v1250_present != (carrier_freq_list_utra_tdd_v1250.get() != NULL), __FILE__, __LINE__); if (carrier_freq_list_utra_tdd_v1250_present) { j.start_array("carrierFreqListUTRA-TDD-v1250"); for (uint32_t i1 = 0; i1 < carrier_freq_list_utra_tdd_v1250->size(); ++i1) { ((*carrier_freq_list_utra_tdd_v1250)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(carrier_freq_list_utra_fdd_ext_r12_present != (carrier_freq_list_utra_fdd_ext_r12.get() != NULL), __FILE__, __LINE__); if (carrier_freq_list_utra_fdd_ext_r12_present) { j.start_array("carrierFreqListUTRA-FDD-Ext-r12"); for (uint32_t i1 = 0; i1 < carrier_freq_list_utra_fdd_ext_r12->size(); ++i1) { ((*carrier_freq_list_utra_fdd_ext_r12)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(carrier_freq_list_utra_tdd_ext_r12_present != (carrier_freq_list_utra_tdd_ext_r12.get() != NULL), __FILE__, __LINE__); if (carrier_freq_list_utra_tdd_ext_r12_present) { j.start_array("carrierFreqListUTRA-TDD-Ext-r12"); for (uint32_t i1 = 0; i1 < carrier_freq_list_utra_tdd_ext_r12->size(); ++i1) { ((*carrier_freq_list_utra_tdd_ext_r12)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SystemInformationBlockType7 ::= SEQUENCE SRSASN_CODE sib_type7_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(t_resel_geran_sf_present, 1)); HANDLE_CODE(bref.pack(carrier_freqs_info_list_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, t_resel_geran, (uint8_t)0, (uint8_t)7)); if (t_resel_geran_sf_present) { HANDLE_CODE(t_resel_geran_sf.pack(bref)); } if (carrier_freqs_info_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freqs_info_list, 1, 16)); } if (ext) { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type7_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(t_resel_geran_sf_present, 1)); HANDLE_CODE(bref.unpack(carrier_freqs_info_list_present, 1)); HANDLE_CODE(unpack_unalign_integer(t_resel_geran, bref, (uint8_t)0, (uint8_t)7)); if (t_resel_geran_sf_present) { HANDLE_CODE(t_resel_geran_sf.unpack(bref)); } if (carrier_freqs_info_list_present) { HANDLE_CODE(unpack_dyn_seq_of(carrier_freqs_info_list, bref, 1, 16)); } if (ext) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } } return SRSASN_SUCCESS; } void sib_type7_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("t-ReselectionGERAN", t_resel_geran); if (t_resel_geran_sf_present) { j.write_fieldname("t-ReselectionGERAN-SF"); t_resel_geran_sf.to_json(j); } if (carrier_freqs_info_list_present) { j.start_array("carrierFreqsInfoList"); for (uint32_t i1 = 0; i1 < carrier_freqs_info_list.size(); ++i1) { carrier_freqs_info_list[i1].to_json(j); } j.end_array(); } if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } } j.end_obj(); } // SystemInformationBlockType8 ::= SEQUENCE SRSASN_CODE sib_type8_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sys_time_info_present, 1)); HANDLE_CODE(bref.pack(search_win_size_present, 1)); HANDLE_CODE(bref.pack(params_hrpd_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt_present, 1)); if (sys_time_info_present) { HANDLE_CODE(sys_time_info.pack(bref)); } if (search_win_size_present) { HANDLE_CODE(pack_unalign_integer(bref, search_win_size, (uint8_t)0, (uint8_t)15)); } if (params_hrpd_present) { HANDLE_CODE(bref.pack(params_hrpd.cell_resel_params_hrpd_present, 1)); HANDLE_CODE(params_hrpd.pre_regist_info_hrpd.pack(bref)); if (params_hrpd.cell_resel_params_hrpd_present) { HANDLE_CODE(params_hrpd.cell_resel_params_hrpd.pack(bref)); } } if (params1_xrtt_present) { HANDLE_CODE(bref.pack(params1_xrtt.csfb_regist_param1_xrtt_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt.long_code_state1_xrtt_present, 1)); HANDLE_CODE(bref.pack(params1_xrtt.cell_resel_params1_xrtt_present, 1)); if (params1_xrtt.csfb_regist_param1_xrtt_present) { HANDLE_CODE(params1_xrtt.csfb_regist_param1_xrtt.pack(bref)); } if (params1_xrtt.long_code_state1_xrtt_present) { HANDLE_CODE(params1_xrtt.long_code_state1_xrtt.pack(bref)); } if (params1_xrtt.cell_resel_params1_xrtt_present) { HANDLE_CODE(params1_xrtt.cell_resel_params1_xrtt.pack(bref)); } } if (ext) { ext_groups_header group_flags(3, 1); group_flags[0] |= csfb_support_for_dual_rx_ues_r9_present; rrc_asn1_warn_assert(cell_resel_params_hrpd_v920_present != (cell_resel_params_hrpd_v920.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cell_resel_params_hrpd_v920_present; rrc_asn1_warn_assert(cell_resel_params1_xrtt_v920_present != (cell_resel_params1_xrtt_v920.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cell_resel_params1_xrtt_v920_present; rrc_asn1_warn_assert(csfb_regist_param1_xrtt_v920_present != (csfb_regist_param1_xrtt_v920.get() != NULL), __FILE__, __LINE__); group_flags[0] |= csfb_regist_param1_xrtt_v920_present; rrc_asn1_warn_assert(ac_barr_cfg1_xrtt_r9_present != (ac_barr_cfg1_xrtt_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ac_barr_cfg1_xrtt_r9_present; group_flags[1] |= csfb_dual_rx_tx_support_r10_present; rrc_asn1_warn_assert(sib8_per_plmn_list_r11_present != (sib8_per_plmn_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[2] |= sib8_per_plmn_list_r11_present; group_flags.pack_nof_groups(bref); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); group_flags.pack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csfb_support_for_dual_rx_ues_r9_present, 1)); HANDLE_CODE(bref.pack(cell_resel_params_hrpd_v920_present, 1)); HANDLE_CODE(bref.pack(cell_resel_params1_xrtt_v920_present, 1)); HANDLE_CODE(bref.pack(csfb_regist_param1_xrtt_v920_present, 1)); HANDLE_CODE(bref.pack(ac_barr_cfg1_xrtt_r9_present, 1)); if (csfb_support_for_dual_rx_ues_r9_present) { HANDLE_CODE(bref.pack(csfb_support_for_dual_rx_ues_r9, 1)); } if (cell_resel_params_hrpd_v920_present) { HANDLE_CODE(cell_resel_params_hrpd_v920->pack(bref)); } if (cell_resel_params1_xrtt_v920_present) { HANDLE_CODE(cell_resel_params1_xrtt_v920->pack(bref)); } if (csfb_regist_param1_xrtt_v920_present) { HANDLE_CODE(csfb_regist_param1_xrtt_v920->pack(bref)); } if (ac_barr_cfg1_xrtt_r9_present) { HANDLE_CODE(ac_barr_cfg1_xrtt_r9->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csfb_dual_rx_tx_support_r10_present, 1)); } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sib8_per_plmn_list_r11_present, 1)); if (sib8_per_plmn_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *sib8_per_plmn_list_r11, 1, 6)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type8_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sys_time_info_present, 1)); HANDLE_CODE(bref.unpack(search_win_size_present, 1)); HANDLE_CODE(bref.unpack(params_hrpd_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt_present, 1)); if (sys_time_info_present) { HANDLE_CODE(sys_time_info.unpack(bref)); } if (search_win_size_present) { HANDLE_CODE(unpack_unalign_integer(search_win_size, bref, (uint8_t)0, (uint8_t)15)); } if (params_hrpd_present) { HANDLE_CODE(bref.unpack(params_hrpd.cell_resel_params_hrpd_present, 1)); HANDLE_CODE(params_hrpd.pre_regist_info_hrpd.unpack(bref)); if (params_hrpd.cell_resel_params_hrpd_present) { HANDLE_CODE(params_hrpd.cell_resel_params_hrpd.unpack(bref)); } } if (params1_xrtt_present) { HANDLE_CODE(bref.unpack(params1_xrtt.csfb_regist_param1_xrtt_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt.long_code_state1_xrtt_present, 1)); HANDLE_CODE(bref.unpack(params1_xrtt.cell_resel_params1_xrtt_present, 1)); if (params1_xrtt.csfb_regist_param1_xrtt_present) { HANDLE_CODE(params1_xrtt.csfb_regist_param1_xrtt.unpack(bref)); } if (params1_xrtt.long_code_state1_xrtt_present) { HANDLE_CODE(params1_xrtt.long_code_state1_xrtt.unpack(bref)); } if (params1_xrtt.cell_resel_params1_xrtt_present) { HANDLE_CODE(params1_xrtt.cell_resel_params1_xrtt.unpack(bref)); } } if (ext) { ext_groups_header group_flags(3, 1); group_flags.unpack_nof_groups(bref); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); group_flags.unpack_group_flags(bref); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csfb_support_for_dual_rx_ues_r9_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_params_hrpd_v920_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_params1_xrtt_v920_present, 1)); HANDLE_CODE(bref.unpack(csfb_regist_param1_xrtt_v920_present, 1)); HANDLE_CODE(bref.unpack(ac_barr_cfg1_xrtt_r9_present, 1)); if (csfb_support_for_dual_rx_ues_r9_present) { HANDLE_CODE(bref.unpack(csfb_support_for_dual_rx_ues_r9, 1)); } if (cell_resel_params_hrpd_v920_present) { cell_resel_params_hrpd_v920 = make_copy_ptr(cell_resel_params_cdma2000_v920_s()); HANDLE_CODE(cell_resel_params_hrpd_v920->unpack(bref)); } if (cell_resel_params1_xrtt_v920_present) { cell_resel_params1_xrtt_v920 = make_copy_ptr(cell_resel_params_cdma2000_v920_s()); HANDLE_CODE(cell_resel_params1_xrtt_v920->unpack(bref)); } if (csfb_regist_param1_xrtt_v920_present) { csfb_regist_param1_xrtt_v920 = make_copy_ptr(csfb_regist_param1_xrtt_v920_s()); HANDLE_CODE(csfb_regist_param1_xrtt_v920->unpack(bref)); } if (ac_barr_cfg1_xrtt_r9_present) { ac_barr_cfg1_xrtt_r9 = make_copy_ptr(ac_barr_cfg1_xrtt_r9_s()); HANDLE_CODE(ac_barr_cfg1_xrtt_r9->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csfb_dual_rx_tx_support_r10_present, 1)); } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sib8_per_plmn_list_r11_present, 1)); if (sib8_per_plmn_list_r11_present) { sib8_per_plmn_list_r11 = make_copy_ptr(sib8_per_plmn_list_r11_l()); HANDLE_CODE(unpack_dyn_seq_of(*sib8_per_plmn_list_r11, bref, 1, 6)); } } } return SRSASN_SUCCESS; } void sib_type8_s::to_json(json_writer& j) const { j.start_obj(); if (sys_time_info_present) { j.write_fieldname("systemTimeInfo"); sys_time_info.to_json(j); } if (search_win_size_present) { j.write_int("searchWindowSize", search_win_size); } if (params_hrpd_present) { j.write_fieldname("parametersHRPD"); j.start_obj(); j.write_fieldname("preRegistrationInfoHRPD"); params_hrpd.pre_regist_info_hrpd.to_json(j); if (params_hrpd.cell_resel_params_hrpd_present) { j.write_fieldname("cellReselectionParametersHRPD"); params_hrpd.cell_resel_params_hrpd.to_json(j); } j.end_obj(); } if (params1_xrtt_present) { j.write_fieldname("parameters1XRTT"); j.start_obj(); if (params1_xrtt.csfb_regist_param1_xrtt_present) { j.write_fieldname("csfb-RegistrationParam1XRTT"); params1_xrtt.csfb_regist_param1_xrtt.to_json(j); } if (params1_xrtt.long_code_state1_xrtt_present) { j.write_str("longCodeState1XRTT", params1_xrtt.long_code_state1_xrtt.to_string()); } if (params1_xrtt.cell_resel_params1_xrtt_present) { j.write_fieldname("cellReselectionParameters1XRTT"); params1_xrtt.cell_resel_params1_xrtt.to_json(j); } j.end_obj(); } if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (csfb_support_for_dual_rx_ues_r9_present) { j.write_bool("csfb-SupportForDualRxUEs-r9", csfb_support_for_dual_rx_ues_r9); } rrc_asn1_warn_assert(cell_resel_params_hrpd_v920_present != (cell_resel_params_hrpd_v920.get() != NULL), __FILE__, __LINE__); if (cell_resel_params_hrpd_v920_present) { j.write_fieldname("cellReselectionParametersHRPD-v920"); cell_resel_params_hrpd_v920->to_json(j); } rrc_asn1_warn_assert(cell_resel_params1_xrtt_v920_present != (cell_resel_params1_xrtt_v920.get() != NULL), __FILE__, __LINE__); if (cell_resel_params1_xrtt_v920_present) { j.write_fieldname("cellReselectionParameters1XRTT-v920"); cell_resel_params1_xrtt_v920->to_json(j); } rrc_asn1_warn_assert(csfb_regist_param1_xrtt_v920_present != (csfb_regist_param1_xrtt_v920.get() != NULL), __FILE__, __LINE__); if (csfb_regist_param1_xrtt_v920_present) { j.write_fieldname("csfb-RegistrationParam1XRTT-v920"); csfb_regist_param1_xrtt_v920->to_json(j); } rrc_asn1_warn_assert(ac_barr_cfg1_xrtt_r9_present != (ac_barr_cfg1_xrtt_r9.get() != NULL), __FILE__, __LINE__); if (ac_barr_cfg1_xrtt_r9_present) { j.write_fieldname("ac-BarringConfig1XRTT-r9"); ac_barr_cfg1_xrtt_r9->to_json(j); } if (csfb_dual_rx_tx_support_r10_present) { j.write_str("csfb-DualRxTxSupport-r10", "true"); } rrc_asn1_warn_assert(sib8_per_plmn_list_r11_present != (sib8_per_plmn_list_r11.get() != NULL), __FILE__, __LINE__); if (sib8_per_plmn_list_r11_present) { j.start_array("sib8-PerPLMN-List-r11"); for (uint32_t i1 = 0; i1 < sib8_per_plmn_list_r11->size(); ++i1) { ((*sib8_per_plmn_list_r11)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SystemInformationBlockType9 ::= SEQUENCE SRSASN_CODE sib_type9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(hnb_name_present, 1)); if (hnb_name_present) { HANDLE_CODE(hnb_name.pack(bref)); } if (ext) { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } } return SRSASN_SUCCESS; } SRSASN_CODE sib_type9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(hnb_name_present, 1)); if (hnb_name_present) { HANDLE_CODE(hnb_name.unpack(bref)); } if (ext) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } } return SRSASN_SUCCESS; } void sib_type9_s::to_json(json_writer& j) const { j.start_obj(); if (hnb_name_present) { j.write_str("hnb-Name", hnb_name.to_string()); } if (ext) { if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } } j.end_obj(); } // PosSystemInformation-r15-IEs ::= SEQUENCE SRSASN_CODE pos_sys_info_r15_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, pos_sib_type_and_info_r15, 1, 32)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pos_sys_info_r15_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(pos_sib_type_and_info_r15, bref, 1, 32)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void pos_sys_info_r15_ies_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("posSIB-TypeAndInfo-r15"); for (uint32_t i1 = 0; i1 < pos_sib_type_and_info_r15.size(); ++i1) { pos_sib_type_and_info_r15[i1].to_json(j); } j.end_array(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::destroy_() { switch (type_) { case types::pos_sib1_minus1_r15: c.destroy(); break; case types::pos_sib1_minus2_r15: c.destroy(); break; case types::pos_sib1_minus3_r15: c.destroy(); break; case types::pos_sib1_minus4_r15: c.destroy(); break; case types::pos_sib1_minus5_r15: c.destroy(); break; case types::pos_sib1_minus6_r15: c.destroy(); break; case types::pos_sib1_minus7_r15: c.destroy(); break; case types::pos_sib2_minus1_r15: c.destroy(); break; case types::pos_sib2_minus2_r15: c.destroy(); break; case types::pos_sib2_minus3_r15: c.destroy(); break; case types::pos_sib2_minus4_r15: c.destroy(); break; case types::pos_sib2_minus5_r15: c.destroy(); break; case types::pos_sib2_minus6_r15: c.destroy(); break; case types::pos_sib2_minus7_r15: c.destroy(); break; case types::pos_sib2_minus8_r15: c.destroy(); break; case types::pos_sib2_minus9_r15: c.destroy(); break; case types::pos_sib2_minus10_r15: c.destroy(); break; case types::pos_sib2_minus11_r15: c.destroy(); break; case types::pos_sib2_minus12_r15: c.destroy(); break; case types::pos_sib2_minus13_r15: c.destroy(); break; case types::pos_sib2_minus14_r15: c.destroy(); break; case types::pos_sib2_minus15_r15: c.destroy(); break; case types::pos_sib2_minus16_r15: c.destroy(); break; case types::pos_sib2_minus17_r15: c.destroy(); break; case types::pos_sib2_minus18_r15: c.destroy(); break; case types::pos_sib2_minus19_r15: c.destroy(); break; case types::pos_sib3_minus1_r15: c.destroy(); break; default: break; } } void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::pos_sib1_minus1_r15: c.init(); break; case types::pos_sib1_minus2_r15: c.init(); break; case types::pos_sib1_minus3_r15: c.init(); break; case types::pos_sib1_minus4_r15: c.init(); break; case types::pos_sib1_minus5_r15: c.init(); break; case types::pos_sib1_minus6_r15: c.init(); break; case types::pos_sib1_minus7_r15: c.init(); break; case types::pos_sib2_minus1_r15: c.init(); break; case types::pos_sib2_minus2_r15: c.init(); break; case types::pos_sib2_minus3_r15: c.init(); break; case types::pos_sib2_minus4_r15: c.init(); break; case types::pos_sib2_minus5_r15: c.init(); break; case types::pos_sib2_minus6_r15: c.init(); break; case types::pos_sib2_minus7_r15: c.init(); break; case types::pos_sib2_minus8_r15: c.init(); break; case types::pos_sib2_minus9_r15: c.init(); break; case types::pos_sib2_minus10_r15: c.init(); break; case types::pos_sib2_minus11_r15: c.init(); break; case types::pos_sib2_minus12_r15: c.init(); break; case types::pos_sib2_minus13_r15: c.init(); break; case types::pos_sib2_minus14_r15: c.init(); break; case types::pos_sib2_minus15_r15: c.init(); break; case types::pos_sib2_minus16_r15: c.init(); break; case types::pos_sib2_minus17_r15: c.init(); break; case types::pos_sib2_minus18_r15: c.init(); break; case types::pos_sib2_minus19_r15: c.init(); break; case types::pos_sib3_minus1_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); } } pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::pos_sib_type_and_info_r15_item_c_( const pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& other) { type_ = other.type(); switch (type_) { case types::pos_sib1_minus1_r15: c.init(other.c.get()); break; case types::pos_sib1_minus2_r15: c.init(other.c.get()); break; case types::pos_sib1_minus3_r15: c.init(other.c.get()); break; case types::pos_sib1_minus4_r15: c.init(other.c.get()); break; case types::pos_sib1_minus5_r15: c.init(other.c.get()); break; case types::pos_sib1_minus6_r15: c.init(other.c.get()); break; case types::pos_sib1_minus7_r15: c.init(other.c.get()); break; case types::pos_sib2_minus1_r15: c.init(other.c.get()); break; case types::pos_sib2_minus2_r15: c.init(other.c.get()); break; case types::pos_sib2_minus3_r15: c.init(other.c.get()); break; case types::pos_sib2_minus4_r15: c.init(other.c.get()); break; case types::pos_sib2_minus5_r15: c.init(other.c.get()); break; case types::pos_sib2_minus6_r15: c.init(other.c.get()); break; case types::pos_sib2_minus7_r15: c.init(other.c.get()); break; case types::pos_sib2_minus8_r15: c.init(other.c.get()); break; case types::pos_sib2_minus9_r15: c.init(other.c.get()); break; case types::pos_sib2_minus10_r15: c.init(other.c.get()); break; case types::pos_sib2_minus11_r15: c.init(other.c.get()); break; case types::pos_sib2_minus12_r15: c.init(other.c.get()); break; case types::pos_sib2_minus13_r15: c.init(other.c.get()); break; case types::pos_sib2_minus14_r15: c.init(other.c.get()); break; case types::pos_sib2_minus15_r15: c.init(other.c.get()); break; case types::pos_sib2_minus16_r15: c.init(other.c.get()); break; case types::pos_sib2_minus17_r15: c.init(other.c.get()); break; case types::pos_sib2_minus18_r15: c.init(other.c.get()); break; case types::pos_sib2_minus19_r15: c.init(other.c.get()); break; case types::pos_sib3_minus1_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); } } pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_:: operator=(const pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::pos_sib1_minus1_r15: c.set(other.c.get()); break; case types::pos_sib1_minus2_r15: c.set(other.c.get()); break; case types::pos_sib1_minus3_r15: c.set(other.c.get()); break; case types::pos_sib1_minus4_r15: c.set(other.c.get()); break; case types::pos_sib1_minus5_r15: c.set(other.c.get()); break; case types::pos_sib1_minus6_r15: c.set(other.c.get()); break; case types::pos_sib1_minus7_r15: c.set(other.c.get()); break; case types::pos_sib2_minus1_r15: c.set(other.c.get()); break; case types::pos_sib2_minus2_r15: c.set(other.c.get()); break; case types::pos_sib2_minus3_r15: c.set(other.c.get()); break; case types::pos_sib2_minus4_r15: c.set(other.c.get()); break; case types::pos_sib2_minus5_r15: c.set(other.c.get()); break; case types::pos_sib2_minus6_r15: c.set(other.c.get()); break; case types::pos_sib2_minus7_r15: c.set(other.c.get()); break; case types::pos_sib2_minus8_r15: c.set(other.c.get()); break; case types::pos_sib2_minus9_r15: c.set(other.c.get()); break; case types::pos_sib2_minus10_r15: c.set(other.c.get()); break; case types::pos_sib2_minus11_r15: c.set(other.c.get()); break; case types::pos_sib2_minus12_r15: c.set(other.c.get()); break; case types::pos_sib2_minus13_r15: c.set(other.c.get()); break; case types::pos_sib2_minus14_r15: c.set(other.c.get()); break; case types::pos_sib2_minus15_r15: c.set(other.c.get()); break; case types::pos_sib2_minus16_r15: c.set(other.c.get()); break; case types::pos_sib2_minus17_r15: c.set(other.c.get()); break; case types::pos_sib2_minus18_r15: c.set(other.c.get()); break; case types::pos_sib2_minus19_r15: c.set(other.c.get()); break; case types::pos_sib3_minus1_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); } return *this; } void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::pos_sib1_minus1_r15: j.write_fieldname("posSib1-1-r15"); c.get().to_json(j); break; case types::pos_sib1_minus2_r15: j.write_fieldname("posSib1-2-r15"); c.get().to_json(j); break; case types::pos_sib1_minus3_r15: j.write_fieldname("posSib1-3-r15"); c.get().to_json(j); break; case types::pos_sib1_minus4_r15: j.write_fieldname("posSib1-4-r15"); c.get().to_json(j); break; case types::pos_sib1_minus5_r15: j.write_fieldname("posSib1-5-r15"); c.get().to_json(j); break; case types::pos_sib1_minus6_r15: j.write_fieldname("posSib1-6-r15"); c.get().to_json(j); break; case types::pos_sib1_minus7_r15: j.write_fieldname("posSib1-7-r15"); c.get().to_json(j); break; case types::pos_sib2_minus1_r15: j.write_fieldname("posSib2-1-r15"); c.get().to_json(j); break; case types::pos_sib2_minus2_r15: j.write_fieldname("posSib2-2-r15"); c.get().to_json(j); break; case types::pos_sib2_minus3_r15: j.write_fieldname("posSib2-3-r15"); c.get().to_json(j); break; case types::pos_sib2_minus4_r15: j.write_fieldname("posSib2-4-r15"); c.get().to_json(j); break; case types::pos_sib2_minus5_r15: j.write_fieldname("posSib2-5-r15"); c.get().to_json(j); break; case types::pos_sib2_minus6_r15: j.write_fieldname("posSib2-6-r15"); c.get().to_json(j); break; case types::pos_sib2_minus7_r15: j.write_fieldname("posSib2-7-r15"); c.get().to_json(j); break; case types::pos_sib2_minus8_r15: j.write_fieldname("posSib2-8-r15"); c.get().to_json(j); break; case types::pos_sib2_minus9_r15: j.write_fieldname("posSib2-9-r15"); c.get().to_json(j); break; case types::pos_sib2_minus10_r15: j.write_fieldname("posSib2-10-r15"); c.get().to_json(j); break; case types::pos_sib2_minus11_r15: j.write_fieldname("posSib2-11-r15"); c.get().to_json(j); break; case types::pos_sib2_minus12_r15: j.write_fieldname("posSib2-12-r15"); c.get().to_json(j); break; case types::pos_sib2_minus13_r15: j.write_fieldname("posSib2-13-r15"); c.get().to_json(j); break; case types::pos_sib2_minus14_r15: j.write_fieldname("posSib2-14-r15"); c.get().to_json(j); break; case types::pos_sib2_minus15_r15: j.write_fieldname("posSib2-15-r15"); c.get().to_json(j); break; case types::pos_sib2_minus16_r15: j.write_fieldname("posSib2-16-r15"); c.get().to_json(j); break; case types::pos_sib2_minus17_r15: j.write_fieldname("posSib2-17-r15"); c.get().to_json(j); break; case types::pos_sib2_minus18_r15: j.write_fieldname("posSib2-18-r15"); c.get().to_json(j); break; case types::pos_sib2_minus19_r15: j.write_fieldname("posSib2-19-r15"); c.get().to_json(j); break; case types::pos_sib3_minus1_r15: j.write_fieldname("posSib3-1-r15"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); } j.end_obj(); } SRSASN_CODE pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::pos_sib1_minus1_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib1_minus2_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib1_minus3_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib1_minus4_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib1_minus5_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib1_minus6_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib1_minus7_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus1_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus2_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus3_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus4_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus5_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus6_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus7_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus8_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus9_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus10_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus11_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus12_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus13_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus14_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus15_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus16_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus17_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus18_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib2_minus19_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::pos_sib3_minus1_r15: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::pos_sib1_minus1_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib1_minus2_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib1_minus3_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib1_minus4_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib1_minus5_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib1_minus6_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib1_minus7_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus1_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus2_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus3_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus4_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus5_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus6_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus7_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus8_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus9_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus10_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus11_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus12_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus13_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus14_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus15_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus16_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus17_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus18_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib2_minus19_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::pos_sib3_minus1_r15: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sib_info_item_c::destroy_() { switch (type_) { case types::sib2: c.destroy(); break; case types::sib3: c.destroy(); break; case types::sib4: c.destroy(); break; case types::sib5: c.destroy(); break; case types::sib6: c.destroy(); break; case types::sib7: c.destroy(); break; case types::sib8: c.destroy(); break; case types::sib9: c.destroy(); break; case types::sib10: c.destroy(); break; case types::sib11: c.destroy(); break; case types::sib12_v920: c.destroy(); break; case types::sib13_v920: c.destroy(); break; case types::sib14_v1130: c.destroy(); break; case types::sib15_v1130: c.destroy(); break; case types::sib16_v1130: c.destroy(); break; case types::sib17_v1250: c.destroy(); break; case types::sib18_v1250: c.destroy(); break; case types::sib19_v1250: c.destroy(); break; case types::sib20_v1310: c.destroy(); break; case types::sib21_v1430: c.destroy(); break; case types::sib24_v1530: c.destroy(); break; case types::sib25_v1530: c.destroy(); break; case types::sib26_v1530: c.destroy(); break; default: break; } } void sib_info_item_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sib2: c.init(); break; case types::sib3: c.init(); break; case types::sib4: c.init(); break; case types::sib5: c.init(); break; case types::sib6: c.init(); break; case types::sib7: c.init(); break; case types::sib8: c.init(); break; case types::sib9: c.init(); break; case types::sib10: c.init(); break; case types::sib11: c.init(); break; case types::sib12_v920: c.init(); break; case types::sib13_v920: c.init(); break; case types::sib14_v1130: c.init(); break; case types::sib15_v1130: c.init(); break; case types::sib16_v1130: c.init(); break; case types::sib17_v1250: c.init(); break; case types::sib18_v1250: c.init(); break; case types::sib19_v1250: c.init(); break; case types::sib20_v1310: c.init(); break; case types::sib21_v1430: c.init(); break; case types::sib24_v1530: c.init(); break; case types::sib25_v1530: c.init(); break; case types::sib26_v1530: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_info_item_c"); } } sib_info_item_c::sib_info_item_c(const sib_info_item_c& other) { type_ = other.type(); switch (type_) { case types::sib2: c.init(other.c.get()); break; case types::sib3: c.init(other.c.get()); break; case types::sib4: c.init(other.c.get()); break; case types::sib5: c.init(other.c.get()); break; case types::sib6: c.init(other.c.get()); break; case types::sib7: c.init(other.c.get()); break; case types::sib8: c.init(other.c.get()); break; case types::sib9: c.init(other.c.get()); break; case types::sib10: c.init(other.c.get()); break; case types::sib11: c.init(other.c.get()); break; case types::sib12_v920: c.init(other.c.get()); break; case types::sib13_v920: c.init(other.c.get()); break; case types::sib14_v1130: c.init(other.c.get()); break; case types::sib15_v1130: c.init(other.c.get()); break; case types::sib16_v1130: c.init(other.c.get()); break; case types::sib17_v1250: c.init(other.c.get()); break; case types::sib18_v1250: c.init(other.c.get()); break; case types::sib19_v1250: c.init(other.c.get()); break; case types::sib20_v1310: c.init(other.c.get()); break; case types::sib21_v1430: c.init(other.c.get()); break; case types::sib24_v1530: c.init(other.c.get()); break; case types::sib25_v1530: c.init(other.c.get()); break; case types::sib26_v1530: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_info_item_c"); } } sib_info_item_c& sib_info_item_c::operator=(const sib_info_item_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sib2: c.set(other.c.get()); break; case types::sib3: c.set(other.c.get()); break; case types::sib4: c.set(other.c.get()); break; case types::sib5: c.set(other.c.get()); break; case types::sib6: c.set(other.c.get()); break; case types::sib7: c.set(other.c.get()); break; case types::sib8: c.set(other.c.get()); break; case types::sib9: c.set(other.c.get()); break; case types::sib10: c.set(other.c.get()); break; case types::sib11: c.set(other.c.get()); break; case types::sib12_v920: c.set(other.c.get()); break; case types::sib13_v920: c.set(other.c.get()); break; case types::sib14_v1130: c.set(other.c.get()); break; case types::sib15_v1130: c.set(other.c.get()); break; case types::sib16_v1130: c.set(other.c.get()); break; case types::sib17_v1250: c.set(other.c.get()); break; case types::sib18_v1250: c.set(other.c.get()); break; case types::sib19_v1250: c.set(other.c.get()); break; case types::sib20_v1310: c.set(other.c.get()); break; case types::sib21_v1430: c.set(other.c.get()); break; case types::sib24_v1530: c.set(other.c.get()); break; case types::sib25_v1530: c.set(other.c.get()); break; case types::sib26_v1530: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sib_info_item_c"); } return *this; } void sib_info_item_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sib2: j.write_fieldname("sib2"); c.get().to_json(j); break; case types::sib3: j.write_fieldname("sib3"); c.get().to_json(j); break; case types::sib4: j.write_fieldname("sib4"); c.get().to_json(j); break; case types::sib5: j.write_fieldname("sib5"); c.get().to_json(j); break; case types::sib6: j.write_fieldname("sib6"); c.get().to_json(j); break; case types::sib7: j.write_fieldname("sib7"); c.get().to_json(j); break; case types::sib8: j.write_fieldname("sib8"); c.get().to_json(j); break; case types::sib9: j.write_fieldname("sib9"); c.get().to_json(j); break; case types::sib10: j.write_fieldname("sib10"); c.get().to_json(j); break; case types::sib11: j.write_fieldname("sib11"); c.get().to_json(j); break; case types::sib12_v920: j.write_fieldname("sib12-v920"); c.get().to_json(j); break; case types::sib13_v920: j.write_fieldname("sib13-v920"); c.get().to_json(j); break; case types::sib14_v1130: j.write_fieldname("sib14-v1130"); c.get().to_json(j); break; case types::sib15_v1130: j.write_fieldname("sib15-v1130"); c.get().to_json(j); break; case types::sib16_v1130: j.write_fieldname("sib16-v1130"); c.get().to_json(j); break; case types::sib17_v1250: j.write_fieldname("sib17-v1250"); c.get().to_json(j); break; case types::sib18_v1250: j.write_fieldname("sib18-v1250"); c.get().to_json(j); break; case types::sib19_v1250: j.write_fieldname("sib19-v1250"); c.get().to_json(j); break; case types::sib20_v1310: j.write_fieldname("sib20-v1310"); c.get().to_json(j); break; case types::sib21_v1430: j.write_fieldname("sib21-v1430"); c.get().to_json(j); break; case types::sib24_v1530: j.write_fieldname("sib24-v1530"); c.get().to_json(j); break; case types::sib25_v1530: j.write_fieldname("sib25-v1530"); c.get().to_json(j); break; case types::sib26_v1530: j.write_fieldname("sib26-v1530"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "sib_info_item_c"); } j.end_obj(); } SRSASN_CODE sib_info_item_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sib2: HANDLE_CODE(c.get().pack(bref)); break; case types::sib3: HANDLE_CODE(c.get().pack(bref)); break; case types::sib4: HANDLE_CODE(c.get().pack(bref)); break; case types::sib5: HANDLE_CODE(c.get().pack(bref)); break; case types::sib6: HANDLE_CODE(c.get().pack(bref)); break; case types::sib7: HANDLE_CODE(c.get().pack(bref)); break; case types::sib8: HANDLE_CODE(c.get().pack(bref)); break; case types::sib9: HANDLE_CODE(c.get().pack(bref)); break; case types::sib10: HANDLE_CODE(c.get().pack(bref)); break; case types::sib11: HANDLE_CODE(c.get().pack(bref)); break; case types::sib12_v920: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib13_v920: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib14_v1130: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib15_v1130: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib16_v1130: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib17_v1250: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib18_v1250: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib19_v1250: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib20_v1310: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib21_v1430: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib24_v1530: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib25_v1530: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::sib26_v1530: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; default: log_invalid_choice_id(type_, "sib_info_item_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sib_info_item_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sib2: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib3: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib4: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib5: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib6: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib7: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib8: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib9: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib10: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib11: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib12_v920: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib13_v920: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib14_v1130: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib15_v1130: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib16_v1130: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib17_v1250: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib18_v1250: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib19_v1250: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib20_v1310: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib21_v1430: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib24_v1530: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib25_v1530: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::sib26_v1530: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; default: log_invalid_choice_id(type_, "sib_info_item_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformation-r8-IEs ::= SEQUENCE SRSASN_CODE sys_info_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, sib_type_and_info, 1, 32)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sys_info_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(sib_type_and_info, bref, 1, 32)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sys_info_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("sib-TypeAndInfo"); for (uint32_t i1 = 0; i1 < sib_type_and_info.size(); ++i1) { sib_type_and_info[i1].to_json(j); } j.end_array(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformationBlockType1-v890-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v890_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_v890_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_v890_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SystemInformation ::= SEQUENCE SRSASN_CODE sys_info_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sys_info_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void sys_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void sys_info_s::crit_exts_c_::destroy_() { switch (type_) { case types::sys_info_r8: c.destroy(); break; case types::crit_exts_future_r15: c.destroy(); break; default: break; } } void sys_info_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sys_info_r8: c.init(); break; case types::crit_exts_future_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); } } sys_info_s::crit_exts_c_::crit_exts_c_(const sys_info_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::sys_info_r8: c.init(other.c.get()); break; case types::crit_exts_future_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); } } sys_info_s::crit_exts_c_& sys_info_s::crit_exts_c_::operator=(const sys_info_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sys_info_r8: c.set(other.c.get()); break; case types::crit_exts_future_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); } return *this; } void sys_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sys_info_r8: j.write_fieldname("systemInformation-r8"); c.get().to_json(j); break; case types::crit_exts_future_r15: j.write_fieldname("criticalExtensionsFuture-r15"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE sys_info_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sys_info_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future_r15: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sys_info_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sys_info_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future_r15: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::destroy_() { switch (type_) { case types::pos_sys_info_r15: c.destroy(); break; default: break; } } void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::pos_sys_info_r15: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); } } sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::crit_exts_future_r15_c_( const sys_info_s::crit_exts_c_::crit_exts_future_r15_c_& other) { type_ = other.type(); switch (type_) { case types::pos_sys_info_r15: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); } } sys_info_s::crit_exts_c_::crit_exts_future_r15_c_& sys_info_s::crit_exts_c_::crit_exts_future_r15_c_:: operator=(const sys_info_s::crit_exts_c_::crit_exts_future_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::pos_sys_info_r15: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); } return *this; } void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::pos_sys_info_r15: j.write_fieldname("posSystemInformation-r15"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); } j.end_obj(); } SRSASN_CODE sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::pos_sys_info_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::pos_sys_info_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SystemInformationBlockType1 ::= SEQUENCE SRSASN_CODE sib_type1_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p_max_present, 1)); HANDLE_CODE(bref.pack(tdd_cfg_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(cell_access_related_info.csg_id_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, cell_access_related_info.plmn_id_list, 1, 6)); HANDLE_CODE(cell_access_related_info.tac.pack(bref)); HANDLE_CODE(cell_access_related_info.cell_id.pack(bref)); HANDLE_CODE(pack_enum(bref, cell_access_related_info.cell_barred)); HANDLE_CODE(pack_enum(bref, cell_access_related_info.intra_freq_resel)); HANDLE_CODE(bref.pack(cell_access_related_info.csg_ind, 1)); if (cell_access_related_info.csg_id_present) { HANDLE_CODE(cell_access_related_info.csg_id.pack(bref)); } HANDLE_CODE(bref.pack(cell_sel_info.q_rx_lev_min_offset_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, cell_sel_info.q_rx_lev_min, (int8_t)-70, (int8_t)-22)); if (cell_sel_info.q_rx_lev_min_offset_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_sel_info.q_rx_lev_min_offset, (uint8_t)1, (uint8_t)8)); } if (p_max_present) { HANDLE_CODE(pack_unalign_integer(bref, p_max, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(pack_unalign_integer(bref, freq_band_ind, (uint8_t)1, (uint8_t)64)); HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list, 1, 32)); if (tdd_cfg_present) { HANDLE_CODE(tdd_cfg.pack(bref)); } HANDLE_CODE(pack_enum(bref, si_win_len)); HANDLE_CODE(pack_unalign_integer(bref, sys_info_value_tag, (uint8_t)0, (uint8_t)31)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p_max_present, 1)); HANDLE_CODE(bref.unpack(tdd_cfg_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(cell_access_related_info.csg_id_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info.plmn_id_list, bref, 1, 6)); HANDLE_CODE(cell_access_related_info.tac.unpack(bref)); HANDLE_CODE(cell_access_related_info.cell_id.unpack(bref)); HANDLE_CODE(unpack_enum(cell_access_related_info.cell_barred, bref)); HANDLE_CODE(unpack_enum(cell_access_related_info.intra_freq_resel, bref)); HANDLE_CODE(bref.unpack(cell_access_related_info.csg_ind, 1)); if (cell_access_related_info.csg_id_present) { HANDLE_CODE(cell_access_related_info.csg_id.unpack(bref)); } HANDLE_CODE(bref.unpack(cell_sel_info.q_rx_lev_min_offset_present, 1)); HANDLE_CODE(unpack_unalign_integer(cell_sel_info.q_rx_lev_min, bref, (int8_t)-70, (int8_t)-22)); if (cell_sel_info.q_rx_lev_min_offset_present) { HANDLE_CODE(unpack_unalign_integer(cell_sel_info.q_rx_lev_min_offset, bref, (uint8_t)1, (uint8_t)8)); } if (p_max_present) { HANDLE_CODE(unpack_unalign_integer(p_max, bref, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(unpack_unalign_integer(freq_band_ind, bref, (uint8_t)1, (uint8_t)64)); HANDLE_CODE(unpack_dyn_seq_of(sched_info_list, bref, 1, 32)); if (tdd_cfg_present) { HANDLE_CODE(tdd_cfg.unpack(bref)); } HANDLE_CODE(unpack_enum(si_win_len, bref)); HANDLE_CODE(unpack_unalign_integer(sys_info_value_tag, bref, (uint8_t)0, (uint8_t)31)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sib_type1_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("cellAccessRelatedInfo"); j.start_obj(); j.start_array("plmn-IdentityList"); for (uint32_t i1 = 0; i1 < cell_access_related_info.plmn_id_list.size(); ++i1) { cell_access_related_info.plmn_id_list[i1].to_json(j); } j.end_array(); j.write_str("trackingAreaCode", cell_access_related_info.tac.to_string()); j.write_str("cellIdentity", cell_access_related_info.cell_id.to_string()); j.write_str("cellBarred", cell_access_related_info.cell_barred.to_string()); j.write_str("intraFreqReselection", cell_access_related_info.intra_freq_resel.to_string()); j.write_bool("csg-Indication", cell_access_related_info.csg_ind); if (cell_access_related_info.csg_id_present) { j.write_str("csg-Identity", cell_access_related_info.csg_id.to_string()); } j.end_obj(); j.write_fieldname("cellSelectionInfo"); j.start_obj(); j.write_int("q-RxLevMin", cell_sel_info.q_rx_lev_min); if (cell_sel_info.q_rx_lev_min_offset_present) { j.write_int("q-RxLevMinOffset", cell_sel_info.q_rx_lev_min_offset); } j.end_obj(); if (p_max_present) { j.write_int("p-Max", p_max); } j.write_int("freqBandIndicator", freq_band_ind); j.start_array("schedulingInfoList"); for (uint32_t i1 = 0; i1 < sched_info_list.size(); ++i1) { sched_info_list[i1].to_json(j); } j.end_array(); if (tdd_cfg_present) { j.write_fieldname("tdd-Config"); tdd_cfg.to_json(j); } j.write_str("si-WindowLength", si_win_len.to_string()); j.write_int("systemInfoValueTag", sys_info_value_tag); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // BCCH-DL-SCH-MessageType ::= CHOICE void bcch_dl_sch_msg_type_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void bcch_dl_sch_msg_type_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); } } bcch_dl_sch_msg_type_c::bcch_dl_sch_msg_type_c(const bcch_dl_sch_msg_type_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); } } bcch_dl_sch_msg_type_c& bcch_dl_sch_msg_type_c::operator=(const bcch_dl_sch_msg_type_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); } return *this; } void bcch_dl_sch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); } j.end_obj(); } SRSASN_CODE bcch_dl_sch_msg_type_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_type_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void bcch_dl_sch_msg_type_c::c1_c_::destroy_() { switch (type_) { case types::sys_info: c.destroy(); break; case types::sib_type1: c.destroy(); break; default: break; } } void bcch_dl_sch_msg_type_c::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sys_info: c.init(); break; case types::sib_type1: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); } } bcch_dl_sch_msg_type_c::c1_c_::c1_c_(const bcch_dl_sch_msg_type_c::c1_c_& other) { type_ = other.type(); switch (type_) { case types::sys_info: c.init(other.c.get()); break; case types::sib_type1: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); } } bcch_dl_sch_msg_type_c::c1_c_& bcch_dl_sch_msg_type_c::c1_c_::operator=(const bcch_dl_sch_msg_type_c::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sys_info: c.set(other.c.get()); break; case types::sib_type1: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); } return *this; } void bcch_dl_sch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sys_info: j.write_fieldname("systemInformation"); c.get().to_json(j); break; case types::sib_type1: j.write_fieldname("systemInformationBlockType1"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); } j.end_obj(); } SRSASN_CODE bcch_dl_sch_msg_type_c::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sys_info: HANDLE_CODE(c.get().pack(bref)); break; case types::sib_type1: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_type_c::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sys_info: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib_type1: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // BCCH-DL-SCH-Message ::= SEQUENCE SRSASN_CODE bcch_dl_sch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void bcch_dl_sch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("BCCH-DL-SCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE void bcch_dl_sch_msg_type_br_r13_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void bcch_dl_sch_msg_type_br_r13_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); } } bcch_dl_sch_msg_type_br_r13_c::bcch_dl_sch_msg_type_br_r13_c(const bcch_dl_sch_msg_type_br_r13_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); } } bcch_dl_sch_msg_type_br_r13_c& bcch_dl_sch_msg_type_br_r13_c::operator=(const bcch_dl_sch_msg_type_br_r13_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); } return *this; } void bcch_dl_sch_msg_type_br_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); } j.end_obj(); } SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void bcch_dl_sch_msg_type_br_r13_c::c1_c_::destroy_() { switch (type_) { case types::sys_info_br_r13: c.destroy(); break; case types::sib_type1_br_r13: c.destroy(); break; default: break; } } void bcch_dl_sch_msg_type_br_r13_c::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sys_info_br_r13: c.init(); break; case types::sib_type1_br_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); } } bcch_dl_sch_msg_type_br_r13_c::c1_c_::c1_c_(const bcch_dl_sch_msg_type_br_r13_c::c1_c_& other) { type_ = other.type(); switch (type_) { case types::sys_info_br_r13: c.init(other.c.get()); break; case types::sib_type1_br_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); } } bcch_dl_sch_msg_type_br_r13_c::c1_c_& bcch_dl_sch_msg_type_br_r13_c::c1_c_:: operator=(const bcch_dl_sch_msg_type_br_r13_c::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sys_info_br_r13: c.set(other.c.get()); break; case types::sib_type1_br_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); } return *this; } void bcch_dl_sch_msg_type_br_r13_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sys_info_br_r13: j.write_fieldname("systemInformation-BR-r13"); c.get().to_json(j); break; case types::sib_type1_br_r13: j.write_fieldname("systemInformationBlockType1-BR-r13"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); } j.end_obj(); } SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sys_info_br_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::sib_type1_br_r13: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sys_info_br_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib_type1_br_r13: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // BCCH-DL-SCH-Message-BR ::= SEQUENCE SRSASN_CODE bcch_dl_sch_msg_br_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_br_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void bcch_dl_sch_msg_br_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("BCCH-DL-SCH-Message-BR"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // SchedulingInfo-MBMS-r14 ::= SEQUENCE SRSASN_CODE sched_info_mbms_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, si_periodicity_r14)); HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_r14, 0, 31, EnumPacker())); return SRSASN_SUCCESS; } SRSASN_CODE sched_info_mbms_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(si_periodicity_r14, bref)); HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_r14, bref, 0, 31, EnumPacker())); return SRSASN_SUCCESS; } void sched_info_mbms_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("si-Periodicity-r14", si_periodicity_r14.to_string()); j.start_array("sib-MappingInfo-r14"); for (uint32_t i1 = 0; i1 < sib_map_info_r14.size(); ++i1) { j.write_str(sib_map_info_r14[i1].to_string()); } j.end_array(); j.end_obj(); } // NonMBSFN-SubframeConfig-r14 ::= SEQUENCE SRSASN_CODE non_mbsfn_sf_cfg_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, radio_frame_alloc_period_r14)); HANDLE_CODE(pack_unalign_integer(bref, radio_frame_alloc_offset_r14, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(sf_alloc_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE non_mbsfn_sf_cfg_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(radio_frame_alloc_period_r14, bref)); HANDLE_CODE(unpack_unalign_integer(radio_frame_alloc_offset_r14, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(sf_alloc_r14.unpack(bref)); return SRSASN_SUCCESS; } void non_mbsfn_sf_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("radioFrameAllocationPeriod-r14", radio_frame_alloc_period_r14.to_string()); j.write_int("radioFrameAllocationOffset-r14", radio_frame_alloc_offset_r14); j.write_str("subframeAllocation-r14", sf_alloc_r14.to_string()); j.end_obj(); } // SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE SRSASN_CODE sib_type1_mbms_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(multi_band_info_list_r14_present, 1)); HANDLE_CODE(bref.pack(non_mbsfn_sf_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(sib_type13_r14_present, 1)); HANDLE_CODE(bref.pack(cell_access_related_info_list_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, cell_access_related_info_r14.plmn_id_list_r14, 1, 6)); HANDLE_CODE(cell_access_related_info_r14.tac_r14.pack(bref)); HANDLE_CODE(cell_access_related_info_r14.cell_id_r14.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, freq_band_ind_r14, (uint16_t)1, (uint16_t)256)); if (multi_band_info_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r14, 1, 8, UnalignedIntegerPacker(1, 256))); } HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_mbms_r14, 1, 32)); HANDLE_CODE(pack_enum(bref, si_win_len_r14)); HANDLE_CODE(pack_unalign_integer(bref, sys_info_value_tag_r14, (uint8_t)0, (uint8_t)31)); if (non_mbsfn_sf_cfg_r14_present) { HANDLE_CODE(non_mbsfn_sf_cfg_r14.pack(bref)); } HANDLE_CODE(pdsch_cfg_common_r14.pack(bref)); if (sib_type13_r14_present) { HANDLE_CODE(sib_type13_r14.pack(bref)); } if (cell_access_related_info_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cell_access_related_info_list_r14, 1, 5)); } return SRSASN_SUCCESS; } SRSASN_CODE sib_type1_mbms_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(multi_band_info_list_r14_present, 1)); HANDLE_CODE(bref.unpack(non_mbsfn_sf_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(sib_type13_r14_present, 1)); HANDLE_CODE(bref.unpack(cell_access_related_info_list_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info_r14.plmn_id_list_r14, bref, 1, 6)); HANDLE_CODE(cell_access_related_info_r14.tac_r14.unpack(bref)); HANDLE_CODE(cell_access_related_info_r14.cell_id_r14.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(freq_band_ind_r14, bref, (uint16_t)1, (uint16_t)256)); if (multi_band_info_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r14, bref, 1, 8, UnalignedIntegerPacker(1, 256))); } HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_mbms_r14, bref, 1, 32)); HANDLE_CODE(unpack_enum(si_win_len_r14, bref)); HANDLE_CODE(unpack_unalign_integer(sys_info_value_tag_r14, bref, (uint8_t)0, (uint8_t)31)); if (non_mbsfn_sf_cfg_r14_present) { HANDLE_CODE(non_mbsfn_sf_cfg_r14.unpack(bref)); } HANDLE_CODE(pdsch_cfg_common_r14.unpack(bref)); if (sib_type13_r14_present) { HANDLE_CODE(sib_type13_r14.unpack(bref)); } if (cell_access_related_info_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info_list_r14, bref, 1, 5)); } return SRSASN_SUCCESS; } void sib_type1_mbms_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("cellAccessRelatedInfo-r14"); j.start_obj(); j.start_array("plmn-IdentityList-r14"); for (uint32_t i1 = 0; i1 < cell_access_related_info_r14.plmn_id_list_r14.size(); ++i1) { cell_access_related_info_r14.plmn_id_list_r14[i1].to_json(j); } j.end_array(); j.write_str("trackingAreaCode-r14", cell_access_related_info_r14.tac_r14.to_string()); j.write_str("cellIdentity-r14", cell_access_related_info_r14.cell_id_r14.to_string()); j.end_obj(); j.write_int("freqBandIndicator-r14", freq_band_ind_r14); if (multi_band_info_list_r14_present) { j.start_array("multiBandInfoList-r14"); for (uint32_t i1 = 0; i1 < multi_band_info_list_r14.size(); ++i1) { j.write_int(multi_band_info_list_r14[i1]); } j.end_array(); } j.start_array("schedulingInfoList-MBMS-r14"); for (uint32_t i1 = 0; i1 < sched_info_list_mbms_r14.size(); ++i1) { sched_info_list_mbms_r14[i1].to_json(j); } j.end_array(); j.write_str("si-WindowLength-r14", si_win_len_r14.to_string()); j.write_int("systemInfoValueTag-r14", sys_info_value_tag_r14); if (non_mbsfn_sf_cfg_r14_present) { j.write_fieldname("nonMBSFN-SubframeConfig-r14"); non_mbsfn_sf_cfg_r14.to_json(j); } j.write_fieldname("pdsch-ConfigCommon-r14"); pdsch_cfg_common_r14.to_json(j); if (sib_type13_r14_present) { j.write_fieldname("systemInformationBlockType13-r14"); sib_type13_r14.to_json(j); } if (cell_access_related_info_list_r14_present) { j.start_array("cellAccessRelatedInfoList-r14"); for (uint32_t i1 = 0; i1 < cell_access_related_info_list_r14.size(); ++i1) { cell_access_related_info_list_r14[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE void bcch_dl_sch_msg_type_mbms_r14_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void bcch_dl_sch_msg_type_mbms_r14_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); } } bcch_dl_sch_msg_type_mbms_r14_c::bcch_dl_sch_msg_type_mbms_r14_c(const bcch_dl_sch_msg_type_mbms_r14_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); } } bcch_dl_sch_msg_type_mbms_r14_c& bcch_dl_sch_msg_type_mbms_r14_c:: operator=(const bcch_dl_sch_msg_type_mbms_r14_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); } return *this; } void bcch_dl_sch_msg_type_mbms_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); } j.end_obj(); } SRSASN_CODE bcch_dl_sch_msg_type_mbms_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_type_mbms_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::destroy_() { switch (type_) { case types::sys_info_mbms_r14: c.destroy(); break; case types::sib_type1_mbms_r14: c.destroy(); break; default: break; } } void bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sys_info_mbms_r14: c.init(); break; case types::sib_type1_mbms_r14: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c::c1_c_"); } } bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::c1_c_(const bcch_dl_sch_msg_type_mbms_r14_c::c1_c_& other) { type_ = other.type(); switch (type_) { case types::sys_info_mbms_r14: c.init(other.c.get()); break; case types::sib_type1_mbms_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c::c1_c_"); } } bcch_dl_sch_msg_type_mbms_r14_c::c1_c_& bcch_dl_sch_msg_type_mbms_r14_c::c1_c_:: operator=(const bcch_dl_sch_msg_type_mbms_r14_c::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sys_info_mbms_r14: c.set(other.c.get()); break; case types::sib_type1_mbms_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c::c1_c_"); } return *this; } void bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sys_info_mbms_r14: j.write_fieldname("systemInformation-MBMS-r14"); c.get().to_json(j); break; case types::sib_type1_mbms_r14: j.write_fieldname("systemInformationBlockType1-MBMS-r14"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c::c1_c_"); } j.end_obj(); } SRSASN_CODE bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sys_info_mbms_r14: HANDLE_CODE(c.get().pack(bref)); break; case types::sib_type1_mbms_r14: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sys_info_mbms_r14: HANDLE_CODE(c.get().unpack(bref)); break; case types::sib_type1_mbms_r14: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // BCCH-DL-SCH-Message-MBMS ::= SEQUENCE SRSASN_CODE bcch_dl_sch_msg_mbms_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE bcch_dl_sch_msg_mbms_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void bcch_dl_sch_msg_mbms_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("BCCH-DL-SCH-Message-MBMS"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // P-C-AndCBSR-r13 ::= SEQUENCE SRSASN_CODE p_c_and_cbsr_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, p_c_r13, (int8_t)-8, (int8_t)15)); HANDLE_CODE(cbsr_sel_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE p_c_and_cbsr_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(p_c_r13, bref, (int8_t)-8, (int8_t)15)); HANDLE_CODE(cbsr_sel_r13.unpack(bref)); return SRSASN_SUCCESS; } void p_c_and_cbsr_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p-C-r13", p_c_r13); j.write_fieldname("cbsr-Selection-r13"); cbsr_sel_r13.to_json(j); j.end_obj(); } void p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::destroy_() { switch (type_) { case types::non_precoded_r13: c.destroy(); break; case types::beamformed_k1a_r13: c.destroy(); break; case types::beamformed_kn_r13: c.destroy(); break; default: break; } } void p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::non_precoded_r13: c.init(); break; case types::beamformed_k1a_r13: c.init(); break; case types::beamformed_kn_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "p_c_and_cbsr_r13_s::cbsr_sel_r13_c_"); } } p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::cbsr_sel_r13_c_(const p_c_and_cbsr_r13_s::cbsr_sel_r13_c_& other) { type_ = other.type(); switch (type_) { case types::non_precoded_r13: c.init(other.c.get()); break; case types::beamformed_k1a_r13: c.init(other.c.get()); break; case types::beamformed_kn_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "p_c_and_cbsr_r13_s::cbsr_sel_r13_c_"); } } p_c_and_cbsr_r13_s::cbsr_sel_r13_c_& p_c_and_cbsr_r13_s::cbsr_sel_r13_c_:: operator=(const p_c_and_cbsr_r13_s::cbsr_sel_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::non_precoded_r13: c.set(other.c.get()); break; case types::beamformed_k1a_r13: c.set(other.c.get()); break; case types::beamformed_kn_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "p_c_and_cbsr_r13_s::cbsr_sel_r13_c_"); } return *this; } void p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::non_precoded_r13: j.write_fieldname("nonPrecoded-r13"); j.start_obj(); j.write_str("codebookSubsetRestriction1-r13", c.get().codebook_subset_restrict1_r13.to_string()); j.write_str("codebookSubsetRestriction2-r13", c.get().codebook_subset_restrict2_r13.to_string()); j.end_obj(); break; case types::beamformed_k1a_r13: j.write_fieldname("beamformedK1a-r13"); j.start_obj(); j.write_str("codebookSubsetRestriction3-r13", c.get().codebook_subset_restrict3_r13.to_string()); j.end_obj(); break; case types::beamformed_kn_r13: j.write_fieldname("beamformedKN-r13"); j.start_obj(); j.write_str("codebookSubsetRestriction-r13", c.get().codebook_subset_restrict_r13.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "p_c_and_cbsr_r13_s::cbsr_sel_r13_c_"); } j.end_obj(); } SRSASN_CODE p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::non_precoded_r13: HANDLE_CODE(c.get().codebook_subset_restrict1_r13.pack(bref)); HANDLE_CODE(c.get().codebook_subset_restrict2_r13.pack(bref)); break; case types::beamformed_k1a_r13: HANDLE_CODE(c.get().codebook_subset_restrict3_r13.pack(bref)); break; case types::beamformed_kn_r13: HANDLE_CODE(c.get().codebook_subset_restrict_r13.pack(bref)); break; default: log_invalid_choice_id(type_, "p_c_and_cbsr_r13_s::cbsr_sel_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::non_precoded_r13: HANDLE_CODE(c.get().codebook_subset_restrict1_r13.unpack(bref)); HANDLE_CODE(c.get().codebook_subset_restrict2_r13.unpack(bref)); break; case types::beamformed_k1a_r13: HANDLE_CODE(c.get().codebook_subset_restrict3_r13.unpack(bref)); break; case types::beamformed_kn_r13: HANDLE_CODE(c.get().codebook_subset_restrict_r13.unpack(bref)); break; default: log_invalid_choice_id(type_, "p_c_and_cbsr_r13_s::cbsr_sel_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-Config-NZP-v1430 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_nzp_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tx_comb_r14_present, 1)); HANDLE_CODE(bref.pack(freq_density_r14_present, 1)); if (tx_comb_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, tx_comb_r14, (uint8_t)0, (uint8_t)2)); } if (freq_density_r14_present) { HANDLE_CODE(pack_enum(bref, freq_density_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_nzp_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tx_comb_r14_present, 1)); HANDLE_CODE(bref.unpack(freq_density_r14_present, 1)); if (tx_comb_r14_present) { HANDLE_CODE(unpack_unalign_integer(tx_comb_r14, bref, (uint8_t)0, (uint8_t)2)); } if (freq_density_r14_present) { HANDLE_CODE(unpack_enum(freq_density_r14, bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_nzp_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (tx_comb_r14_present) { j.write_int("transmissionComb-r14", tx_comb_r14); } if (freq_density_r14_present) { j.write_str("frequencyDensity-r14", freq_density_r14.to_string()); } j.end_obj(); } // CSI-RS-ConfigNZP-Activation-r14 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_nzp_activation_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, csi_rs_nzp_mode_r14)); HANDLE_CODE(pack_unalign_integer(bref, activ_res_r14, (uint8_t)0, (uint8_t)4)); return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_nzp_activation_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(csi_rs_nzp_mode_r14, bref)); HANDLE_CODE(unpack_unalign_integer(activ_res_r14, bref, (uint8_t)0, (uint8_t)4)); return SRSASN_SUCCESS; } void csi_rs_cfg_nzp_activation_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("csi-RS-NZP-mode-r14", csi_rs_nzp_mode_r14.to_string()); j.write_int("activatedResources-r14", activ_res_r14); j.end_obj(); } // CSI-RS-ConfigNZP-r11 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_nzp_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(qcl_crs_info_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, csi_rs_cfg_nzp_id_r11, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(pack_enum(bref, ant_ports_count_r11)); HANDLE_CODE(pack_unalign_integer(bref, res_cfg_r11, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, sf_cfg_r11, (uint8_t)0, (uint8_t)154)); HANDLE_CODE(pack_unalign_integer(bref, scrambling_id_r11, (uint16_t)0, (uint16_t)503)); if (qcl_crs_info_r11_present) { HANDLE_CODE(bref.pack(qcl_crs_info_r11.mbsfn_sf_cfg_list_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, qcl_crs_info_r11.qcl_scrambling_id_r11, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_enum(bref, qcl_crs_info_r11.crs_ports_count_r11)); if (qcl_crs_info_r11.mbsfn_sf_cfg_list_r11_present) { HANDLE_CODE(qcl_crs_info_r11.mbsfn_sf_cfg_list_r11.pack(bref)); } } if (ext) { ext_groups_header group_flags(3); group_flags[0] |= csi_rs_cfg_nzp_id_v1310_present; group_flags[1] |= tx_comb_r14_present; group_flags[1] |= freq_density_r14_present; rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); group_flags[2] |= mbsfn_sf_cfg_list_v1430_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_id_v1310_present, 1)); if (csi_rs_cfg_nzp_id_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, csi_rs_cfg_nzp_id_v1310, (uint8_t)4, (uint8_t)24)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(tx_comb_r14_present, 1)); HANDLE_CODE(bref.pack(freq_density_r14_present, 1)); if (tx_comb_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, tx_comb_r14, (uint8_t)0, (uint8_t)2)); } if (freq_density_r14_present) { HANDLE_CODE(pack_enum(bref, freq_density_r14)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { HANDLE_CODE(mbsfn_sf_cfg_list_v1430->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_nzp_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(qcl_crs_info_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(csi_rs_cfg_nzp_id_r11, bref, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(unpack_enum(ant_ports_count_r11, bref)); HANDLE_CODE(unpack_unalign_integer(res_cfg_r11, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(sf_cfg_r11, bref, (uint8_t)0, (uint8_t)154)); HANDLE_CODE(unpack_unalign_integer(scrambling_id_r11, bref, (uint16_t)0, (uint16_t)503)); if (qcl_crs_info_r11_present) { HANDLE_CODE(bref.unpack(qcl_crs_info_r11.mbsfn_sf_cfg_list_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(qcl_crs_info_r11.qcl_scrambling_id_r11, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_enum(qcl_crs_info_r11.crs_ports_count_r11, bref)); if (qcl_crs_info_r11.mbsfn_sf_cfg_list_r11_present) { HANDLE_CODE(qcl_crs_info_r11.mbsfn_sf_cfg_list_r11.unpack(bref)); } } if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_id_v1310_present, 1)); if (csi_rs_cfg_nzp_id_v1310_present) { HANDLE_CODE(unpack_unalign_integer(csi_rs_cfg_nzp_id_v1310, bref, (uint8_t)4, (uint8_t)24)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(tx_comb_r14_present, 1)); HANDLE_CODE(bref.unpack(freq_density_r14_present, 1)); if (tx_comb_r14_present) { HANDLE_CODE(unpack_unalign_integer(tx_comb_r14, bref, (uint8_t)0, (uint8_t)2)); } if (freq_density_r14_present) { HANDLE_CODE(unpack_enum(freq_density_r14, bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { mbsfn_sf_cfg_list_v1430 = make_copy_ptr(mbsfn_sf_cfg_list_v1430_c_()); HANDLE_CODE(mbsfn_sf_cfg_list_v1430->unpack(bref)); } } } return SRSASN_SUCCESS; } void csi_rs_cfg_nzp_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("csi-RS-ConfigNZPId-r11", csi_rs_cfg_nzp_id_r11); j.write_str("antennaPortsCount-r11", ant_ports_count_r11.to_string()); j.write_int("resourceConfig-r11", res_cfg_r11); j.write_int("subframeConfig-r11", sf_cfg_r11); j.write_int("scramblingIdentity-r11", scrambling_id_r11); if (qcl_crs_info_r11_present) { j.write_fieldname("qcl-CRS-Info-r11"); j.start_obj(); j.write_int("qcl-ScramblingIdentity-r11", qcl_crs_info_r11.qcl_scrambling_id_r11); j.write_str("crs-PortsCount-r11", qcl_crs_info_r11.crs_ports_count_r11.to_string()); if (qcl_crs_info_r11.mbsfn_sf_cfg_list_r11_present) { j.write_fieldname("mbsfn-SubframeConfigList-r11"); qcl_crs_info_r11.mbsfn_sf_cfg_list_r11.to_json(j); } j.end_obj(); } if (ext) { if (csi_rs_cfg_nzp_id_v1310_present) { j.write_int("csi-RS-ConfigNZPId-v1310", csi_rs_cfg_nzp_id_v1310); } if (tx_comb_r14_present) { j.write_int("transmissionComb-r14", tx_comb_r14); } if (freq_density_r14_present) { j.write_str("frequencyDensity-r14", freq_density_r14.to_string()); } rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); if (mbsfn_sf_cfg_list_v1430_present) { j.write_fieldname("mbsfn-SubframeConfigList-v1430"); mbsfn_sf_cfg_list_v1430->to_json(j); } } j.end_obj(); } void csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::set(types::options e) { type_ = e; } void csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("subframeConfigList"); for (uint32_t i1 = 0; i1 < c.sf_cfg_list.size(); ++i1) { c.sf_cfg_list[i1].to_json(j); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.sf_cfg_list, 1, 8)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.sf_cfg_list, bref, 1, 8)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::set(types::options e) { type_ = e; } void csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("subframeConfigList-v1430"); for (uint32_t i1 = 0; i1 < c.sf_cfg_list_v1430.size(); ++i1) { c.sf_cfg_list_v1430[i1].to_json(j); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.sf_cfg_list_v1430, 1, 8)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.sf_cfg_list_v1430, bref, 1, 8)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // NZP-ResourceConfig-r13 ::= SEQUENCE SRSASN_CODE nzp_res_cfg_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, res_cfg_r13, (uint8_t)0, (uint8_t)31)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= tx_comb_r14_present; group_flags[0] |= freq_density_r14_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(tx_comb_r14_present, 1)); HANDLE_CODE(bref.pack(freq_density_r14_present, 1)); if (tx_comb_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, tx_comb_r14, (uint8_t)0, (uint8_t)2)); } if (freq_density_r14_present) { HANDLE_CODE(pack_enum(bref, freq_density_r14)); } } } return SRSASN_SUCCESS; } SRSASN_CODE nzp_res_cfg_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(res_cfg_r13, bref, (uint8_t)0, (uint8_t)31)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(tx_comb_r14_present, 1)); HANDLE_CODE(bref.unpack(freq_density_r14_present, 1)); if (tx_comb_r14_present) { HANDLE_CODE(unpack_unalign_integer(tx_comb_r14, bref, (uint8_t)0, (uint8_t)2)); } if (freq_density_r14_present) { HANDLE_CODE(unpack_enum(freq_density_r14, bref)); } } } return SRSASN_SUCCESS; } void nzp_res_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("resourceConfig-r13", res_cfg_r13); if (ext) { if (tx_comb_r14_present) { j.write_int("transmissionComb-r14", tx_comb_r14); } if (freq_density_r14_present) { j.write_str("frequencyDensity-r14", freq_density_r14.to_string()); } } j.end_obj(); } // P-C-AndCBSR-r15 ::= SEQUENCE SRSASN_CODE p_c_and_cbsr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, p_c_r15, (int8_t)-8, (int8_t)15)); HANDLE_CODE(codebook_subset_restrict4_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE p_c_and_cbsr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(p_c_r15, bref, (int8_t)-8, (int8_t)15)); HANDLE_CODE(codebook_subset_restrict4_r15.unpack(bref)); return SRSASN_SUCCESS; } void p_c_and_cbsr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p-C-r15", p_c_r15); j.write_str("codebookSubsetRestriction4-r15", codebook_subset_restrict4_r15.to_string()); j.end_obj(); } // CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_beamformed_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_id_list_ext_r14_present, 1)); HANDLE_CODE(bref.pack(csi_im_cfg_id_list_r14_present, 1)); HANDLE_CODE(bref.pack(p_c_and_cbsr_per_res_cfg_list_r14_present, 1)); HANDLE_CODE(bref.pack(ace_for4_tx_per_res_cfg_list_r14_present, 1)); HANDLE_CODE(bref.pack(alternative_codebook_enabled_beamformed_r14_present, 1)); HANDLE_CODE(bref.pack(ch_meas_restrict_r14_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_ap_list_r14_present, 1)); HANDLE_CODE(bref.pack(nzp_res_cfg_original_v1430_present, 1)); HANDLE_CODE(bref.pack(csi_rs_nzp_activation_r14_present, 1)); if (csi_rs_cfg_nzp_id_list_ext_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_rs_cfg_nzp_id_list_ext_r14, 1, 7, UnalignedIntegerPacker(1, 24))); } if (csi_im_cfg_id_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_cfg_id_list_r14, 1, 8, UnalignedIntegerPacker(1, 24))); } if (p_c_and_cbsr_per_res_cfg_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, p_c_and_cbsr_per_res_cfg_list_r14, 1, 8, SeqOfPacker(1, 2, Packer()))); } if (ace_for4_tx_per_res_cfg_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ace_for4_tx_per_res_cfg_list_r14, 1, 7, BitPacker(1))); } if (csi_rs_cfg_nzp_ap_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_rs_cfg_nzp_ap_list_r14, 1, 8)); } if (nzp_res_cfg_original_v1430_present) { HANDLE_CODE(nzp_res_cfg_original_v1430.pack(bref)); } if (csi_rs_nzp_activation_r14_present) { HANDLE_CODE(csi_rs_nzp_activation_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_beamformed_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_id_list_ext_r14_present, 1)); HANDLE_CODE(bref.unpack(csi_im_cfg_id_list_r14_present, 1)); HANDLE_CODE(bref.unpack(p_c_and_cbsr_per_res_cfg_list_r14_present, 1)); HANDLE_CODE(bref.unpack(ace_for4_tx_per_res_cfg_list_r14_present, 1)); HANDLE_CODE(bref.unpack(alternative_codebook_enabled_beamformed_r14_present, 1)); HANDLE_CODE(bref.unpack(ch_meas_restrict_r14_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_ap_list_r14_present, 1)); HANDLE_CODE(bref.unpack(nzp_res_cfg_original_v1430_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_nzp_activation_r14_present, 1)); if (csi_rs_cfg_nzp_id_list_ext_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_rs_cfg_nzp_id_list_ext_r14, bref, 1, 7, UnalignedIntegerPacker(1, 24))); } if (csi_im_cfg_id_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_im_cfg_id_list_r14, bref, 1, 8, UnalignedIntegerPacker(1, 24))); } if (p_c_and_cbsr_per_res_cfg_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(p_c_and_cbsr_per_res_cfg_list_r14, bref, 1, 8, SeqOfPacker(1, 2, Packer()))); } if (ace_for4_tx_per_res_cfg_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(ace_for4_tx_per_res_cfg_list_r14, bref, 1, 7, BitPacker(1))); } if (csi_rs_cfg_nzp_ap_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_rs_cfg_nzp_ap_list_r14, bref, 1, 8)); } if (nzp_res_cfg_original_v1430_present) { HANDLE_CODE(nzp_res_cfg_original_v1430.unpack(bref)); } if (csi_rs_nzp_activation_r14_present) { HANDLE_CODE(csi_rs_nzp_activation_r14.unpack(bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_beamformed_r14_s::to_json(json_writer& j) const { j.start_obj(); if (csi_rs_cfg_nzp_id_list_ext_r14_present) { j.start_array("csi-RS-ConfigNZPIdListExt-r14"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_id_list_ext_r14.size(); ++i1) { j.write_int(csi_rs_cfg_nzp_id_list_ext_r14[i1]); } j.end_array(); } if (csi_im_cfg_id_list_r14_present) { j.start_array("csi-IM-ConfigIdList-r14"); for (uint32_t i1 = 0; i1 < csi_im_cfg_id_list_r14.size(); ++i1) { j.write_int(csi_im_cfg_id_list_r14[i1]); } j.end_array(); } if (p_c_and_cbsr_per_res_cfg_list_r14_present) { j.start_array("p-C-AndCBSR-PerResourceConfigList-r14"); for (uint32_t i1 = 0; i1 < p_c_and_cbsr_per_res_cfg_list_r14.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < p_c_and_cbsr_per_res_cfg_list_r14[i1].size(); ++i2) { p_c_and_cbsr_per_res_cfg_list_r14[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } if (ace_for4_tx_per_res_cfg_list_r14_present) { j.start_array("ace-For4Tx-PerResourceConfigList-r14"); for (uint32_t i1 = 0; i1 < ace_for4_tx_per_res_cfg_list_r14.size(); ++i1) { j.write_bool(ace_for4_tx_per_res_cfg_list_r14[i1]); } j.end_array(); } if (alternative_codebook_enabled_beamformed_r14_present) { j.write_str("alternativeCodebookEnabledBeamformed-r14", "true"); } if (ch_meas_restrict_r14_present) { j.write_str("channelMeasRestriction-r14", "on"); } if (csi_rs_cfg_nzp_ap_list_r14_present) { j.start_array("csi-RS-ConfigNZP-ApList-r14"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_ap_list_r14.size(); ++i1) { csi_rs_cfg_nzp_ap_list_r14[i1].to_json(j); } j.end_array(); } if (nzp_res_cfg_original_v1430_present) { j.write_fieldname("nzp-ResourceConfigOriginal-v1430"); nzp_res_cfg_original_v1430.to_json(j); } if (csi_rs_nzp_activation_r14_present) { j.write_fieldname("csi-RS-NZP-Activation-r14"); csi_rs_nzp_activation_r14.to_json(j); } j.end_obj(); } // CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE void csi_rs_cfg_nzp_emimo_r13_c::set(types::options e) { type_ = e; } void csi_rs_cfg_nzp_emimo_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("nzp-resourceConfigList-r13"); for (uint32_t i1 = 0; i1 < c.nzp_res_cfg_list_r13.size(); ++i1) { c.nzp_res_cfg_list_r13[i1].to_json(j); } j.end_array(); if (c.cdm_type_r13_present) { j.write_str("cdmType-r13", c.cdm_type_r13.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_emimo_r13_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_nzp_emimo_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.cdm_type_r13_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, c.nzp_res_cfg_list_r13, 1, 2)); if (c.cdm_type_r13_present) { HANDLE_CODE(pack_enum(bref, c.cdm_type_r13)); } break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_emimo_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_nzp_emimo_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.cdm_type_r13_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(c.nzp_res_cfg_list_r13, bref, 1, 2)); if (c.cdm_type_r13_present) { HANDLE_CODE(unpack_enum(c.cdm_type_r13, bref)); } break; default: log_invalid_choice_id(type_, "csi_rs_cfg_nzp_emimo_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_nzp_emimo_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cdm_type_v1430_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, nzp_res_cfg_list_ext_r14, 0, 4)); return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_nzp_emimo_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cdm_type_v1430_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(nzp_res_cfg_list_ext_r14, bref, 0, 4)); return SRSASN_SUCCESS; } void csi_rs_cfg_nzp_emimo_v1430_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("nzp-resourceConfigListExt-r14"); for (uint32_t i1 = 0; i1 < nzp_res_cfg_list_ext_r14.size(); ++i1) { nzp_res_cfg_list_ext_r14[i1].to_json(j); } j.end_array(); if (cdm_type_v1430_present) { j.write_str("cdmType-v1430", "cdm8"); } j.end_obj(); } // CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_beamformed_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_id_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(csi_im_cfg_id_list_r13_present, 1)); HANDLE_CODE(bref.pack(p_c_and_cbsr_per_res_cfg_list_r13_present, 1)); HANDLE_CODE(bref.pack(ace_for4_tx_per_res_cfg_list_r13_present, 1)); HANDLE_CODE(bref.pack(alternative_codebook_enabled_beamformed_r13_present, 1)); HANDLE_CODE(bref.pack(ch_meas_restrict_r13_present, 1)); if (csi_rs_cfg_nzp_id_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_rs_cfg_nzp_id_list_ext_r13, 1, 7, UnalignedIntegerPacker(1, 24))); } if (csi_im_cfg_id_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_cfg_id_list_r13, 1, 8, UnalignedIntegerPacker(1, 24))); } if (p_c_and_cbsr_per_res_cfg_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, p_c_and_cbsr_per_res_cfg_list_r13, 1, 8, SeqOfPacker(1, 2, Packer()))); } if (ace_for4_tx_per_res_cfg_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ace_for4_tx_per_res_cfg_list_r13, 1, 7, BitPacker(1))); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_beamformed_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_id_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_im_cfg_id_list_r13_present, 1)); HANDLE_CODE(bref.unpack(p_c_and_cbsr_per_res_cfg_list_r13_present, 1)); HANDLE_CODE(bref.unpack(ace_for4_tx_per_res_cfg_list_r13_present, 1)); HANDLE_CODE(bref.unpack(alternative_codebook_enabled_beamformed_r13_present, 1)); HANDLE_CODE(bref.unpack(ch_meas_restrict_r13_present, 1)); if (csi_rs_cfg_nzp_id_list_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_rs_cfg_nzp_id_list_ext_r13, bref, 1, 7, UnalignedIntegerPacker(1, 24))); } if (csi_im_cfg_id_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_im_cfg_id_list_r13, bref, 1, 8, UnalignedIntegerPacker(1, 24))); } if (p_c_and_cbsr_per_res_cfg_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(p_c_and_cbsr_per_res_cfg_list_r13, bref, 1, 8, SeqOfPacker(1, 2, Packer()))); } if (ace_for4_tx_per_res_cfg_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(ace_for4_tx_per_res_cfg_list_r13, bref, 1, 7, BitPacker(1))); } return SRSASN_SUCCESS; } void csi_rs_cfg_beamformed_r13_s::to_json(json_writer& j) const { j.start_obj(); if (csi_rs_cfg_nzp_id_list_ext_r13_present) { j.start_array("csi-RS-ConfigNZPIdListExt-r13"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_id_list_ext_r13.size(); ++i1) { j.write_int(csi_rs_cfg_nzp_id_list_ext_r13[i1]); } j.end_array(); } if (csi_im_cfg_id_list_r13_present) { j.start_array("csi-IM-ConfigIdList-r13"); for (uint32_t i1 = 0; i1 < csi_im_cfg_id_list_r13.size(); ++i1) { j.write_int(csi_im_cfg_id_list_r13[i1]); } j.end_array(); } if (p_c_and_cbsr_per_res_cfg_list_r13_present) { j.start_array("p-C-AndCBSR-PerResourceConfigList-r13"); for (uint32_t i1 = 0; i1 < p_c_and_cbsr_per_res_cfg_list_r13.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < p_c_and_cbsr_per_res_cfg_list_r13[i1].size(); ++i2) { p_c_and_cbsr_per_res_cfg_list_r13[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } if (ace_for4_tx_per_res_cfg_list_r13_present) { j.start_array("ace-For4Tx-PerResourceConfigList-r13"); for (uint32_t i1 = 0; i1 < ace_for4_tx_per_res_cfg_list_r13.size(); ++i1) { j.write_bool(ace_for4_tx_per_res_cfg_list_r13[i1]); } j.end_array(); } if (alternative_codebook_enabled_beamformed_r13_present) { j.write_str("alternativeCodebookEnabledBeamformed-r13", "true"); } if (ch_meas_restrict_r13_present) { j.write_str("channelMeasRestriction-r13", "on"); } j.end_obj(); } // CSI-RS-ConfigBeamformed-v1430 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_beamformed_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_ap_list_r14_present, 1)); HANDLE_CODE(bref.pack(nzp_res_cfg_original_v1430_present, 1)); HANDLE_CODE(bref.pack(csi_rs_nzp_activation_r14_present, 1)); if (csi_rs_cfg_nzp_ap_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_rs_cfg_nzp_ap_list_r14, 1, 8)); } if (nzp_res_cfg_original_v1430_present) { HANDLE_CODE(nzp_res_cfg_original_v1430.pack(bref)); } if (csi_rs_nzp_activation_r14_present) { HANDLE_CODE(csi_rs_nzp_activation_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_beamformed_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_ap_list_r14_present, 1)); HANDLE_CODE(bref.unpack(nzp_res_cfg_original_v1430_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_nzp_activation_r14_present, 1)); if (csi_rs_cfg_nzp_ap_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_rs_cfg_nzp_ap_list_r14, bref, 1, 8)); } if (nzp_res_cfg_original_v1430_present) { HANDLE_CODE(nzp_res_cfg_original_v1430.unpack(bref)); } if (csi_rs_nzp_activation_r14_present) { HANDLE_CODE(csi_rs_nzp_activation_r14.unpack(bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_beamformed_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (csi_rs_cfg_nzp_ap_list_r14_present) { j.start_array("csi-RS-ConfigNZP-ApList-r14"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_ap_list_r14.size(); ++i1) { csi_rs_cfg_nzp_ap_list_r14[i1].to_json(j); } j.end_array(); } if (nzp_res_cfg_original_v1430_present) { j.write_fieldname("nzp-ResourceConfigOriginal-v1430"); nzp_res_cfg_original_v1430.to_json(j); } if (csi_rs_nzp_activation_r14_present) { j.write_fieldname("csi-RS-NZP-Activation-r14"); csi_rs_nzp_activation_r14.to_json(j); } j.end_obj(); } // CSI-RS-ConfigEMIMO2-r14 ::= CHOICE void csi_rs_cfg_emimo2_r14_c::set(types::options e) { type_ = e; } void csi_rs_cfg_emimo2_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo2_r14_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo2_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo2_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo2_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo2_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_non_precoded_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p_c_and_cbsr_list_r13_present, 1)); HANDLE_CODE(bref.pack(codebook_over_sampling_rate_cfg_o1_r13_present, 1)); HANDLE_CODE(bref.pack(codebook_over_sampling_rate_cfg_o2_r13_present, 1)); HANDLE_CODE(bref.pack(csi_im_cfg_id_list_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_emimo_r13_present, 1)); if (p_c_and_cbsr_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, p_c_and_cbsr_list_r13, 1, 2)); } HANDLE_CODE(pack_enum(bref, codebook_cfg_n1_r13)); HANDLE_CODE(pack_enum(bref, codebook_cfg_n2_r13)); if (codebook_over_sampling_rate_cfg_o1_r13_present) { HANDLE_CODE(pack_enum(bref, codebook_over_sampling_rate_cfg_o1_r13)); } if (codebook_over_sampling_rate_cfg_o2_r13_present) { HANDLE_CODE(pack_enum(bref, codebook_over_sampling_rate_cfg_o2_r13)); } HANDLE_CODE(pack_unalign_integer(bref, codebook_cfg_r13, (uint8_t)1, (uint8_t)4)); if (csi_im_cfg_id_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_cfg_id_list_r13, 1, 2, UnalignedIntegerPacker(1, 24))); } if (csi_rs_cfg_nzp_emimo_r13_present) { HANDLE_CODE(csi_rs_cfg_nzp_emimo_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_non_precoded_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p_c_and_cbsr_list_r13_present, 1)); HANDLE_CODE(bref.unpack(codebook_over_sampling_rate_cfg_o1_r13_present, 1)); HANDLE_CODE(bref.unpack(codebook_over_sampling_rate_cfg_o2_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_im_cfg_id_list_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_emimo_r13_present, 1)); if (p_c_and_cbsr_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(p_c_and_cbsr_list_r13, bref, 1, 2)); } HANDLE_CODE(unpack_enum(codebook_cfg_n1_r13, bref)); HANDLE_CODE(unpack_enum(codebook_cfg_n2_r13, bref)); if (codebook_over_sampling_rate_cfg_o1_r13_present) { HANDLE_CODE(unpack_enum(codebook_over_sampling_rate_cfg_o1_r13, bref)); } if (codebook_over_sampling_rate_cfg_o2_r13_present) { HANDLE_CODE(unpack_enum(codebook_over_sampling_rate_cfg_o2_r13, bref)); } HANDLE_CODE(unpack_unalign_integer(codebook_cfg_r13, bref, (uint8_t)1, (uint8_t)4)); if (csi_im_cfg_id_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_im_cfg_id_list_r13, bref, 1, 2, UnalignedIntegerPacker(1, 24))); } if (csi_rs_cfg_nzp_emimo_r13_present) { HANDLE_CODE(csi_rs_cfg_nzp_emimo_r13.unpack(bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_non_precoded_r13_s::to_json(json_writer& j) const { j.start_obj(); if (p_c_and_cbsr_list_r13_present) { j.start_array("p-C-AndCBSRList-r13"); for (uint32_t i1 = 0; i1 < p_c_and_cbsr_list_r13.size(); ++i1) { p_c_and_cbsr_list_r13[i1].to_json(j); } j.end_array(); } j.write_str("codebookConfigN1-r13", codebook_cfg_n1_r13.to_string()); j.write_str("codebookConfigN2-r13", codebook_cfg_n2_r13.to_string()); if (codebook_over_sampling_rate_cfg_o1_r13_present) { j.write_str("codebookOverSamplingRateConfig-O1-r13", codebook_over_sampling_rate_cfg_o1_r13.to_string()); } if (codebook_over_sampling_rate_cfg_o2_r13_present) { j.write_str("codebookOverSamplingRateConfig-O2-r13", codebook_over_sampling_rate_cfg_o2_r13.to_string()); } j.write_int("codebookConfig-r13", codebook_cfg_r13); if (csi_im_cfg_id_list_r13_present) { j.start_array("csi-IM-ConfigIdList-r13"); for (uint32_t i1 = 0; i1 < csi_im_cfg_id_list_r13.size(); ++i1) { j.write_int(csi_im_cfg_id_list_r13[i1]); } j.end_array(); } if (csi_rs_cfg_nzp_emimo_r13_present) { j.write_fieldname("csi-RS-ConfigNZP-EMIMO-r13"); csi_rs_cfg_nzp_emimo_r13.to_json(j); } j.end_obj(); } // CSI-RS-ConfigNonPrecoded-v1430 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_non_precoded_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_emimo_v1430_present, 1)); if (csi_rs_cfg_nzp_emimo_v1430_present) { HANDLE_CODE(csi_rs_cfg_nzp_emimo_v1430.pack(bref)); } HANDLE_CODE(pack_enum(bref, codebook_cfg_n1_v1430)); HANDLE_CODE(pack_enum(bref, codebook_cfg_n2_v1430)); HANDLE_CODE(nzp_res_cfg_tm9_original_v1430.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_non_precoded_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_emimo_v1430_present, 1)); if (csi_rs_cfg_nzp_emimo_v1430_present) { HANDLE_CODE(csi_rs_cfg_nzp_emimo_v1430.unpack(bref)); } HANDLE_CODE(unpack_enum(codebook_cfg_n1_v1430, bref)); HANDLE_CODE(unpack_enum(codebook_cfg_n2_v1430, bref)); HANDLE_CODE(nzp_res_cfg_tm9_original_v1430.unpack(bref)); return SRSASN_SUCCESS; } void csi_rs_cfg_non_precoded_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (csi_rs_cfg_nzp_emimo_v1430_present) { j.write_fieldname("csi-RS-ConfigNZP-EMIMO-v1430"); csi_rs_cfg_nzp_emimo_v1430.to_json(j); } j.write_str("codebookConfigN1-v1430", codebook_cfg_n1_v1430.to_string()); j.write_str("codebookConfigN2-v1430", codebook_cfg_n2_v1430.to_string()); j.write_fieldname("nzp-ResourceConfigTM9-Original-v1430"); nzp_res_cfg_tm9_original_v1430.to_json(j); j.end_obj(); } // CSI-RS-ConfigNonPrecoded-v1480 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_non_precoded_v1480_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_emimo_v1480_present, 1)); HANDLE_CODE(bref.pack(codebook_cfg_n1_v1480_present, 1)); HANDLE_CODE(bref.pack(codebook_cfg_n2_r1480_present, 1)); if (csi_rs_cfg_nzp_emimo_v1480_present) { HANDLE_CODE(csi_rs_cfg_nzp_emimo_v1480.pack(bref)); } if (codebook_cfg_n1_v1480_present) { HANDLE_CODE(pack_enum(bref, codebook_cfg_n1_v1480)); } if (codebook_cfg_n2_r1480_present) { HANDLE_CODE(pack_enum(bref, codebook_cfg_n2_r1480)); } HANDLE_CODE(nzp_res_cfg_tm9_original_v1480.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_non_precoded_v1480_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_emimo_v1480_present, 1)); HANDLE_CODE(bref.unpack(codebook_cfg_n1_v1480_present, 1)); HANDLE_CODE(bref.unpack(codebook_cfg_n2_r1480_present, 1)); if (csi_rs_cfg_nzp_emimo_v1480_present) { HANDLE_CODE(csi_rs_cfg_nzp_emimo_v1480.unpack(bref)); } if (codebook_cfg_n1_v1480_present) { HANDLE_CODE(unpack_enum(codebook_cfg_n1_v1480, bref)); } if (codebook_cfg_n2_r1480_present) { HANDLE_CODE(unpack_enum(codebook_cfg_n2_r1480, bref)); } HANDLE_CODE(nzp_res_cfg_tm9_original_v1480.unpack(bref)); return SRSASN_SUCCESS; } void csi_rs_cfg_non_precoded_v1480_s::to_json(json_writer& j) const { j.start_obj(); if (csi_rs_cfg_nzp_emimo_v1480_present) { j.write_fieldname("csi-RS-ConfigNZP-EMIMO-v1480"); csi_rs_cfg_nzp_emimo_v1480.to_json(j); } if (codebook_cfg_n1_v1480_present) { j.write_str("codebookConfigN1-v1480", codebook_cfg_n1_v1480.to_string()); } if (codebook_cfg_n2_r1480_present) { j.write_str("codebookConfigN2-r1480", codebook_cfg_n2_r1480.to_string()); } j.write_fieldname("nzp-ResourceConfigTM9-Original-v1480"); nzp_res_cfg_tm9_original_v1480.to_json(j); j.end_obj(); } // CSI-RS-ConfigNonPrecoded-v1530 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_non_precoded_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p_c_and_cbsr_list_r15_present, 1)); if (p_c_and_cbsr_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, p_c_and_cbsr_list_r15, 1, 2)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_non_precoded_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p_c_and_cbsr_list_r15_present, 1)); if (p_c_and_cbsr_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(p_c_and_cbsr_list_r15, bref, 1, 2)); } return SRSASN_SUCCESS; } void csi_rs_cfg_non_precoded_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (p_c_and_cbsr_list_r15_present) { j.start_array("p-C-AndCBSRList-r15"); for (uint32_t i1 = 0; i1 < p_c_and_cbsr_list_r15.size(); ++i1) { p_c_and_cbsr_list_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // P-C-AndCBSR-r11 ::= SEQUENCE SRSASN_CODE p_c_and_cbsr_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, p_c_r11, (int8_t)-8, (int8_t)15)); HANDLE_CODE(codebook_subset_restrict_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE p_c_and_cbsr_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(p_c_r11, bref, (int8_t)-8, (int8_t)15)); HANDLE_CODE(codebook_subset_restrict_r11.unpack(bref)); return SRSASN_SUCCESS; } void p_c_and_cbsr_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p-C-r11", p_c_r11); j.write_str("codebookSubsetRestriction-r11", codebook_subset_restrict_r11.to_string()); j.end_obj(); } // CQI-ReportAperiodicProc-r11 ::= SEQUENCE SRSASN_CODE cqi_report_aperiodic_proc_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, cqi_report_mode_aperiodic_r11)); HANDLE_CODE(bref.pack(trigger01_r11, 1)); HANDLE_CODE(bref.pack(trigger10_r11, 1)); HANDLE_CODE(bref.pack(trigger11_r11, 1)); return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_aperiodic_proc_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(cqi_report_mode_aperiodic_r11, bref)); HANDLE_CODE(bref.unpack(trigger01_r11, 1)); HANDLE_CODE(bref.unpack(trigger10_r11, 1)); HANDLE_CODE(bref.unpack(trigger11_r11, 1)); return SRSASN_SUCCESS; } void cqi_report_aperiodic_proc_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cqi-ReportModeAperiodic-r11", cqi_report_mode_aperiodic_r11.to_string()); j.write_bool("trigger01-r11", trigger01_r11); j.write_bool("trigger10-r11", trigger10_r11); j.write_bool("trigger11-r11", trigger11_r11); j.end_obj(); } // CQI-ReportAperiodicProc-v1310 ::= SEQUENCE SRSASN_CODE cqi_report_aperiodic_proc_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(trigger001_r13, 1)); HANDLE_CODE(bref.pack(trigger010_r13, 1)); HANDLE_CODE(bref.pack(trigger011_r13, 1)); HANDLE_CODE(bref.pack(trigger100_r13, 1)); HANDLE_CODE(bref.pack(trigger101_r13, 1)); HANDLE_CODE(bref.pack(trigger110_r13, 1)); HANDLE_CODE(bref.pack(trigger111_r13, 1)); return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_aperiodic_proc_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(trigger001_r13, 1)); HANDLE_CODE(bref.unpack(trigger010_r13, 1)); HANDLE_CODE(bref.unpack(trigger011_r13, 1)); HANDLE_CODE(bref.unpack(trigger100_r13, 1)); HANDLE_CODE(bref.unpack(trigger101_r13, 1)); HANDLE_CODE(bref.unpack(trigger110_r13, 1)); HANDLE_CODE(bref.unpack(trigger111_r13, 1)); return SRSASN_SUCCESS; } void cqi_report_aperiodic_proc_v1310_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("trigger001-r13", trigger001_r13); j.write_bool("trigger010-r13", trigger010_r13); j.write_bool("trigger011-r13", trigger011_r13); j.write_bool("trigger100-r13", trigger100_r13); j.write_bool("trigger101-r13", trigger101_r13); j.write_bool("trigger110-r13", trigger110_r13); j.write_bool("trigger111-r13", trigger111_r13); j.end_obj(); } // CQI-ReportBothProc-r11 ::= SEQUENCE SRSASN_CODE cqi_report_both_proc_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ri_ref_csi_process_id_r11_present, 1)); HANDLE_CODE(bref.pack(pmi_ri_report_r11_present, 1)); if (ri_ref_csi_process_id_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, ri_ref_csi_process_id_r11, (uint8_t)1, (uint8_t)4)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_both_proc_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ri_ref_csi_process_id_r11_present, 1)); HANDLE_CODE(bref.unpack(pmi_ri_report_r11_present, 1)); if (ri_ref_csi_process_id_r11_present) { HANDLE_CODE(unpack_unalign_integer(ri_ref_csi_process_id_r11, bref, (uint8_t)1, (uint8_t)4)); } return SRSASN_SUCCESS; } void cqi_report_both_proc_r11_s::to_json(json_writer& j) const { j.start_obj(); if (ri_ref_csi_process_id_r11_present) { j.write_int("ri-Ref-CSI-ProcessId-r11", ri_ref_csi_process_id_r11); } if (pmi_ri_report_r11_present) { j.write_str("pmi-RI-Report-r11", "setup"); } j.end_obj(); } // CRI-ReportConfig-r13 ::= CHOICE void cri_report_cfg_r13_c::set(types::options e) { type_ = e; } void cri_report_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("cri-ConfigIndex-r13", c.cri_cfg_idx_r13); if (c.cri_cfg_idx2_r13_present) { j.write_int("cri-ConfigIndex2-r13", c.cri_cfg_idx2_r13); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cri_report_cfg_r13_c"); } j.end_obj(); } SRSASN_CODE cri_report_cfg_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.cri_cfg_idx2_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.cri_cfg_idx_r13, (uint16_t)0, (uint16_t)1023)); if (c.cri_cfg_idx2_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.cri_cfg_idx2_r13, (uint16_t)0, (uint16_t)1023)); } break; default: log_invalid_choice_id(type_, "cri_report_cfg_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cri_report_cfg_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.cri_cfg_idx2_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.cri_cfg_idx_r13, bref, (uint16_t)0, (uint16_t)1023)); if (c.cri_cfg_idx2_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.cri_cfg_idx2_r13, bref, (uint16_t)0, (uint16_t)1023)); } break; default: log_invalid_choice_id(type_, "cri_report_cfg_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE void csi_rs_cfg_emimo_hybrid_r14_c::set(types::options e) { type_ = e; } void csi_rs_cfg_emimo_hybrid_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.periodicity_offset_idx_r14_present) { j.write_int("periodicityOffsetIndex-r14", c.periodicity_offset_idx_r14); } if (c.e_mimo_type2_r14_present) { j.write_fieldname("eMIMO-Type2-r14"); c.e_mimo_type2_r14.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_hybrid_r14_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_hybrid_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.periodicity_offset_idx_r14_present, 1)); HANDLE_CODE(bref.pack(c.e_mimo_type2_r14_present, 1)); if (c.periodicity_offset_idx_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, c.periodicity_offset_idx_r14, (uint16_t)0, (uint16_t)1023)); } if (c.e_mimo_type2_r14_present) { HANDLE_CODE(c.e_mimo_type2_r14.pack(bref)); } break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_hybrid_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_hybrid_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.periodicity_offset_idx_r14_present, 1)); HANDLE_CODE(bref.unpack(c.e_mimo_type2_r14_present, 1)); if (c.periodicity_offset_idx_r14_present) { HANDLE_CODE(unpack_unalign_integer(c.periodicity_offset_idx_r14, bref, (uint16_t)0, (uint16_t)1023)); } if (c.e_mimo_type2_r14_present) { HANDLE_CODE(c.e_mimo_type2_r14.unpack(bref)); } break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_hybrid_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-ConfigEMIMO-r13 ::= CHOICE void csi_rs_cfg_emimo_r13_c::set(types::options e) { type_ = e; } void csi_rs_cfg_emimo_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void csi_rs_cfg_emimo_r13_c::setup_c_::destroy_() { switch (type_) { case types::non_precoded_r13: c.destroy(); break; case types::beamformed_r13: c.destroy(); break; default: break; } } void csi_rs_cfg_emimo_r13_c::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::non_precoded_r13: c.init(); break; case types::beamformed_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c::setup_c_"); } } csi_rs_cfg_emimo_r13_c::setup_c_::setup_c_(const csi_rs_cfg_emimo_r13_c::setup_c_& other) { type_ = other.type(); switch (type_) { case types::non_precoded_r13: c.init(other.c.get()); break; case types::beamformed_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c::setup_c_"); } } csi_rs_cfg_emimo_r13_c::setup_c_& csi_rs_cfg_emimo_r13_c::setup_c_:: operator=(const csi_rs_cfg_emimo_r13_c::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::non_precoded_r13: c.set(other.c.get()); break; case types::beamformed_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c::setup_c_"); } return *this; } void csi_rs_cfg_emimo_r13_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::non_precoded_r13: j.write_fieldname("nonPrecoded-r13"); c.get().to_json(j); break; case types::beamformed_r13: j.write_fieldname("beamformed-r13"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c::setup_c_"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_r13_c::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::non_precoded_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::beamformed_r13: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_r13_c::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::non_precoded_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::beamformed_r13: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_r13_c::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-ConfigEMIMO-v1430 ::= CHOICE void csi_rs_cfg_emimo_v1430_c::set(types::options e) { type_ = e; } void csi_rs_cfg_emimo_v1430_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_v1430_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_v1430_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void csi_rs_cfg_emimo_v1430_c::setup_c_::destroy_() { switch (type_) { case types::non_precoded_v1430: c.destroy(); break; case types::beamformed_v1430: c.destroy(); break; default: break; } } void csi_rs_cfg_emimo_v1430_c::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::non_precoded_v1430: c.init(); break; case types::beamformed_v1430: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c::setup_c_"); } } csi_rs_cfg_emimo_v1430_c::setup_c_::setup_c_(const csi_rs_cfg_emimo_v1430_c::setup_c_& other) { type_ = other.type(); switch (type_) { case types::non_precoded_v1430: c.init(other.c.get()); break; case types::beamformed_v1430: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c::setup_c_"); } } csi_rs_cfg_emimo_v1430_c::setup_c_& csi_rs_cfg_emimo_v1430_c::setup_c_:: operator=(const csi_rs_cfg_emimo_v1430_c::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::non_precoded_v1430: c.set(other.c.get()); break; case types::beamformed_v1430: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c::setup_c_"); } return *this; } void csi_rs_cfg_emimo_v1430_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::non_precoded_v1430: j.write_fieldname("nonPrecoded-v1430"); c.get().to_json(j); break; case types::beamformed_v1430: j.write_fieldname("beamformed-v1430"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c::setup_c_"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_v1430_c::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::non_precoded_v1430: HANDLE_CODE(c.get().pack(bref)); break; case types::beamformed_v1430: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_v1430_c::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::non_precoded_v1430: HANDLE_CODE(c.get().unpack(bref)); break; case types::beamformed_v1430: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1430_c::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-ConfigEMIMO-v1480 ::= CHOICE void csi_rs_cfg_emimo_v1480_c::set(types::options e) { type_ = e; } void csi_rs_cfg_emimo_v1480_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_v1480_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_v1480_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void csi_rs_cfg_emimo_v1480_c::setup_c_::destroy_() { switch (type_) { case types::non_precoded_v1480: c.destroy(); break; case types::beamformed_v1480: c.destroy(); break; default: break; } } void csi_rs_cfg_emimo_v1480_c::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::non_precoded_v1480: c.init(); break; case types::beamformed_v1480: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c::setup_c_"); } } csi_rs_cfg_emimo_v1480_c::setup_c_::setup_c_(const csi_rs_cfg_emimo_v1480_c::setup_c_& other) { type_ = other.type(); switch (type_) { case types::non_precoded_v1480: c.init(other.c.get()); break; case types::beamformed_v1480: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c::setup_c_"); } } csi_rs_cfg_emimo_v1480_c::setup_c_& csi_rs_cfg_emimo_v1480_c::setup_c_:: operator=(const csi_rs_cfg_emimo_v1480_c::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::non_precoded_v1480: c.set(other.c.get()); break; case types::beamformed_v1480: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c::setup_c_"); } return *this; } void csi_rs_cfg_emimo_v1480_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::non_precoded_v1480: j.write_fieldname("nonPrecoded-v1480"); c.get().to_json(j); break; case types::beamformed_v1480: j.write_fieldname("beamformed-v1480"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c::setup_c_"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_v1480_c::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::non_precoded_v1480: HANDLE_CODE(c.get().pack(bref)); break; case types::beamformed_v1480: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_v1480_c::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::non_precoded_v1480: HANDLE_CODE(c.get().unpack(bref)); break; case types::beamformed_v1480: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1480_c::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-ConfigEMIMO-v1530 ::= CHOICE void csi_rs_cfg_emimo_v1530_c::set(types::options e) { type_ = e; } void csi_rs_cfg_emimo_v1530_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1530_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_v1530_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1530_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_v1530_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_emimo_v1530_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void csi_rs_cfg_emimo_v1530_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("nonPrecoded-v1530"); c.to_json(j); j.end_obj(); } SRSASN_CODE csi_rs_cfg_emimo_v1530_c::setup_c_::pack(bit_ref& bref) const { HANDLE_CODE(c.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_emimo_v1530_c::setup_c_::unpack(bit_ref& bref) { HANDLE_CODE(c.unpack(bref)); return SRSASN_SUCCESS; } // CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE SRSASN_CODE cqi_report_periodic_proc_ext_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ri_cfg_idx_r11_present, 1)); HANDLE_CODE(bref.pack(csi_cfg_idx_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, cqi_report_periodic_proc_ext_id_r11, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(pack_unalign_integer(bref, cqi_pmi_cfg_idx_r11, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(cqi_format_ind_periodic_r11.pack(bref)); if (ri_cfg_idx_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, ri_cfg_idx_r11, (uint16_t)0, (uint16_t)1023)); } if (csi_cfg_idx_r11_present) { HANDLE_CODE(csi_cfg_idx_r11.pack(bref)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(cri_report_cfg_r13_present != (cri_report_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cri_report_cfg_r13_present; group_flags[1] |= periodicity_factor_wb_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cri_report_cfg_r13_present, 1)); if (cri_report_cfg_r13_present) { HANDLE_CODE(cri_report_cfg_r13->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(periodicity_factor_wb_r13_present, 1)); if (periodicity_factor_wb_r13_present) { HANDLE_CODE(pack_enum(bref, periodicity_factor_wb_r13)); } } } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_proc_ext_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ri_cfg_idx_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_cfg_idx_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(cqi_report_periodic_proc_ext_id_r11, bref, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(unpack_unalign_integer(cqi_pmi_cfg_idx_r11, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(cqi_format_ind_periodic_r11.unpack(bref)); if (ri_cfg_idx_r11_present) { HANDLE_CODE(unpack_unalign_integer(ri_cfg_idx_r11, bref, (uint16_t)0, (uint16_t)1023)); } if (csi_cfg_idx_r11_present) { HANDLE_CODE(csi_cfg_idx_r11.unpack(bref)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cri_report_cfg_r13_present, 1)); if (cri_report_cfg_r13_present) { cri_report_cfg_r13 = make_copy_ptr(cri_report_cfg_r13_c()); HANDLE_CODE(cri_report_cfg_r13->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(periodicity_factor_wb_r13_present, 1)); if (periodicity_factor_wb_r13_present) { HANDLE_CODE(unpack_enum(periodicity_factor_wb_r13, bref)); } } } return SRSASN_SUCCESS; } void cqi_report_periodic_proc_ext_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cqi-ReportPeriodicProcExtId-r11", cqi_report_periodic_proc_ext_id_r11); j.write_int("cqi-pmi-ConfigIndex-r11", cqi_pmi_cfg_idx_r11); j.write_fieldname("cqi-FormatIndicatorPeriodic-r11"); cqi_format_ind_periodic_r11.to_json(j); if (ri_cfg_idx_r11_present) { j.write_int("ri-ConfigIndex-r11", ri_cfg_idx_r11); } if (csi_cfg_idx_r11_present) { j.write_fieldname("csi-ConfigIndex-r11"); csi_cfg_idx_r11.to_json(j); } if (ext) { rrc_asn1_warn_assert(cri_report_cfg_r13_present != (cri_report_cfg_r13.get() != NULL), __FILE__, __LINE__); if (cri_report_cfg_r13_present) { j.write_fieldname("cri-ReportConfig-r13"); cri_report_cfg_r13->to_json(j); } if (periodicity_factor_wb_r13_present) { j.write_str("periodicityFactorWB-r13", periodicity_factor_wb_r13.to_string()); } } j.end_obj(); } void cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::destroy_() { switch (type_) { case types::wideband_cqi_r11: c.destroy(); break; case types::subband_cqi_r11: c.destroy(); break; default: break; } } void cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::wideband_cqi_r11: c.init(); break; case types::subband_cqi_r11: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_"); } } cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::cqi_format_ind_periodic_r11_c_( const cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_& other) { type_ = other.type(); switch (type_) { case types::wideband_cqi_r11: c.init(other.c.get()); break; case types::subband_cqi_r11: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_"); } } cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_& cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_:: operator=(const cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::wideband_cqi_r11: c.set(other.c.get()); break; case types::subband_cqi_r11: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_"); } return *this; } void cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::wideband_cqi_r11: j.write_fieldname("widebandCQI-r11"); j.start_obj(); if (c.get().csi_report_mode_r11_present) { j.write_str("csi-ReportMode-r11", c.get().csi_report_mode_r11.to_string()); } j.end_obj(); break; case types::subband_cqi_r11: j.write_fieldname("subbandCQI-r11"); j.start_obj(); j.write_int("k", c.get().k); j.write_str("periodicityFactor-r11", c.get().periodicity_factor_r11.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::wideband_cqi_r11: HANDLE_CODE(bref.pack(c.get().csi_report_mode_r11_present, 1)); if (c.get().csi_report_mode_r11_present) { HANDLE_CODE(pack_enum(bref, c.get().csi_report_mode_r11)); } break; case types::subband_cqi_r11: HANDLE_CODE(pack_unalign_integer(bref, c.get().k, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_enum(bref, c.get().periodicity_factor_r11)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::wideband_cqi_r11: HANDLE_CODE(bref.unpack(c.get().csi_report_mode_r11_present, 1)); if (c.get().csi_report_mode_r11_present) { HANDLE_CODE(unpack_enum(c.get().csi_report_mode_r11, bref)); } break; case types::subband_cqi_r11: HANDLE_CODE(unpack_unalign_integer(c.get().k, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_enum(c.get().periodicity_factor_r11, bref)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::set(types::options e) { type_ = e; } void cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("cqi-pmi-ConfigIndex2-r11", c.cqi_pmi_cfg_idx2_r11); if (c.ri_cfg_idx2_r11_present) { j.write_int("ri-ConfigIndex2-r11", c.ri_cfg_idx2_r11); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.ri_cfg_idx2_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pmi_cfg_idx2_r11, (uint16_t)0, (uint16_t)1023)); if (c.ri_cfg_idx2_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, c.ri_cfg_idx2_r11, (uint16_t)0, (uint16_t)1023)); } break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.ri_cfg_idx2_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.cqi_pmi_cfg_idx2_r11, bref, (uint16_t)0, (uint16_t)1023)); if (c.ri_cfg_idx2_r11_present) { HANDLE_CODE(unpack_unalign_integer(c.ri_cfg_idx2_r11, bref, (uint16_t)0, (uint16_t)1023)); } break; default: log_invalid_choice_id(type_, "cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-IM-Config-r11 ::= SEQUENCE SRSASN_CODE csi_im_cfg_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, csi_im_cfg_id_r11, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(pack_unalign_integer(bref, res_cfg_r11, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, sf_cfg_r11, (uint8_t)0, (uint8_t)154)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= interference_meas_restrict_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(interference_meas_restrict_r13_present, 1)); if (interference_meas_restrict_r13_present) { HANDLE_CODE(bref.pack(interference_meas_restrict_r13, 1)); } } } return SRSASN_SUCCESS; } SRSASN_CODE csi_im_cfg_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(csi_im_cfg_id_r11, bref, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(unpack_unalign_integer(res_cfg_r11, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(sf_cfg_r11, bref, (uint8_t)0, (uint8_t)154)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(interference_meas_restrict_r13_present, 1)); if (interference_meas_restrict_r13_present) { HANDLE_CODE(bref.unpack(interference_meas_restrict_r13, 1)); } } } return SRSASN_SUCCESS; } void csi_im_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("csi-IM-ConfigId-r11", csi_im_cfg_id_r11); j.write_int("resourceConfig-r11", res_cfg_r11); j.write_int("subframeConfig-r11", sf_cfg_r11); if (ext) { if (interference_meas_restrict_r13_present) { j.write_bool("interferenceMeasRestriction-r13", interference_meas_restrict_r13); } } j.end_obj(); } // CSI-IM-ConfigExt-r12 ::= SEQUENCE SRSASN_CODE csi_im_cfg_ext_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, csi_im_cfg_id_v1250, (uint8_t)4, (uint8_t)4)); HANDLE_CODE(pack_unalign_integer(bref, res_cfg_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, sf_cfg_r12, (uint8_t)0, (uint8_t)154)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= interference_meas_restrict_r13_present; group_flags[0] |= csi_im_cfg_id_v1310_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(interference_meas_restrict_r13_present, 1)); HANDLE_CODE(bref.pack(csi_im_cfg_id_v1310_present, 1)); if (interference_meas_restrict_r13_present) { HANDLE_CODE(bref.pack(interference_meas_restrict_r13, 1)); } if (csi_im_cfg_id_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, csi_im_cfg_id_v1310, (uint8_t)5, (uint8_t)24)); } } } return SRSASN_SUCCESS; } SRSASN_CODE csi_im_cfg_ext_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(csi_im_cfg_id_v1250, bref, (uint8_t)4, (uint8_t)4)); HANDLE_CODE(unpack_unalign_integer(res_cfg_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(sf_cfg_r12, bref, (uint8_t)0, (uint8_t)154)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(interference_meas_restrict_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_im_cfg_id_v1310_present, 1)); if (interference_meas_restrict_r13_present) { HANDLE_CODE(bref.unpack(interference_meas_restrict_r13, 1)); } if (csi_im_cfg_id_v1310_present) { HANDLE_CODE(unpack_unalign_integer(csi_im_cfg_id_v1310, bref, (uint8_t)5, (uint8_t)24)); } } } return SRSASN_SUCCESS; } void csi_im_cfg_ext_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("csi-IM-ConfigId-v1250", csi_im_cfg_id_v1250); j.write_int("resourceConfig-r12", res_cfg_r12); j.write_int("subframeConfig-r12", sf_cfg_r12); if (ext) { if (interference_meas_restrict_r13_present) { j.write_bool("interferenceMeasRestriction-r13", interference_meas_restrict_r13); } if (csi_im_cfg_id_v1310_present) { j.write_int("csi-IM-ConfigId-v1310", csi_im_cfg_id_v1310); } } j.end_obj(); } // CSI-Process-r11 ::= SEQUENCE SRSASN_CODE csi_process_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cqi_report_both_proc_r11_present, 1)); HANDLE_CODE(bref.pack(cqi_report_periodic_proc_id_r11_present, 1)); HANDLE_CODE(bref.pack(cqi_report_aperiodic_proc_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, csi_process_id_r11, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_unalign_integer(bref, csi_rs_cfg_nzp_id_r11, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(pack_unalign_integer(bref, csi_im_cfg_id_r11, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(pack_dyn_seq_of(bref, p_c_and_cbsr_list_r11, 1, 2)); if (cqi_report_both_proc_r11_present) { HANDLE_CODE(cqi_report_both_proc_r11.pack(bref)); } if (cqi_report_periodic_proc_id_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, cqi_report_periodic_proc_id_r11, (uint8_t)0, (uint8_t)3)); } if (cqi_report_aperiodic_proc_r11_present) { HANDLE_CODE(cqi_report_aperiodic_proc_r11.pack(bref)); } if (ext) { ext_groups_header group_flags(5); group_flags[0] |= alternative_codebook_enabled_for4_tx_proc_r12_present; rrc_asn1_warn_assert(csi_im_cfg_id_list_r12_present != (csi_im_cfg_id_list_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= csi_im_cfg_id_list_r12_present; rrc_asn1_warn_assert(cqi_report_aperiodic_proc2_r12_present != (cqi_report_aperiodic_proc2_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cqi_report_aperiodic_proc2_r12_present; rrc_asn1_warn_assert(cqi_report_aperiodic_proc_v1310_present != (cqi_report_aperiodic_proc_v1310.get() != NULL), __FILE__, __LINE__); group_flags[1] |= cqi_report_aperiodic_proc_v1310_present; rrc_asn1_warn_assert(cqi_report_aperiodic_proc2_v1310_present != (cqi_report_aperiodic_proc2_v1310.get() != NULL), __FILE__, __LINE__); group_flags[1] |= cqi_report_aperiodic_proc2_v1310_present; rrc_asn1_warn_assert(e_mimo_type_r13_present != (e_mimo_type_r13.get() != NULL), __FILE__, __LINE__); group_flags[1] |= e_mimo_type_r13_present; rrc_asn1_warn_assert(dummy_present != (dummy.get() != NULL), __FILE__, __LINE__); group_flags[2] |= dummy_present; rrc_asn1_warn_assert(e_mimo_hybrid_r14_present != (e_mimo_hybrid_r14.get() != NULL), __FILE__, __LINE__); group_flags[2] |= e_mimo_hybrid_r14_present; group_flags[2] |= advanced_codebook_enabled_r14_present; rrc_asn1_warn_assert(e_mimo_type_v1480_present != (e_mimo_type_v1480.get() != NULL), __FILE__, __LINE__); group_flags[3] |= e_mimo_type_v1480_present; group_flags[4] |= fe_comp_csi_enabled_v1530_present; rrc_asn1_warn_assert(e_mimo_type_v1530_present != (e_mimo_type_v1530.get() != NULL), __FILE__, __LINE__); group_flags[4] |= e_mimo_type_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(alternative_codebook_enabled_for4_tx_proc_r12_present, 1)); HANDLE_CODE(bref.pack(csi_im_cfg_id_list_r12_present, 1)); HANDLE_CODE(bref.pack(cqi_report_aperiodic_proc2_r12_present, 1)); if (csi_im_cfg_id_list_r12_present) { HANDLE_CODE(csi_im_cfg_id_list_r12->pack(bref)); } if (cqi_report_aperiodic_proc2_r12_present) { HANDLE_CODE(cqi_report_aperiodic_proc2_r12->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cqi_report_aperiodic_proc_v1310_present, 1)); HANDLE_CODE(bref.pack(cqi_report_aperiodic_proc2_v1310_present, 1)); HANDLE_CODE(bref.pack(e_mimo_type_r13_present, 1)); if (cqi_report_aperiodic_proc_v1310_present) { HANDLE_CODE(cqi_report_aperiodic_proc_v1310->pack(bref)); } if (cqi_report_aperiodic_proc2_v1310_present) { HANDLE_CODE(cqi_report_aperiodic_proc2_v1310->pack(bref)); } if (e_mimo_type_r13_present) { HANDLE_CODE(e_mimo_type_r13->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(dummy_present, 1)); HANDLE_CODE(bref.pack(e_mimo_hybrid_r14_present, 1)); HANDLE_CODE(bref.pack(advanced_codebook_enabled_r14_present, 1)); if (dummy_present) { HANDLE_CODE(dummy->pack(bref)); } if (e_mimo_hybrid_r14_present) { HANDLE_CODE(e_mimo_hybrid_r14->pack(bref)); } if (advanced_codebook_enabled_r14_present) { HANDLE_CODE(bref.pack(advanced_codebook_enabled_r14, 1)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(e_mimo_type_v1480_present, 1)); if (e_mimo_type_v1480_present) { HANDLE_CODE(e_mimo_type_v1480->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(fe_comp_csi_enabled_v1530_present, 1)); HANDLE_CODE(bref.pack(e_mimo_type_v1530_present, 1)); if (fe_comp_csi_enabled_v1530_present) { HANDLE_CODE(bref.pack(fe_comp_csi_enabled_v1530, 1)); } if (e_mimo_type_v1530_present) { HANDLE_CODE(e_mimo_type_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE csi_process_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cqi_report_both_proc_r11_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_periodic_proc_id_r11_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_aperiodic_proc_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(csi_process_id_r11, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_unalign_integer(csi_rs_cfg_nzp_id_r11, bref, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(unpack_unalign_integer(csi_im_cfg_id_r11, bref, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(unpack_dyn_seq_of(p_c_and_cbsr_list_r11, bref, 1, 2)); if (cqi_report_both_proc_r11_present) { HANDLE_CODE(cqi_report_both_proc_r11.unpack(bref)); } if (cqi_report_periodic_proc_id_r11_present) { HANDLE_CODE(unpack_unalign_integer(cqi_report_periodic_proc_id_r11, bref, (uint8_t)0, (uint8_t)3)); } if (cqi_report_aperiodic_proc_r11_present) { HANDLE_CODE(cqi_report_aperiodic_proc_r11.unpack(bref)); } if (ext) { ext_groups_header group_flags(5); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(alternative_codebook_enabled_for4_tx_proc_r12_present, 1)); HANDLE_CODE(bref.unpack(csi_im_cfg_id_list_r12_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_aperiodic_proc2_r12_present, 1)); if (csi_im_cfg_id_list_r12_present) { csi_im_cfg_id_list_r12 = make_copy_ptr(csi_im_cfg_id_list_r12_c_()); HANDLE_CODE(csi_im_cfg_id_list_r12->unpack(bref)); } if (cqi_report_aperiodic_proc2_r12_present) { cqi_report_aperiodic_proc2_r12 = make_copy_ptr(cqi_report_aperiodic_proc2_r12_c_()); HANDLE_CODE(cqi_report_aperiodic_proc2_r12->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cqi_report_aperiodic_proc_v1310_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_aperiodic_proc2_v1310_present, 1)); HANDLE_CODE(bref.unpack(e_mimo_type_r13_present, 1)); if (cqi_report_aperiodic_proc_v1310_present) { cqi_report_aperiodic_proc_v1310 = make_copy_ptr(cqi_report_aperiodic_proc_v1310_c_()); HANDLE_CODE(cqi_report_aperiodic_proc_v1310->unpack(bref)); } if (cqi_report_aperiodic_proc2_v1310_present) { cqi_report_aperiodic_proc2_v1310 = make_copy_ptr(cqi_report_aperiodic_proc2_v1310_c_()); HANDLE_CODE(cqi_report_aperiodic_proc2_v1310->unpack(bref)); } if (e_mimo_type_r13_present) { e_mimo_type_r13 = make_copy_ptr(csi_rs_cfg_emimo_r13_c()); HANDLE_CODE(e_mimo_type_r13->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(dummy_present, 1)); HANDLE_CODE(bref.unpack(e_mimo_hybrid_r14_present, 1)); HANDLE_CODE(bref.unpack(advanced_codebook_enabled_r14_present, 1)); if (dummy_present) { dummy = make_copy_ptr(csi_rs_cfg_emimo_v1430_c()); HANDLE_CODE(dummy->unpack(bref)); } if (e_mimo_hybrid_r14_present) { e_mimo_hybrid_r14 = make_copy_ptr(csi_rs_cfg_emimo_hybrid_r14_c()); HANDLE_CODE(e_mimo_hybrid_r14->unpack(bref)); } if (advanced_codebook_enabled_r14_present) { HANDLE_CODE(bref.unpack(advanced_codebook_enabled_r14, 1)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(e_mimo_type_v1480_present, 1)); if (e_mimo_type_v1480_present) { e_mimo_type_v1480 = make_copy_ptr(csi_rs_cfg_emimo_v1480_c()); HANDLE_CODE(e_mimo_type_v1480->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(fe_comp_csi_enabled_v1530_present, 1)); HANDLE_CODE(bref.unpack(e_mimo_type_v1530_present, 1)); if (fe_comp_csi_enabled_v1530_present) { HANDLE_CODE(bref.unpack(fe_comp_csi_enabled_v1530, 1)); } if (e_mimo_type_v1530_present) { e_mimo_type_v1530 = make_copy_ptr(csi_rs_cfg_emimo_v1530_c()); HANDLE_CODE(e_mimo_type_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void csi_process_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("csi-ProcessId-r11", csi_process_id_r11); j.write_int("csi-RS-ConfigNZPId-r11", csi_rs_cfg_nzp_id_r11); j.write_int("csi-IM-ConfigId-r11", csi_im_cfg_id_r11); j.start_array("p-C-AndCBSRList-r11"); for (uint32_t i1 = 0; i1 < p_c_and_cbsr_list_r11.size(); ++i1) { p_c_and_cbsr_list_r11[i1].to_json(j); } j.end_array(); if (cqi_report_both_proc_r11_present) { j.write_fieldname("cqi-ReportBothProc-r11"); cqi_report_both_proc_r11.to_json(j); } if (cqi_report_periodic_proc_id_r11_present) { j.write_int("cqi-ReportPeriodicProcId-r11", cqi_report_periodic_proc_id_r11); } if (cqi_report_aperiodic_proc_r11_present) { j.write_fieldname("cqi-ReportAperiodicProc-r11"); cqi_report_aperiodic_proc_r11.to_json(j); } if (ext) { if (alternative_codebook_enabled_for4_tx_proc_r12_present) { j.write_str("alternativeCodebookEnabledFor4TXProc-r12", "true"); } rrc_asn1_warn_assert(csi_im_cfg_id_list_r12_present != (csi_im_cfg_id_list_r12.get() != NULL), __FILE__, __LINE__); if (csi_im_cfg_id_list_r12_present) { j.write_fieldname("csi-IM-ConfigIdList-r12"); csi_im_cfg_id_list_r12->to_json(j); } rrc_asn1_warn_assert(cqi_report_aperiodic_proc2_r12_present != (cqi_report_aperiodic_proc2_r12.get() != NULL), __FILE__, __LINE__); if (cqi_report_aperiodic_proc2_r12_present) { j.write_fieldname("cqi-ReportAperiodicProc2-r12"); cqi_report_aperiodic_proc2_r12->to_json(j); } rrc_asn1_warn_assert(cqi_report_aperiodic_proc_v1310_present != (cqi_report_aperiodic_proc_v1310.get() != NULL), __FILE__, __LINE__); if (cqi_report_aperiodic_proc_v1310_present) { j.write_fieldname("cqi-ReportAperiodicProc-v1310"); cqi_report_aperiodic_proc_v1310->to_json(j); } rrc_asn1_warn_assert(cqi_report_aperiodic_proc2_v1310_present != (cqi_report_aperiodic_proc2_v1310.get() != NULL), __FILE__, __LINE__); if (cqi_report_aperiodic_proc2_v1310_present) { j.write_fieldname("cqi-ReportAperiodicProc2-v1310"); cqi_report_aperiodic_proc2_v1310->to_json(j); } rrc_asn1_warn_assert(e_mimo_type_r13_present != (e_mimo_type_r13.get() != NULL), __FILE__, __LINE__); if (e_mimo_type_r13_present) { j.write_fieldname("eMIMO-Type-r13"); e_mimo_type_r13->to_json(j); } rrc_asn1_warn_assert(dummy_present != (dummy.get() != NULL), __FILE__, __LINE__); if (dummy_present) { j.write_fieldname("dummy"); dummy->to_json(j); } rrc_asn1_warn_assert(e_mimo_hybrid_r14_present != (e_mimo_hybrid_r14.get() != NULL), __FILE__, __LINE__); if (e_mimo_hybrid_r14_present) { j.write_fieldname("eMIMO-Hybrid-r14"); e_mimo_hybrid_r14->to_json(j); } if (advanced_codebook_enabled_r14_present) { j.write_bool("advancedCodebookEnabled-r14", advanced_codebook_enabled_r14); } rrc_asn1_warn_assert(e_mimo_type_v1480_present != (e_mimo_type_v1480.get() != NULL), __FILE__, __LINE__); if (e_mimo_type_v1480_present) { j.write_fieldname("eMIMO-Type-v1480"); e_mimo_type_v1480->to_json(j); } if (fe_comp_csi_enabled_v1530_present) { j.write_bool("feCOMP-CSI-Enabled-v1530", fe_comp_csi_enabled_v1530); } rrc_asn1_warn_assert(e_mimo_type_v1530_present != (e_mimo_type_v1530.get() != NULL), __FILE__, __LINE__); if (e_mimo_type_v1530_present) { j.write_fieldname("eMIMO-Type-v1530"); e_mimo_type_v1530->to_json(j); } } j.end_obj(); } void csi_process_r11_s::csi_im_cfg_id_list_r12_c_::set(types::options e) { type_ = e; } void csi_process_r11_s::csi_im_cfg_id_list_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { j.write_int(c[i1]); } j.end_array(); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::csi_im_cfg_id_list_r12_c_"); } j.end_obj(); } SRSASN_CODE csi_process_r11_s::csi_im_cfg_id_list_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 2, UnalignedIntegerPacker(1, 4))); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::csi_im_cfg_id_list_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_process_r11_s::csi_im_cfg_id_list_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 2, UnalignedIntegerPacker(1, 4))); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::csi_im_cfg_id_list_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_::set(types::options e) { type_ = e; } void csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_"); } j.end_obj(); } SRSASN_CODE csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_::set(types::options e) { type_ = e; } void csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_"); } j.end_obj(); } SRSASN_CODE csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_::set(types::options e) { type_ = e; } void csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_"); } j.end_obj(); } SRSASN_CODE csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // N4SPUCCH-Resource-r15 ::= SEQUENCE SRSASN_CODE n4_spucch_res_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, n4start_prb_r15, (uint8_t)0, (uint8_t)109)); HANDLE_CODE(pack_unalign_integer(bref, n4nof_prb_r15, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE n4_spucch_res_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(n4start_prb_r15, bref, (uint8_t)0, (uint8_t)109)); HANDLE_CODE(unpack_unalign_integer(n4nof_prb_r15, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void n4_spucch_res_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("n4startingPRB-r15", n4start_prb_r15); j.write_int("n4numberOfPRB-r15", n4nof_prb_r15); j.end_obj(); } // ZeroTxPowerCSI-RS-r12 ::= SEQUENCE SRSASN_CODE zero_tx_pwr_csi_rs_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(zero_tx_pwr_res_cfg_list_r12.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, zero_tx_pwr_sf_cfg_r12, (uint8_t)0, (uint8_t)154)); return SRSASN_SUCCESS; } SRSASN_CODE zero_tx_pwr_csi_rs_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(zero_tx_pwr_res_cfg_list_r12.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(zero_tx_pwr_sf_cfg_r12, bref, (uint8_t)0, (uint8_t)154)); return SRSASN_SUCCESS; } void zero_tx_pwr_csi_rs_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("zeroTxPowerResourceConfigList-r12", zero_tx_pwr_res_cfg_list_r12.to_string()); j.write_int("zeroTxPowerSubframeConfig-r12", zero_tx_pwr_sf_cfg_r12); j.end_obj(); } // CQI-ReportAperiodic-r10 ::= CHOICE void cqi_report_aperiodic_r10_c::set(types::options e) { type_ = e; } void cqi_report_aperiodic_r10_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("cqi-ReportModeAperiodic-r10", c.cqi_report_mode_aperiodic_r10.to_string()); if (c.aperiodic_csi_trigger_r10_present) { j.write_fieldname("aperiodicCSI-Trigger-r10"); j.start_obj(); j.write_str("trigger1-r10", c.aperiodic_csi_trigger_r10.trigger1_r10.to_string()); j.write_str("trigger2-r10", c.aperiodic_csi_trigger_r10.trigger2_r10.to_string()); j.end_obj(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_r10_c"); } j.end_obj(); } SRSASN_CODE cqi_report_aperiodic_r10_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.aperiodic_csi_trigger_r10_present, 1)); HANDLE_CODE(pack_enum(bref, c.cqi_report_mode_aperiodic_r10)); if (c.aperiodic_csi_trigger_r10_present) { HANDLE_CODE(c.aperiodic_csi_trigger_r10.trigger1_r10.pack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_r10.trigger2_r10.pack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_r10_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_aperiodic_r10_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.aperiodic_csi_trigger_r10_present, 1)); HANDLE_CODE(unpack_enum(c.cqi_report_mode_aperiodic_r10, bref)); if (c.aperiodic_csi_trigger_r10_present) { HANDLE_CODE(c.aperiodic_csi_trigger_r10.trigger1_r10.unpack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_r10.trigger2_r10.unpack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_r10_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportAperiodic-v1250 ::= CHOICE void cqi_report_aperiodic_v1250_c::set(types::options e) { type_ = e; } void cqi_report_aperiodic_v1250_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("aperiodicCSI-Trigger-v1250"); j.start_obj(); j.write_str("trigger-SubframeSetIndicator-r12", c.aperiodic_csi_trigger_v1250.trigger_sf_set_ind_r12.to_string()); j.write_str("trigger1-SubframeSetIndicator-r12", c.aperiodic_csi_trigger_v1250.trigger1_sf_set_ind_r12.to_string()); j.write_str("trigger2-SubframeSetIndicator-r12", c.aperiodic_csi_trigger_v1250.trigger2_sf_set_ind_r12.to_string()); j.end_obj(); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1250_c"); } j.end_obj(); } SRSASN_CODE cqi_report_aperiodic_v1250_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.aperiodic_csi_trigger_v1250.trigger_sf_set_ind_r12)); HANDLE_CODE(c.aperiodic_csi_trigger_v1250.trigger1_sf_set_ind_r12.pack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1250.trigger2_sf_set_ind_r12.pack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1250_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_aperiodic_v1250_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.aperiodic_csi_trigger_v1250.trigger_sf_set_ind_r12, bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1250.trigger1_sf_set_ind_r12.unpack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1250.trigger2_sf_set_ind_r12.unpack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1250_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportAperiodic-v1310 ::= CHOICE void cqi_report_aperiodic_v1310_c::set(types::options e) { type_ = e; } void cqi_report_aperiodic_v1310_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.aperiodic_csi_trigger_v1310_present) { j.write_fieldname("aperiodicCSI-Trigger-v1310"); j.start_obj(); j.write_str("trigger1-r13", c.aperiodic_csi_trigger_v1310.trigger1_r13.to_string()); j.write_str("trigger2-r13", c.aperiodic_csi_trigger_v1310.trigger2_r13.to_string()); j.write_str("trigger3-r13", c.aperiodic_csi_trigger_v1310.trigger3_r13.to_string()); j.write_str("trigger4-r13", c.aperiodic_csi_trigger_v1310.trigger4_r13.to_string()); j.write_str("trigger5-r13", c.aperiodic_csi_trigger_v1310.trigger5_r13.to_string()); j.write_str("trigger6-r13", c.aperiodic_csi_trigger_v1310.trigger6_r13.to_string()); j.end_obj(); } if (c.aperiodic_csi_trigger2_r13_present) { j.write_fieldname("aperiodicCSI-Trigger2-r13"); c.aperiodic_csi_trigger2_r13.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1310_c"); } j.end_obj(); } SRSASN_CODE cqi_report_aperiodic_v1310_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.aperiodic_csi_trigger_v1310_present, 1)); HANDLE_CODE(bref.pack(c.aperiodic_csi_trigger2_r13_present, 1)); if (c.aperiodic_csi_trigger_v1310_present) { HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger1_r13.pack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger2_r13.pack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger3_r13.pack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger4_r13.pack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger5_r13.pack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger6_r13.pack(bref)); } if (c.aperiodic_csi_trigger2_r13_present) { HANDLE_CODE(c.aperiodic_csi_trigger2_r13.pack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1310_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_aperiodic_v1310_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.aperiodic_csi_trigger_v1310_present, 1)); HANDLE_CODE(bref.unpack(c.aperiodic_csi_trigger2_r13_present, 1)); if (c.aperiodic_csi_trigger_v1310_present) { HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger1_r13.unpack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger2_r13.unpack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger3_r13.unpack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger4_r13.unpack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger5_r13.unpack(bref)); HANDLE_CODE(c.aperiodic_csi_trigger_v1310.trigger6_r13.unpack(bref)); } if (c.aperiodic_csi_trigger2_r13_present) { HANDLE_CODE(c.aperiodic_csi_trigger2_r13.unpack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1310_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::set(types::options e) { type_ = e; } void cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("trigger1-SubframeSetIndicator-r13", c.trigger1_sf_set_ind_r13.to_string()); j.write_str("trigger2-SubframeSetIndicator-r13", c.trigger2_sf_set_ind_r13.to_string()); j.write_str("trigger3-SubframeSetIndicator-r13", c.trigger3_sf_set_ind_r13.to_string()); j.write_str("trigger4-SubframeSetIndicator-r13", c.trigger4_sf_set_ind_r13.to_string()); j.write_str("trigger5-SubframeSetIndicator-r13", c.trigger5_sf_set_ind_r13.to_string()); j.write_str("trigger6-SubframeSetIndicator-r13", c.trigger6_sf_set_ind_r13.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.trigger1_sf_set_ind_r13.pack(bref)); HANDLE_CODE(c.trigger2_sf_set_ind_r13.pack(bref)); HANDLE_CODE(c.trigger3_sf_set_ind_r13.pack(bref)); HANDLE_CODE(c.trigger4_sf_set_ind_r13.pack(bref)); HANDLE_CODE(c.trigger5_sf_set_ind_r13.pack(bref)); HANDLE_CODE(c.trigger6_sf_set_ind_r13.pack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.trigger1_sf_set_ind_r13.unpack(bref)); HANDLE_CODE(c.trigger2_sf_set_ind_r13.unpack(bref)); HANDLE_CODE(c.trigger3_sf_set_ind_r13.unpack(bref)); HANDLE_CODE(c.trigger4_sf_set_ind_r13.unpack(bref)); HANDLE_CODE(c.trigger5_sf_set_ind_r13.unpack(bref)); HANDLE_CODE(c.trigger6_sf_set_ind_r13.unpack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE SRSASN_CODE cqi_report_aperiodic_hybrid_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(triggers_r14_present, 1)); if (triggers_r14_present) { HANDLE_CODE(triggers_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_aperiodic_hybrid_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(triggers_r14_present, 1)); if (triggers_r14_present) { HANDLE_CODE(triggers_r14.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_aperiodic_hybrid_r14_s::to_json(json_writer& j) const { j.start_obj(); if (triggers_r14_present) { j.write_fieldname("triggers-r14"); triggers_r14.to_json(j); } j.end_obj(); } void cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::destroy_() { switch (type_) { case types::one_bit_r14: c.destroy(); break; case types::two_bit_r14: c.destroy(); break; case types::three_bit_r14: c.destroy(); break; default: break; } } void cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::one_bit_r14: c.init(); break; case types::two_bit_r14: c.init(); break; case types::three_bit_r14: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_"); } } cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::triggers_r14_c_( const cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_& other) { type_ = other.type(); switch (type_) { case types::one_bit_r14: c.init(other.c.get()); break; case types::two_bit_r14: c.init(other.c.get()); break; case types::three_bit_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_"); } } cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_& cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_:: operator=(const cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::one_bit_r14: c.set(other.c.get()); break; case types::two_bit_r14: c.set(other.c.get()); break; case types::three_bit_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_"); } return *this; } void cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::one_bit_r14: j.write_fieldname("oneBit-r14"); j.start_obj(); j.write_str("trigger1-Indicator-r14", c.get().trigger1_ind_r14.to_string()); j.end_obj(); break; case types::two_bit_r14: j.write_fieldname("twoBit-r14"); j.start_obj(); j.write_str("trigger01-Indicator-r14", c.get().trigger01_ind_r14.to_string()); j.write_str("trigger10-Indicator-r14", c.get().trigger10_ind_r14.to_string()); j.write_str("trigger11-Indicator-r14", c.get().trigger11_ind_r14.to_string()); j.end_obj(); break; case types::three_bit_r14: j.write_fieldname("threeBit-r14"); j.start_obj(); j.write_str("trigger001-Indicator-r14", c.get().trigger001_ind_r14.to_string()); j.write_str("trigger010-Indicator-r14", c.get().trigger010_ind_r14.to_string()); j.write_str("trigger011-Indicator-r14", c.get().trigger011_ind_r14.to_string()); j.write_str("trigger100-Indicator-r14", c.get().trigger100_ind_r14.to_string()); j.write_str("trigger101-Indicator-r14", c.get().trigger101_ind_r14.to_string()); j.write_str("trigger110-Indicator-r14", c.get().trigger110_ind_r14.to_string()); j.write_str("trigger111-Indicator-r14", c.get().trigger111_ind_r14.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::one_bit_r14: HANDLE_CODE(c.get().trigger1_ind_r14.pack(bref)); break; case types::two_bit_r14: HANDLE_CODE(c.get().trigger01_ind_r14.pack(bref)); HANDLE_CODE(c.get().trigger10_ind_r14.pack(bref)); HANDLE_CODE(c.get().trigger11_ind_r14.pack(bref)); break; case types::three_bit_r14: HANDLE_CODE(c.get().trigger001_ind_r14.pack(bref)); HANDLE_CODE(c.get().trigger010_ind_r14.pack(bref)); HANDLE_CODE(c.get().trigger011_ind_r14.pack(bref)); HANDLE_CODE(c.get().trigger100_ind_r14.pack(bref)); HANDLE_CODE(c.get().trigger101_ind_r14.pack(bref)); HANDLE_CODE(c.get().trigger110_ind_r14.pack(bref)); HANDLE_CODE(c.get().trigger111_ind_r14.pack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::one_bit_r14: HANDLE_CODE(c.get().trigger1_ind_r14.unpack(bref)); break; case types::two_bit_r14: HANDLE_CODE(c.get().trigger01_ind_r14.unpack(bref)); HANDLE_CODE(c.get().trigger10_ind_r14.unpack(bref)); HANDLE_CODE(c.get().trigger11_ind_r14.unpack(bref)); break; case types::three_bit_r14: HANDLE_CODE(c.get().trigger001_ind_r14.unpack(bref)); HANDLE_CODE(c.get().trigger010_ind_r14.unpack(bref)); HANDLE_CODE(c.get().trigger011_ind_r14.unpack(bref)); HANDLE_CODE(c.get().trigger100_ind_r14.unpack(bref)); HANDLE_CODE(c.get().trigger101_ind_r14.unpack(bref)); HANDLE_CODE(c.get().trigger110_ind_r14.unpack(bref)); HANDLE_CODE(c.get().trigger111_ind_r14.unpack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportBoth-r11 ::= SEQUENCE SRSASN_CODE cqi_report_both_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_im_cfg_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_im_cfg_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_process_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_process_to_add_mod_list_r11_present, 1)); if (csi_im_cfg_to_release_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_cfg_to_release_list_r11, 1, 3, UnalignedIntegerPacker(1, 3))); } if (csi_im_cfg_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_cfg_to_add_mod_list_r11, 1, 3)); } if (csi_process_to_release_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_process_to_release_list_r11, 1, 4, UnalignedIntegerPacker(1, 4))); } if (csi_process_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_process_to_add_mod_list_r11, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_both_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_im_cfg_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_im_cfg_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_process_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_process_to_add_mod_list_r11_present, 1)); if (csi_im_cfg_to_release_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_im_cfg_to_release_list_r11, bref, 1, 3, UnalignedIntegerPacker(1, 3))); } if (csi_im_cfg_to_add_mod_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_im_cfg_to_add_mod_list_r11, bref, 1, 3)); } if (csi_process_to_release_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_process_to_release_list_r11, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (csi_process_to_add_mod_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_process_to_add_mod_list_r11, bref, 1, 4)); } return SRSASN_SUCCESS; } void cqi_report_both_r11_s::to_json(json_writer& j) const { j.start_obj(); if (csi_im_cfg_to_release_list_r11_present) { j.start_array("csi-IM-ConfigToReleaseList-r11"); for (uint32_t i1 = 0; i1 < csi_im_cfg_to_release_list_r11.size(); ++i1) { j.write_int(csi_im_cfg_to_release_list_r11[i1]); } j.end_array(); } if (csi_im_cfg_to_add_mod_list_r11_present) { j.start_array("csi-IM-ConfigToAddModList-r11"); for (uint32_t i1 = 0; i1 < csi_im_cfg_to_add_mod_list_r11.size(); ++i1) { csi_im_cfg_to_add_mod_list_r11[i1].to_json(j); } j.end_array(); } if (csi_process_to_release_list_r11_present) { j.start_array("csi-ProcessToReleaseList-r11"); for (uint32_t i1 = 0; i1 < csi_process_to_release_list_r11.size(); ++i1) { j.write_int(csi_process_to_release_list_r11[i1]); } j.end_array(); } if (csi_process_to_add_mod_list_r11_present) { j.start_array("csi-ProcessToAddModList-r11"); for (uint32_t i1 = 0; i1 < csi_process_to_add_mod_list_r11.size(); ++i1) { csi_process_to_add_mod_list_r11[i1].to_json(j); } j.end_array(); } j.end_obj(); } // CQI-ReportBoth-v1250 ::= SEQUENCE SRSASN_CODE cqi_report_both_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_im_cfg_to_release_list_ext_r12_present, 1)); HANDLE_CODE(bref.pack(csi_im_cfg_to_add_mod_list_ext_r12_present, 1)); if (csi_im_cfg_to_release_list_ext_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, csi_im_cfg_to_release_list_ext_r12, (uint8_t)4, (uint8_t)4)); } if (csi_im_cfg_to_add_mod_list_ext_r12_present) { HANDLE_CODE(csi_im_cfg_to_add_mod_list_ext_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_both_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_im_cfg_to_release_list_ext_r12_present, 1)); HANDLE_CODE(bref.unpack(csi_im_cfg_to_add_mod_list_ext_r12_present, 1)); if (csi_im_cfg_to_release_list_ext_r12_present) { HANDLE_CODE(unpack_unalign_integer(csi_im_cfg_to_release_list_ext_r12, bref, (uint8_t)4, (uint8_t)4)); } if (csi_im_cfg_to_add_mod_list_ext_r12_present) { HANDLE_CODE(csi_im_cfg_to_add_mod_list_ext_r12.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_both_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (csi_im_cfg_to_release_list_ext_r12_present) { j.write_int("csi-IM-ConfigToReleaseListExt-r12", csi_im_cfg_to_release_list_ext_r12); } if (csi_im_cfg_to_add_mod_list_ext_r12_present) { j.write_fieldname("csi-IM-ConfigToAddModListExt-r12"); csi_im_cfg_to_add_mod_list_ext_r12.to_json(j); } j.end_obj(); } // CQI-ReportBoth-v1310 ::= SEQUENCE SRSASN_CODE cqi_report_both_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_im_cfg_to_release_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(csi_im_cfg_to_add_mod_list_ext_r13_present, 1)); if (csi_im_cfg_to_release_list_ext_r13_present) { HANDLE_CODE( pack_dyn_seq_of(bref, csi_im_cfg_to_release_list_ext_r13, 1, 20, UnalignedIntegerPacker(5, 24))); } if (csi_im_cfg_to_add_mod_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_cfg_to_add_mod_list_ext_r13, 1, 20)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_both_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_im_cfg_to_release_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_im_cfg_to_add_mod_list_ext_r13_present, 1)); if (csi_im_cfg_to_release_list_ext_r13_present) { HANDLE_CODE( unpack_dyn_seq_of(csi_im_cfg_to_release_list_ext_r13, bref, 1, 20, UnalignedIntegerPacker(5, 24))); } if (csi_im_cfg_to_add_mod_list_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_im_cfg_to_add_mod_list_ext_r13, bref, 1, 20)); } return SRSASN_SUCCESS; } void cqi_report_both_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (csi_im_cfg_to_release_list_ext_r13_present) { j.start_array("csi-IM-ConfigToReleaseListExt-r13"); for (uint32_t i1 = 0; i1 < csi_im_cfg_to_release_list_ext_r13.size(); ++i1) { j.write_int(csi_im_cfg_to_release_list_ext_r13[i1]); } j.end_array(); } if (csi_im_cfg_to_add_mod_list_ext_r13_present) { j.start_array("csi-IM-ConfigToAddModListExt-r13"); for (uint32_t i1 = 0; i1 < csi_im_cfg_to_add_mod_list_ext_r13.size(); ++i1) { csi_im_cfg_to_add_mod_list_ext_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } // CQI-ReportPeriodic-r10 ::= CHOICE void cqi_report_periodic_r10_c::set(types::options e) { type_ = e; } void cqi_report_periodic_r10_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("cqi-PUCCH-ResourceIndex-r10", c.cqi_pucch_res_idx_r10); if (c.cqi_pucch_res_idx_p1_r10_present) { j.write_int("cqi-PUCCH-ResourceIndexP1-r10", c.cqi_pucch_res_idx_p1_r10); } j.write_int("cqi-pmi-ConfigIndex", c.cqi_pmi_cfg_idx); j.write_fieldname("cqi-FormatIndicatorPeriodic-r10"); c.cqi_format_ind_periodic_r10.to_json(j); if (c.ri_cfg_idx_present) { j.write_int("ri-ConfigIndex", c.ri_cfg_idx); } j.write_bool("simultaneousAckNackAndCQI", c.simul_ack_nack_and_cqi); if (c.cqi_mask_r9_present) { j.write_str("cqi-Mask-r9", "setup"); } if (c.csi_cfg_idx_r10_present) { j.write_fieldname("csi-ConfigIndex-r10"); c.csi_cfg_idx_r10.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_r10_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.cqi_pucch_res_idx_p1_r10_present, 1)); HANDLE_CODE(bref.pack(c.ri_cfg_idx_present, 1)); HANDLE_CODE(bref.pack(c.cqi_mask_r9_present, 1)); HANDLE_CODE(bref.pack(c.csi_cfg_idx_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pucch_res_idx_r10, (uint16_t)0, (uint16_t)1184)); if (c.cqi_pucch_res_idx_p1_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pucch_res_idx_p1_r10, (uint16_t)0, (uint16_t)1184)); } HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pmi_cfg_idx, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(c.cqi_format_ind_periodic_r10.pack(bref)); if (c.ri_cfg_idx_present) { HANDLE_CODE(pack_unalign_integer(bref, c.ri_cfg_idx, (uint16_t)0, (uint16_t)1023)); } HANDLE_CODE(bref.pack(c.simul_ack_nack_and_cqi, 1)); if (c.csi_cfg_idx_r10_present) { HANDLE_CODE(c.csi_cfg_idx_r10.pack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_r10_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.cqi_pucch_res_idx_p1_r10_present, 1)); HANDLE_CODE(bref.unpack(c.ri_cfg_idx_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_mask_r9_present, 1)); HANDLE_CODE(bref.unpack(c.csi_cfg_idx_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.cqi_pucch_res_idx_r10, bref, (uint16_t)0, (uint16_t)1184)); if (c.cqi_pucch_res_idx_p1_r10_present) { HANDLE_CODE(unpack_unalign_integer(c.cqi_pucch_res_idx_p1_r10, bref, (uint16_t)0, (uint16_t)1184)); } HANDLE_CODE(unpack_unalign_integer(c.cqi_pmi_cfg_idx, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(c.cqi_format_ind_periodic_r10.unpack(bref)); if (c.ri_cfg_idx_present) { HANDLE_CODE(unpack_unalign_integer(c.ri_cfg_idx, bref, (uint16_t)0, (uint16_t)1023)); } HANDLE_CODE(bref.unpack(c.simul_ack_nack_and_cqi, 1)); if (c.csi_cfg_idx_r10_present) { HANDLE_CODE(c.csi_cfg_idx_r10.unpack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::destroy_() { switch (type_) { case types::wideband_cqi_r10: c.destroy(); break; case types::subband_cqi_r10: c.destroy(); break; default: break; } } void cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::wideband_cqi_r10: c.init(); break; case types::subband_cqi_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_"); } } cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::cqi_format_ind_periodic_r10_c_( const cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_& other) { type_ = other.type(); switch (type_) { case types::wideband_cqi_r10: c.init(other.c.get()); break; case types::subband_cqi_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_"); } } cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_& cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_:: operator=(const cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::wideband_cqi_r10: c.set(other.c.get()); break; case types::subband_cqi_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_"); } return *this; } void cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::wideband_cqi_r10: j.write_fieldname("widebandCQI-r10"); j.start_obj(); if (c.get().csi_report_mode_r10_present) { j.write_str("csi-ReportMode-r10", c.get().csi_report_mode_r10.to_string()); } j.end_obj(); break; case types::subband_cqi_r10: j.write_fieldname("subbandCQI-r10"); j.start_obj(); j.write_int("k", c.get().k); j.write_str("periodicityFactor-r10", c.get().periodicity_factor_r10.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::wideband_cqi_r10: HANDLE_CODE(bref.pack(c.get().csi_report_mode_r10_present, 1)); if (c.get().csi_report_mode_r10_present) { HANDLE_CODE(pack_enum(bref, c.get().csi_report_mode_r10)); } break; case types::subband_cqi_r10: HANDLE_CODE(pack_unalign_integer(bref, c.get().k, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_enum(bref, c.get().periodicity_factor_r10)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::wideband_cqi_r10: HANDLE_CODE(bref.unpack(c.get().csi_report_mode_r10_present, 1)); if (c.get().csi_report_mode_r10_present) { HANDLE_CODE(unpack_enum(c.get().csi_report_mode_r10, bref)); } break; case types::subband_cqi_r10: HANDLE_CODE(unpack_unalign_integer(c.get().k, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_enum(c.get().periodicity_factor_r10, bref)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::set(types::options e) { type_ = e; } void cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("cqi-pmi-ConfigIndex2-r10", c.cqi_pmi_cfg_idx2_r10); if (c.ri_cfg_idx2_r10_present) { j.write_int("ri-ConfigIndex2-r10", c.ri_cfg_idx2_r10); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.ri_cfg_idx2_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pmi_cfg_idx2_r10, (uint16_t)0, (uint16_t)1023)); if (c.ri_cfg_idx2_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, c.ri_cfg_idx2_r10, (uint16_t)0, (uint16_t)1023)); } break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.ri_cfg_idx2_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.cqi_pmi_cfg_idx2_r10, bref, (uint16_t)0, (uint16_t)1023)); if (c.ri_cfg_idx2_r10_present) { HANDLE_CODE(unpack_unalign_integer(c.ri_cfg_idx2_r10, bref, (uint16_t)0, (uint16_t)1023)); } break; default: log_invalid_choice_id(type_, "cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportPeriodic-v1130 ::= SEQUENCE SRSASN_CODE cqi_report_periodic_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(simul_ack_nack_and_cqi_format3_r11_present, 1)); HANDLE_CODE(bref.pack(cqi_report_periodic_proc_ext_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(cqi_report_periodic_proc_ext_to_add_mod_list_r11_present, 1)); if (cqi_report_periodic_proc_ext_to_release_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cqi_report_periodic_proc_ext_to_release_list_r11, 1, 3, UnalignedIntegerPacker(1, 3))); } if (cqi_report_periodic_proc_ext_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cqi_report_periodic_proc_ext_to_add_mod_list_r11, 1, 3)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(simul_ack_nack_and_cqi_format3_r11_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_periodic_proc_ext_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_periodic_proc_ext_to_add_mod_list_r11_present, 1)); if (cqi_report_periodic_proc_ext_to_release_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(cqi_report_periodic_proc_ext_to_release_list_r11, bref, 1, 3, UnalignedIntegerPacker(1, 3))); } if (cqi_report_periodic_proc_ext_to_add_mod_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(cqi_report_periodic_proc_ext_to_add_mod_list_r11, bref, 1, 3)); } return SRSASN_SUCCESS; } void cqi_report_periodic_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (simul_ack_nack_and_cqi_format3_r11_present) { j.write_str("simultaneousAckNackAndCQI-Format3-r11", "setup"); } if (cqi_report_periodic_proc_ext_to_release_list_r11_present) { j.start_array("cqi-ReportPeriodicProcExtToReleaseList-r11"); for (uint32_t i1 = 0; i1 < cqi_report_periodic_proc_ext_to_release_list_r11.size(); ++i1) { j.write_int(cqi_report_periodic_proc_ext_to_release_list_r11[i1]); } j.end_array(); } if (cqi_report_periodic_proc_ext_to_add_mod_list_r11_present) { j.start_array("cqi-ReportPeriodicProcExtToAddModList-r11"); for (uint32_t i1 = 0; i1 < cqi_report_periodic_proc_ext_to_add_mod_list_r11.size(); ++i1) { cqi_report_periodic_proc_ext_to_add_mod_list_r11[i1].to_json(j); } j.end_array(); } j.end_obj(); } // CQI-ReportPeriodic-v1310 ::= SEQUENCE SRSASN_CODE cqi_report_periodic_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cri_report_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(simul_ack_nack_and_cqi_format4_format5_r13_present, 1)); if (cri_report_cfg_r13_present) { HANDLE_CODE(cri_report_cfg_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cri_report_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(simul_ack_nack_and_cqi_format4_format5_r13_present, 1)); if (cri_report_cfg_r13_present) { HANDLE_CODE(cri_report_cfg_r13.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_periodic_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (cri_report_cfg_r13_present) { j.write_fieldname("cri-ReportConfig-r13"); cri_report_cfg_r13.to_json(j); } if (simul_ack_nack_and_cqi_format4_format5_r13_present) { j.write_str("simultaneousAckNackAndCQI-Format4-Format5-r13", "setup"); } j.end_obj(); } // CQI-ReportPeriodic-v1320 ::= SEQUENCE SRSASN_CODE cqi_report_periodic_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(periodicity_factor_wb_r13_present, 1)); if (periodicity_factor_wb_r13_present) { HANDLE_CODE(pack_enum(bref, periodicity_factor_wb_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(periodicity_factor_wb_r13_present, 1)); if (periodicity_factor_wb_r13_present) { HANDLE_CODE(unpack_enum(periodicity_factor_wb_r13, bref)); } return SRSASN_SUCCESS; } void cqi_report_periodic_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (periodicity_factor_wb_r13_present) { j.write_str("periodicityFactorWB-r13", periodicity_factor_wb_r13.to_string()); } j.end_obj(); } // DL-AM-RLC-r15 ::= SEQUENCE SRSASN_CODE dl_am_rlc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, t_reordering_r15)); HANDLE_CODE(pack_enum(bref, t_status_prohibit_r15)); HANDLE_CODE(bref.pack(extended_rlc_li_field_r15, 1)); return SRSASN_SUCCESS; } SRSASN_CODE dl_am_rlc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(t_reordering_r15, bref)); HANDLE_CODE(unpack_enum(t_status_prohibit_r15, bref)); HANDLE_CODE(bref.unpack(extended_rlc_li_field_r15, 1)); return SRSASN_SUCCESS; } void dl_am_rlc_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("t-Reordering-r15", t_reordering_r15.to_string()); j.write_str("t-StatusProhibit-r15", t_status_prohibit_r15.to_string()); j.write_bool("extended-RLC-LI-Field-r15", extended_rlc_li_field_r15); j.end_obj(); } // DL-UM-RLC-r15 ::= SEQUENCE SRSASN_CODE dl_um_rlc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sn_field_len_r15)); HANDLE_CODE(pack_enum(bref, t_reordering_r15)); return SRSASN_SUCCESS; } SRSASN_CODE dl_um_rlc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sn_field_len_r15, bref)); HANDLE_CODE(unpack_enum(t_reordering_r15, bref)); return SRSASN_SUCCESS; } void dl_um_rlc_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sn-FieldLength-r15", sn_field_len_r15.to_string()); j.write_str("t-Reordering-r15", t_reordering_r15.to_string()); j.end_obj(); } // MeasSubframePattern-r10 ::= CHOICE void meas_sf_pattern_r10_c::destroy_() { switch (type_) { case types::sf_pattern_fdd_r10: c.destroy >(); break; case types::sf_pattern_tdd_r10: c.destroy(); break; default: break; } } void meas_sf_pattern_r10_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sf_pattern_fdd_r10: c.init >(); break; case types::sf_pattern_tdd_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c"); } } meas_sf_pattern_r10_c::meas_sf_pattern_r10_c(const meas_sf_pattern_r10_c& other) { type_ = other.type(); switch (type_) { case types::sf_pattern_fdd_r10: c.init(other.c.get >()); break; case types::sf_pattern_tdd_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c"); } } meas_sf_pattern_r10_c& meas_sf_pattern_r10_c::operator=(const meas_sf_pattern_r10_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf_pattern_fdd_r10: c.set(other.c.get >()); break; case types::sf_pattern_tdd_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c"); } return *this; } void meas_sf_pattern_r10_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf_pattern_fdd_r10: j.write_str("subframePatternFDD-r10", c.get >().to_string()); break; case types::sf_pattern_tdd_r10: j.write_fieldname("subframePatternTDD-r10"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c"); } j.end_obj(); } SRSASN_CODE meas_sf_pattern_r10_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf_pattern_fdd_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::sf_pattern_tdd_r10: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_sf_pattern_r10_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf_pattern_fdd_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sf_pattern_tdd_r10: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::destroy_() { switch (type_) { case types::sf_cfg1_minus5_r10: c.destroy >(); break; case types::sf_cfg0_r10: c.destroy >(); break; case types::sf_cfg6_r10: c.destroy >(); break; default: break; } } void meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sf_cfg1_minus5_r10: c.init >(); break; case types::sf_cfg0_r10: c.init >(); break; case types::sf_cfg6_r10: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_"); } } meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::sf_pattern_tdd_r10_c_( const meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_& other) { type_ = other.type(); switch (type_) { case types::sf_cfg1_minus5_r10: c.init(other.c.get >()); break; case types::sf_cfg0_r10: c.init(other.c.get >()); break; case types::sf_cfg6_r10: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_"); } } meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_& meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_:: operator=(const meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf_cfg1_minus5_r10: c.set(other.c.get >()); break; case types::sf_cfg0_r10: c.set(other.c.get >()); break; case types::sf_cfg6_r10: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_"); } return *this; } void meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf_cfg1_minus5_r10: j.write_str("subframeConfig1-5-r10", c.get >().to_string()); break; case types::sf_cfg0_r10: j.write_str("subframeConfig0-r10", c.get >().to_string()); break; case types::sf_cfg6_r10: j.write_str("subframeConfig6-r10", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_"); } j.end_obj(); } SRSASN_CODE meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf_cfg1_minus5_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::sf_cfg0_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::sf_cfg6_r10: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf_cfg1_minus5_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sf_cfg0_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sf_cfg6_r10: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SPDCCH-Elements-r15 ::= CHOICE void spdcch_elems_r15_c::set(types::options e) { type_ = e; } void spdcch_elems_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.spdcch_set_cfg_id_r15_present) { j.write_int("spdcch-SetConfigId-r15", c.spdcch_set_cfg_id_r15); } if (c.spdcch_set_ref_sig_r15_present) { j.write_str("spdcch-SetReferenceSig-r15", c.spdcch_set_ref_sig_r15.to_string()); } if (c.tx_type_r15_present) { j.write_str("transmissionType-r15", c.tx_type_r15.to_string()); } if (c.spdcch_no_of_symbols_r15_present) { j.write_int("spdcch-NoOfSymbols-r15", c.spdcch_no_of_symbols_r15); } if (c.dmrs_scrambling_seq_int_r15_present) { j.write_int("dmrs-ScramblingSequenceInt-r15", c.dmrs_scrambling_seq_int_r15); } if (c.dci7_candidates_per_al_pdcch_r15_present) { j.start_array("dci7-CandidatesPerAL-PDCCH-r15"); for (uint32_t i1 = 0; i1 < c.dci7_candidates_per_al_pdcch_r15.size(); ++i1) { j.write_int(c.dci7_candidates_per_al_pdcch_r15[i1]); } j.end_array(); } if (c.dci7_candidate_sets_per_al_spdcch_r15_present) { j.start_array("dci7-CandidateSetsPerAL-SPDCCH-r15"); for (uint32_t i1 = 0; i1 < c.dci7_candidate_sets_per_al_spdcch_r15.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < c.dci7_candidate_sets_per_al_spdcch_r15[i1].size(); ++i2) { j.write_int(c.dci7_candidate_sets_per_al_spdcch_r15[i1][i2]); } j.end_array(); } j.end_array(); } if (c.res_block_assign_r15_present) { j.write_fieldname("resourceBlockAssignment-r15"); j.start_obj(); j.write_int("numberRB-InFreq-domain-r15", c.res_block_assign_r15.num_rb_in_freq_domain_r15); j.write_str("resourceBlockAssignment-r15", c.res_block_assign_r15.res_block_assign_r15.to_string()); j.end_obj(); } if (c.subslot_applicability_r15_present) { j.write_str("subslotApplicability-r15", c.subslot_applicability_r15.to_string()); } if (c.al_start_point_spdcch_r15_present) { j.start_array("al-StartingPointSPDCCH-r15"); for (uint32_t i1 = 0; i1 < c.al_start_point_spdcch_r15.size(); ++i1) { j.write_int(c.al_start_point_spdcch_r15[i1]); } j.end_array(); } if (c.sf_type_r15_present) { j.write_str("subframeType-r15", c.sf_type_r15.to_string()); } if (c.rate_matching_mode_r15_present) { j.write_str("rateMatchingMode-r15", c.rate_matching_mode_r15.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "spdcch_elems_r15_c"); } j.end_obj(); } SRSASN_CODE spdcch_elems_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.spdcch_set_cfg_id_r15_present, 1)); HANDLE_CODE(bref.pack(c.spdcch_set_ref_sig_r15_present, 1)); HANDLE_CODE(bref.pack(c.tx_type_r15_present, 1)); HANDLE_CODE(bref.pack(c.spdcch_no_of_symbols_r15_present, 1)); HANDLE_CODE(bref.pack(c.dmrs_scrambling_seq_int_r15_present, 1)); HANDLE_CODE(bref.pack(c.dci7_candidates_per_al_pdcch_r15_present, 1)); HANDLE_CODE(bref.pack(c.dci7_candidate_sets_per_al_spdcch_r15_present, 1)); HANDLE_CODE(bref.pack(c.res_block_assign_r15_present, 1)); HANDLE_CODE(bref.pack(c.subslot_applicability_r15_present, 1)); HANDLE_CODE(bref.pack(c.al_start_point_spdcch_r15_present, 1)); HANDLE_CODE(bref.pack(c.sf_type_r15_present, 1)); HANDLE_CODE(bref.pack(c.rate_matching_mode_r15_present, 1)); if (c.spdcch_set_cfg_id_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.spdcch_set_cfg_id_r15, (uint8_t)0, (uint8_t)3)); } if (c.spdcch_set_ref_sig_r15_present) { HANDLE_CODE(pack_enum(bref, c.spdcch_set_ref_sig_r15)); } if (c.tx_type_r15_present) { HANDLE_CODE(pack_enum(bref, c.tx_type_r15)); } if (c.spdcch_no_of_symbols_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.spdcch_no_of_symbols_r15, (uint8_t)1, (uint8_t)2)); } if (c.dmrs_scrambling_seq_int_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.dmrs_scrambling_seq_int_r15, (uint16_t)0, (uint16_t)503)); } if (c.dci7_candidates_per_al_pdcch_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.dci7_candidates_per_al_pdcch_r15, 1, 4, UnalignedIntegerPacker(0, 6))); } if (c.dci7_candidate_sets_per_al_spdcch_r15_present) { HANDLE_CODE(pack_dyn_seq_of( bref, c.dci7_candidate_sets_per_al_spdcch_r15, 1, 2, SeqOfPacker >(1, 4, UnalignedIntegerPacker(0, 6)))); } if (c.res_block_assign_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, c.res_block_assign_r15.num_rb_in_freq_domain_r15, (uint8_t)2, (uint8_t)100)); HANDLE_CODE(c.res_block_assign_r15.res_block_assign_r15.pack(bref)); } if (c.subslot_applicability_r15_present) { HANDLE_CODE(c.subslot_applicability_r15.pack(bref)); } if (c.al_start_point_spdcch_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.al_start_point_spdcch_r15, 1, 4, UnalignedIntegerPacker(0, 49))); } if (c.sf_type_r15_present) { HANDLE_CODE(pack_enum(bref, c.sf_type_r15)); } if (c.rate_matching_mode_r15_present) { HANDLE_CODE(pack_enum(bref, c.rate_matching_mode_r15)); } break; default: log_invalid_choice_id(type_, "spdcch_elems_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE spdcch_elems_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.spdcch_set_cfg_id_r15_present, 1)); HANDLE_CODE(bref.unpack(c.spdcch_set_ref_sig_r15_present, 1)); HANDLE_CODE(bref.unpack(c.tx_type_r15_present, 1)); HANDLE_CODE(bref.unpack(c.spdcch_no_of_symbols_r15_present, 1)); HANDLE_CODE(bref.unpack(c.dmrs_scrambling_seq_int_r15_present, 1)); HANDLE_CODE(bref.unpack(c.dci7_candidates_per_al_pdcch_r15_present, 1)); HANDLE_CODE(bref.unpack(c.dci7_candidate_sets_per_al_spdcch_r15_present, 1)); HANDLE_CODE(bref.unpack(c.res_block_assign_r15_present, 1)); HANDLE_CODE(bref.unpack(c.subslot_applicability_r15_present, 1)); HANDLE_CODE(bref.unpack(c.al_start_point_spdcch_r15_present, 1)); HANDLE_CODE(bref.unpack(c.sf_type_r15_present, 1)); HANDLE_CODE(bref.unpack(c.rate_matching_mode_r15_present, 1)); if (c.spdcch_set_cfg_id_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.spdcch_set_cfg_id_r15, bref, (uint8_t)0, (uint8_t)3)); } if (c.spdcch_set_ref_sig_r15_present) { HANDLE_CODE(unpack_enum(c.spdcch_set_ref_sig_r15, bref)); } if (c.tx_type_r15_present) { HANDLE_CODE(unpack_enum(c.tx_type_r15, bref)); } if (c.spdcch_no_of_symbols_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.spdcch_no_of_symbols_r15, bref, (uint8_t)1, (uint8_t)2)); } if (c.dmrs_scrambling_seq_int_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.dmrs_scrambling_seq_int_r15, bref, (uint16_t)0, (uint16_t)503)); } if (c.dci7_candidates_per_al_pdcch_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(c.dci7_candidates_per_al_pdcch_r15, bref, 1, 4, UnalignedIntegerPacker(0, 6))); } if (c.dci7_candidate_sets_per_al_spdcch_r15_present) { HANDLE_CODE(unpack_dyn_seq_of( c.dci7_candidate_sets_per_al_spdcch_r15, bref, 1, 2, SeqOfPacker >(1, 4, UnalignedIntegerPacker(0, 6)))); } if (c.res_block_assign_r15_present) { HANDLE_CODE( unpack_unalign_integer(c.res_block_assign_r15.num_rb_in_freq_domain_r15, bref, (uint8_t)2, (uint8_t)100)); HANDLE_CODE(c.res_block_assign_r15.res_block_assign_r15.unpack(bref)); } if (c.subslot_applicability_r15_present) { HANDLE_CODE(c.subslot_applicability_r15.unpack(bref)); } if (c.al_start_point_spdcch_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.al_start_point_spdcch_r15, bref, 1, 4, UnalignedIntegerPacker(0, 49))); } if (c.sf_type_r15_present) { HANDLE_CODE(unpack_enum(c.sf_type_r15, bref)); } if (c.rate_matching_mode_r15_present) { HANDLE_CODE(unpack_enum(c.rate_matching_mode_r15, bref)); } break; default: log_invalid_choice_id(type_, "spdcch_elems_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SPUCCH-Elements-r15 ::= CHOICE void spucch_elems_r15_c::set(types::options e) { type_ = e; } void spucch_elems_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.n1_subslot_spucch_an_list_r15_present) { j.start_array("n1SubslotSPUCCH-AN-List-r15"); for (uint32_t i1 = 0; i1 < c.n1_subslot_spucch_an_list_r15.size(); ++i1) { j.write_int(c.n1_subslot_spucch_an_list_r15[i1]); } j.end_array(); } if (c.n1_slot_spucch_fh_an_list_r15_present) { j.write_int("n1SlotSPUCCH-FH-AN-List-r15", c.n1_slot_spucch_fh_an_list_r15); } if (c.n1_slot_spucch_no_fh_an_list_r15_present) { j.write_int("n1SlotSPUCCH-NoFH-AN-List-r15", c.n1_slot_spucch_no_fh_an_list_r15); } if (c.n3_spucch_an_list_r15_present) { j.write_int("n3SPUCCH-AN-List-r15", c.n3_spucch_an_list_r15); } if (c.n4_spucch_slot_res_r15_present) { j.start_array("n4SPUCCHSlot-Resource-r15"); for (uint32_t i1 = 0; i1 < c.n4_spucch_slot_res_r15.size(); ++i1) { c.n4_spucch_slot_res_r15[i1].to_json(j); } j.end_array(); } if (c.n4_spucch_subslot_res_r15_present) { j.start_array("n4SPUCCHSubslot-Resource-r15"); for (uint32_t i1 = 0; i1 < c.n4_spucch_subslot_res_r15.size(); ++i1) { c.n4_spucch_subslot_res_r15[i1].to_json(j); } j.end_array(); } if (c.n4max_coderate_slot_pucch_r15_present) { j.write_int("n4maxCoderateSlotPUCCH-r15", c.n4max_coderate_slot_pucch_r15); } if (c.n4max_coderate_subslot_pucch_r15_present) { j.write_int("n4maxCoderateSubslotPUCCH-r15", c.n4max_coderate_subslot_pucch_r15); } if (c.n4max_coderate_multi_res_slot_pucch_r15_present) { j.write_int("n4maxCoderateMultiResourceSlotPUCCH-r15", c.n4max_coderate_multi_res_slot_pucch_r15); } if (c.n4max_coderate_multi_res_subslot_pucch_r15_present) { j.write_int("n4maxCoderateMultiResourceSubslotPUCCH-r15", c.n4max_coderate_multi_res_subslot_pucch_r15); } j.end_obj(); break; default: log_invalid_choice_id(type_, "spucch_elems_r15_c"); } j.end_obj(); } SRSASN_CODE spucch_elems_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.n1_subslot_spucch_an_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.n1_slot_spucch_fh_an_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.n1_slot_spucch_no_fh_an_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.n3_spucch_an_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.n4_spucch_slot_res_r15_present, 1)); HANDLE_CODE(bref.pack(c.n4_spucch_subslot_res_r15_present, 1)); HANDLE_CODE(bref.pack(c.n4max_coderate_slot_pucch_r15_present, 1)); HANDLE_CODE(bref.pack(c.n4max_coderate_subslot_pucch_r15_present, 1)); HANDLE_CODE(bref.pack(c.n4max_coderate_multi_res_slot_pucch_r15_present, 1)); HANDLE_CODE(bref.pack(c.n4max_coderate_multi_res_subslot_pucch_r15_present, 1)); if (c.n1_subslot_spucch_an_list_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.n1_subslot_spucch_an_list_r15, 1, 4, UnalignedIntegerPacker(0, 1319))); } if (c.n1_slot_spucch_fh_an_list_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.n1_slot_spucch_fh_an_list_r15, (uint16_t)0, (uint16_t)1319)); } if (c.n1_slot_spucch_no_fh_an_list_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.n1_slot_spucch_no_fh_an_list_r15, (uint16_t)0, (uint16_t)3959)); } if (c.n3_spucch_an_list_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.n3_spucch_an_list_r15, (uint16_t)0, (uint16_t)549)); } if (c.n4_spucch_slot_res_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.n4_spucch_slot_res_r15, 1, 2)); } if (c.n4_spucch_subslot_res_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.n4_spucch_subslot_res_r15, 1, 2)); } if (c.n4max_coderate_slot_pucch_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.n4max_coderate_slot_pucch_r15, (uint8_t)0, (uint8_t)7)); } if (c.n4max_coderate_subslot_pucch_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.n4max_coderate_subslot_pucch_r15, (uint8_t)0, (uint8_t)7)); } if (c.n4max_coderate_multi_res_slot_pucch_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.n4max_coderate_multi_res_slot_pucch_r15, (uint8_t)0, (uint8_t)7)); } if (c.n4max_coderate_multi_res_subslot_pucch_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.n4max_coderate_multi_res_subslot_pucch_r15, (uint8_t)0, (uint8_t)7)); } break; default: log_invalid_choice_id(type_, "spucch_elems_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE spucch_elems_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.n1_subslot_spucch_an_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n1_slot_spucch_fh_an_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n1_slot_spucch_no_fh_an_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n3_spucch_an_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n4_spucch_slot_res_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n4_spucch_subslot_res_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n4max_coderate_slot_pucch_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n4max_coderate_subslot_pucch_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n4max_coderate_multi_res_slot_pucch_r15_present, 1)); HANDLE_CODE(bref.unpack(c.n4max_coderate_multi_res_subslot_pucch_r15_present, 1)); if (c.n1_subslot_spucch_an_list_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(c.n1_subslot_spucch_an_list_r15, bref, 1, 4, UnalignedIntegerPacker(0, 1319))); } if (c.n1_slot_spucch_fh_an_list_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.n1_slot_spucch_fh_an_list_r15, bref, (uint16_t)0, (uint16_t)1319)); } if (c.n1_slot_spucch_no_fh_an_list_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.n1_slot_spucch_no_fh_an_list_r15, bref, (uint16_t)0, (uint16_t)3959)); } if (c.n3_spucch_an_list_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.n3_spucch_an_list_r15, bref, (uint16_t)0, (uint16_t)549)); } if (c.n4_spucch_slot_res_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.n4_spucch_slot_res_r15, bref, 1, 2)); } if (c.n4_spucch_subslot_res_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.n4_spucch_subslot_res_r15, bref, 1, 2)); } if (c.n4max_coderate_slot_pucch_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.n4max_coderate_slot_pucch_r15, bref, (uint8_t)0, (uint8_t)7)); } if (c.n4max_coderate_subslot_pucch_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.n4max_coderate_subslot_pucch_r15, bref, (uint8_t)0, (uint8_t)7)); } if (c.n4max_coderate_multi_res_slot_pucch_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.n4max_coderate_multi_res_slot_pucch_r15, bref, (uint8_t)0, (uint8_t)7)); } if (c.n4max_coderate_multi_res_subslot_pucch_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.n4max_coderate_multi_res_subslot_pucch_r15, bref, (uint8_t)0, (uint8_t)7)); } break; default: log_invalid_choice_id(type_, "spucch_elems_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // TPC-Index ::= CHOICE void tpc_idx_c::destroy_() {} void tpc_idx_c::set(types::options e) { destroy_(); type_ = e; } tpc_idx_c::tpc_idx_c(const tpc_idx_c& other) { type_ = other.type(); switch (type_) { case types::idx_of_format3: c.init(other.c.get()); break; case types::idx_of_format3_a: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "tpc_idx_c"); } } tpc_idx_c& tpc_idx_c::operator=(const tpc_idx_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::idx_of_format3: c.set(other.c.get()); break; case types::idx_of_format3_a: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "tpc_idx_c"); } return *this; } void tpc_idx_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::idx_of_format3: j.write_int("indexOfFormat3", c.get()); break; case types::idx_of_format3_a: j.write_int("indexOfFormat3A", c.get()); break; default: log_invalid_choice_id(type_, "tpc_idx_c"); } j.end_obj(); } SRSASN_CODE tpc_idx_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::idx_of_format3: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)15)); break; case types::idx_of_format3_a: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)31)); break; default: log_invalid_choice_id(type_, "tpc_idx_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE tpc_idx_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::idx_of_format3: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)15)); break; case types::idx_of_format3_a: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)31)); break; default: log_invalid_choice_id(type_, "tpc_idx_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UL-AM-RLC-r15 ::= SEQUENCE SRSASN_CODE ul_am_rlc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, t_poll_retx_r15)); HANDLE_CODE(pack_enum(bref, poll_pdu_r15)); HANDLE_CODE(pack_enum(bref, poll_byte_r15)); HANDLE_CODE(pack_enum(bref, max_retx_thres_r15)); HANDLE_CODE(bref.pack(extended_rlc_li_field_r15, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ul_am_rlc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(t_poll_retx_r15, bref)); HANDLE_CODE(unpack_enum(poll_pdu_r15, bref)); HANDLE_CODE(unpack_enum(poll_byte_r15, bref)); HANDLE_CODE(unpack_enum(max_retx_thres_r15, bref)); HANDLE_CODE(bref.unpack(extended_rlc_li_field_r15, 1)); return SRSASN_SUCCESS; } void ul_am_rlc_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("t-PollRetransmit-r15", t_poll_retx_r15.to_string()); j.write_str("pollPDU-r15", poll_pdu_r15.to_string()); j.write_str("pollByte-r15", poll_byte_r15.to_string()); j.write_str("maxRetxThreshold-r15", max_retx_thres_r15.to_string()); j.write_bool("extended-RLC-LI-Field-r15", extended_rlc_li_field_r15); j.end_obj(); } // UL-UM-RLC ::= SEQUENCE SRSASN_CODE ul_um_rlc_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sn_field_len)); return SRSASN_SUCCESS; } SRSASN_CODE ul_um_rlc_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sn_field_len, bref)); return SRSASN_SUCCESS; } void ul_um_rlc_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sn-FieldLength", sn_field_len.to_string()); j.end_obj(); } // ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE void zero_tx_pwr_csi_rs_conf_r12_c::set(types::options e) { type_ = e; } void zero_tx_pwr_csi_rs_conf_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "zero_tx_pwr_csi_rs_conf_r12_c"); } j.end_obj(); } SRSASN_CODE zero_tx_pwr_csi_rs_conf_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "zero_tx_pwr_csi_rs_conf_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE zero_tx_pwr_csi_rs_conf_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "zero_tx_pwr_csi_rs_conf_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportConfig-r10 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cqi_report_aperiodic_r10_present, 1)); HANDLE_CODE(bref.pack(cqi_report_periodic_r10_present, 1)); HANDLE_CODE(bref.pack(pmi_ri_report_r9_present, 1)); HANDLE_CODE(bref.pack(csi_sf_pattern_cfg_r10_present, 1)); if (cqi_report_aperiodic_r10_present) { HANDLE_CODE(cqi_report_aperiodic_r10.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, nom_pdsch_rs_epre_offset, (int8_t)-1, (int8_t)6)); if (cqi_report_periodic_r10_present) { HANDLE_CODE(cqi_report_periodic_r10.pack(bref)); } if (csi_sf_pattern_cfg_r10_present) { HANDLE_CODE(csi_sf_pattern_cfg_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cqi_report_aperiodic_r10_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_periodic_r10_present, 1)); HANDLE_CODE(bref.unpack(pmi_ri_report_r9_present, 1)); HANDLE_CODE(bref.unpack(csi_sf_pattern_cfg_r10_present, 1)); if (cqi_report_aperiodic_r10_present) { HANDLE_CODE(cqi_report_aperiodic_r10.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(nom_pdsch_rs_epre_offset, bref, (int8_t)-1, (int8_t)6)); if (cqi_report_periodic_r10_present) { HANDLE_CODE(cqi_report_periodic_r10.unpack(bref)); } if (csi_sf_pattern_cfg_r10_present) { HANDLE_CODE(csi_sf_pattern_cfg_r10.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_r10_s::to_json(json_writer& j) const { j.start_obj(); if (cqi_report_aperiodic_r10_present) { j.write_fieldname("cqi-ReportAperiodic-r10"); cqi_report_aperiodic_r10.to_json(j); } j.write_int("nomPDSCH-RS-EPRE-Offset", nom_pdsch_rs_epre_offset); if (cqi_report_periodic_r10_present) { j.write_fieldname("cqi-ReportPeriodic-r10"); cqi_report_periodic_r10.to_json(j); } if (pmi_ri_report_r9_present) { j.write_str("pmi-RI-Report-r9", "setup"); } if (csi_sf_pattern_cfg_r10_present) { j.write_fieldname("csi-SubframePatternConfig-r10"); csi_sf_pattern_cfg_r10.to_json(j); } j.end_obj(); } void cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::set(types::options e) { type_ = e; } void cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("csi-MeasSubframeSet1-r10"); c.csi_meas_sf_set1_r10.to_json(j); j.write_fieldname("csi-MeasSubframeSet2-r10"); c.csi_meas_sf_set2_r10.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.csi_meas_sf_set1_r10.pack(bref)); HANDLE_CODE(c.csi_meas_sf_set2_r10.pack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.csi_meas_sf_set1_r10.unpack(bref)); HANDLE_CODE(c.csi_meas_sf_set2_r10.unpack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportConfig-v1130 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(cqi_report_periodic_v1130.pack(bref)); HANDLE_CODE(cqi_report_both_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(cqi_report_periodic_v1130.unpack(bref)); HANDLE_CODE(cqi_report_both_r11.unpack(bref)); return SRSASN_SUCCESS; } void cqi_report_cfg_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("cqi-ReportPeriodic-v1130"); cqi_report_periodic_v1130.to_json(j); j.write_fieldname("cqi-ReportBoth-r11"); cqi_report_both_r11.to_json(j); j.end_obj(); } // CQI-ReportConfig-v1250 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_sf_pattern_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(cqi_report_both_v1250_present, 1)); HANDLE_CODE(bref.pack(cqi_report_aperiodic_v1250_present, 1)); HANDLE_CODE(bref.pack(alt_cqi_table_r12_present, 1)); if (csi_sf_pattern_cfg_r12_present) { HANDLE_CODE(csi_sf_pattern_cfg_r12.pack(bref)); } if (cqi_report_both_v1250_present) { HANDLE_CODE(cqi_report_both_v1250.pack(bref)); } if (cqi_report_aperiodic_v1250_present) { HANDLE_CODE(cqi_report_aperiodic_v1250.pack(bref)); } if (alt_cqi_table_r12_present) { HANDLE_CODE(pack_enum(bref, alt_cqi_table_r12)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_sf_pattern_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_both_v1250_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_aperiodic_v1250_present, 1)); HANDLE_CODE(bref.unpack(alt_cqi_table_r12_present, 1)); if (csi_sf_pattern_cfg_r12_present) { HANDLE_CODE(csi_sf_pattern_cfg_r12.unpack(bref)); } if (cqi_report_both_v1250_present) { HANDLE_CODE(cqi_report_both_v1250.unpack(bref)); } if (cqi_report_aperiodic_v1250_present) { HANDLE_CODE(cqi_report_aperiodic_v1250.unpack(bref)); } if (alt_cqi_table_r12_present) { HANDLE_CODE(unpack_enum(alt_cqi_table_r12, bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (csi_sf_pattern_cfg_r12_present) { j.write_fieldname("csi-SubframePatternConfig-r12"); csi_sf_pattern_cfg_r12.to_json(j); } if (cqi_report_both_v1250_present) { j.write_fieldname("cqi-ReportBoth-v1250"); cqi_report_both_v1250.to_json(j); } if (cqi_report_aperiodic_v1250_present) { j.write_fieldname("cqi-ReportAperiodic-v1250"); cqi_report_aperiodic_v1250.to_json(j); } if (alt_cqi_table_r12_present) { j.write_str("altCQI-Table-r12", alt_cqi_table_r12.to_string()); } j.end_obj(); } void cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::set(types::options e) { type_ = e; } void cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("csi-MeasSubframeSets-r12", c.csi_meas_sf_sets_r12.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.csi_meas_sf_sets_r12.pack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.csi_meas_sf_sets_r12.unpack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportConfig-v1310 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cqi_report_both_v1310_present, 1)); HANDLE_CODE(bref.pack(cqi_report_aperiodic_v1310_present, 1)); HANDLE_CODE(bref.pack(cqi_report_periodic_v1310_present, 1)); if (cqi_report_both_v1310_present) { HANDLE_CODE(cqi_report_both_v1310.pack(bref)); } if (cqi_report_aperiodic_v1310_present) { HANDLE_CODE(cqi_report_aperiodic_v1310.pack(bref)); } if (cqi_report_periodic_v1310_present) { HANDLE_CODE(cqi_report_periodic_v1310.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cqi_report_both_v1310_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_aperiodic_v1310_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_periodic_v1310_present, 1)); if (cqi_report_both_v1310_present) { HANDLE_CODE(cqi_report_both_v1310.unpack(bref)); } if (cqi_report_aperiodic_v1310_present) { HANDLE_CODE(cqi_report_aperiodic_v1310.unpack(bref)); } if (cqi_report_periodic_v1310_present) { HANDLE_CODE(cqi_report_periodic_v1310.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (cqi_report_both_v1310_present) { j.write_fieldname("cqi-ReportBoth-v1310"); cqi_report_both_v1310.to_json(j); } if (cqi_report_aperiodic_v1310_present) { j.write_fieldname("cqi-ReportAperiodic-v1310"); cqi_report_aperiodic_v1310.to_json(j); } if (cqi_report_periodic_v1310_present) { j.write_fieldname("cqi-ReportPeriodic-v1310"); cqi_report_periodic_v1310.to_json(j); } j.end_obj(); } // CQI-ReportConfig-v1320 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cqi_report_periodic_v1320_present, 1)); if (cqi_report_periodic_v1320_present) { HANDLE_CODE(cqi_report_periodic_v1320.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cqi_report_periodic_v1320_present, 1)); if (cqi_report_periodic_v1320_present) { HANDLE_CODE(cqi_report_periodic_v1320.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (cqi_report_periodic_v1320_present) { j.write_fieldname("cqi-ReportPeriodic-v1320"); cqi_report_periodic_v1320.to_json(j); } j.end_obj(); } // CQI-ReportConfig-v1430 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cqi_report_aperiodic_hybrid_r14_present, 1)); if (cqi_report_aperiodic_hybrid_r14_present) { HANDLE_CODE(cqi_report_aperiodic_hybrid_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cqi_report_aperiodic_hybrid_r14_present, 1)); if (cqi_report_aperiodic_hybrid_r14_present) { HANDLE_CODE(cqi_report_aperiodic_hybrid_r14.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (cqi_report_aperiodic_hybrid_r14_present) { j.write_fieldname("cqi-ReportAperiodicHybrid-r14"); cqi_report_aperiodic_hybrid_r14.to_json(j); } j.end_obj(); } // CSI-RS-Config-r10 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_rs_r10_present, 1)); HANDLE_CODE(bref.pack(zero_tx_pwr_csi_rs_r10_present, 1)); if (csi_rs_r10_present) { HANDLE_CODE(csi_rs_r10.pack(bref)); } if (zero_tx_pwr_csi_rs_r10_present) { HANDLE_CODE(zero_tx_pwr_csi_rs_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_rs_r10_present, 1)); HANDLE_CODE(bref.unpack(zero_tx_pwr_csi_rs_r10_present, 1)); if (csi_rs_r10_present) { HANDLE_CODE(csi_rs_r10.unpack(bref)); } if (zero_tx_pwr_csi_rs_r10_present) { HANDLE_CODE(zero_tx_pwr_csi_rs_r10.unpack(bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_r10_s::to_json(json_writer& j) const { j.start_obj(); if (csi_rs_r10_present) { j.write_fieldname("csi-RS-r10"); csi_rs_r10.to_json(j); } if (zero_tx_pwr_csi_rs_r10_present) { j.write_fieldname("zeroTxPowerCSI-RS-r10"); zero_tx_pwr_csi_rs_r10.to_json(j); } j.end_obj(); } void csi_rs_cfg_r10_s::csi_rs_r10_c_::set(types::options e) { type_ = e; } void csi_rs_cfg_r10_s::csi_rs_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("antennaPortsCount-r10", c.ant_ports_count_r10.to_string()); j.write_int("resourceConfig-r10", c.res_cfg_r10); j.write_int("subframeConfig-r10", c.sf_cfg_r10); j.write_int("p-C-r10", c.p_c_r10); j.end_obj(); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_r10_s::csi_rs_r10_c_"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_r10_s::csi_rs_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.ant_ports_count_r10)); HANDLE_CODE(pack_unalign_integer(bref, c.res_cfg_r10, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, c.sf_cfg_r10, (uint8_t)0, (uint8_t)154)); HANDLE_CODE(pack_unalign_integer(bref, c.p_c_r10, (int8_t)-8, (int8_t)15)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_r10_s::csi_rs_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_r10_s::csi_rs_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.ant_ports_count_r10, bref)); HANDLE_CODE(unpack_unalign_integer(c.res_cfg_r10, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(c.sf_cfg_r10, bref, (uint8_t)0, (uint8_t)154)); HANDLE_CODE(unpack_unalign_integer(c.p_c_r10, bref, (int8_t)-8, (int8_t)15)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_r10_s::csi_rs_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-Config-v1250 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(zero_tx_pwr_csi_rs2_r12_present, 1)); HANDLE_CODE(bref.pack(ds_zero_tx_pwr_csi_rs_r12_present, 1)); if (zero_tx_pwr_csi_rs2_r12_present) { HANDLE_CODE(zero_tx_pwr_csi_rs2_r12.pack(bref)); } if (ds_zero_tx_pwr_csi_rs_r12_present) { HANDLE_CODE(ds_zero_tx_pwr_csi_rs_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(zero_tx_pwr_csi_rs2_r12_present, 1)); HANDLE_CODE(bref.unpack(ds_zero_tx_pwr_csi_rs_r12_present, 1)); if (zero_tx_pwr_csi_rs2_r12_present) { HANDLE_CODE(zero_tx_pwr_csi_rs2_r12.unpack(bref)); } if (ds_zero_tx_pwr_csi_rs_r12_present) { HANDLE_CODE(ds_zero_tx_pwr_csi_rs_r12.unpack(bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (zero_tx_pwr_csi_rs2_r12_present) { j.write_fieldname("zeroTxPowerCSI-RS2-r12"); zero_tx_pwr_csi_rs2_r12.to_json(j); } if (ds_zero_tx_pwr_csi_rs_r12_present) { j.write_fieldname("ds-ZeroTxPowerCSI-RS-r12"); ds_zero_tx_pwr_csi_rs_r12.to_json(j); } j.end_obj(); } void csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::set(types::options e) { type_ = e; } void csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("zeroTxPowerCSI-RS-List-r12"); for (uint32_t i1 = 0; i1 < c.zero_tx_pwr_csi_rs_list_r12.size(); ++i1) { c.zero_tx_pwr_csi_rs_list_r12[i1].to_json(j); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.zero_tx_pwr_csi_rs_list_r12, 1, 5)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.zero_tx_pwr_csi_rs_list_r12, bref, 1, 5)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-Config-v1310 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(e_mimo_type_r13_present, 1)); if (e_mimo_type_r13_present) { HANDLE_CODE(e_mimo_type_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(e_mimo_type_r13_present, 1)); if (e_mimo_type_r13_present) { HANDLE_CODE(e_mimo_type_r13.unpack(bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (e_mimo_type_r13_present) { j.write_fieldname("eMIMO-Type-r13"); e_mimo_type_r13.to_json(j); } j.end_obj(); } // CSI-RS-Config-v1430 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dummy_present, 1)); HANDLE_CODE(bref.pack(e_mimo_hybrid_r14_present, 1)); HANDLE_CODE(bref.pack(advanced_codebook_enabled_r14_present, 1)); if (dummy_present) { HANDLE_CODE(dummy.pack(bref)); } if (e_mimo_hybrid_r14_present) { HANDLE_CODE(e_mimo_hybrid_r14.pack(bref)); } if (advanced_codebook_enabled_r14_present) { HANDLE_CODE(bref.pack(advanced_codebook_enabled_r14, 1)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dummy_present, 1)); HANDLE_CODE(bref.unpack(e_mimo_hybrid_r14_present, 1)); HANDLE_CODE(bref.unpack(advanced_codebook_enabled_r14_present, 1)); if (dummy_present) { HANDLE_CODE(dummy.unpack(bref)); } if (e_mimo_hybrid_r14_present) { HANDLE_CODE(e_mimo_hybrid_r14.unpack(bref)); } if (advanced_codebook_enabled_r14_present) { HANDLE_CODE(bref.unpack(advanced_codebook_enabled_r14, 1)); } return SRSASN_SUCCESS; } void csi_rs_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (dummy_present) { j.write_fieldname("dummy"); dummy.to_json(j); } if (e_mimo_hybrid_r14_present) { j.write_fieldname("eMIMO-Hybrid-r14"); e_mimo_hybrid_r14.to_json(j); } if (advanced_codebook_enabled_r14_present) { j.write_bool("advancedCodebookEnabled-r14", advanced_codebook_enabled_r14); } j.end_obj(); } // CSI-RS-ConfigZP-r11 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_zp_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, csi_rs_cfg_zp_id_r11, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(res_cfg_list_r11.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, sf_cfg_r11, (uint8_t)0, (uint8_t)154)); return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_zp_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(csi_rs_cfg_zp_id_r11, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(res_cfg_list_r11.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(sf_cfg_r11, bref, (uint8_t)0, (uint8_t)154)); return SRSASN_SUCCESS; } void csi_rs_cfg_zp_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("csi-RS-ConfigZPId-r11", csi_rs_cfg_zp_id_r11); j.write_str("resourceConfigList-r11", res_cfg_list_r11.to_string()); j.write_int("subframeConfig-r11", sf_cfg_r11); j.end_obj(); } // DL-AM-RLC ::= SEQUENCE SRSASN_CODE dl_am_rlc_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, t_reordering)); HANDLE_CODE(pack_enum(bref, t_status_prohibit)); return SRSASN_SUCCESS; } SRSASN_CODE dl_am_rlc_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(t_reordering, bref)); HANDLE_CODE(unpack_enum(t_status_prohibit, bref)); return SRSASN_SUCCESS; } void dl_am_rlc_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("t-Reordering", t_reordering.to_string()); j.write_str("t-StatusProhibit", t_status_prohibit.to_string()); j.end_obj(); } // DL-UM-RLC ::= SEQUENCE SRSASN_CODE dl_um_rlc_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sn_field_len)); HANDLE_CODE(pack_enum(bref, t_reordering)); return SRSASN_SUCCESS; } SRSASN_CODE dl_um_rlc_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sn_field_len, bref)); HANDLE_CODE(unpack_enum(t_reordering, bref)); return SRSASN_SUCCESS; } void dl_um_rlc_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sn-FieldLength", sn_field_len.to_string()); j.write_str("t-Reordering", t_reordering.to_string()); j.end_obj(); } // DeltaTxD-OffsetListSPUCCH-r15 ::= SEQUENCE SRSASN_CODE delta_tx_d_offset_list_spucch_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_spucch_format1_r15)); HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_spucch_format1a_r15)); HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_spucch_format1b_r15)); HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_spucch_format3_r15)); return SRSASN_SUCCESS; } SRSASN_CODE delta_tx_d_offset_list_spucch_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(delta_tx_d_offset_spucch_format1_r15, bref)); HANDLE_CODE(unpack_enum(delta_tx_d_offset_spucch_format1a_r15, bref)); HANDLE_CODE(unpack_enum(delta_tx_d_offset_spucch_format1b_r15, bref)); HANDLE_CODE(unpack_enum(delta_tx_d_offset_spucch_format3_r15, bref)); return SRSASN_SUCCESS; } void delta_tx_d_offset_list_spucch_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("deltaTxD-OffsetSPUCCH-Format1-r15", delta_tx_d_offset_spucch_format1_r15.to_string()); j.write_str("deltaTxD-OffsetSPUCCH-Format1a-r15", delta_tx_d_offset_spucch_format1a_r15.to_string()); j.write_str("deltaTxD-OffsetSPUCCH-Format1b-r15", delta_tx_d_offset_spucch_format1b_r15.to_string()); j.write_str("deltaTxD-OffsetSPUCCH-Format3-r15", delta_tx_d_offset_spucch_format3_r15.to_string()); j.end_obj(); } // EPDCCH-SetConfig-r11 ::= SEQUENCE SRSASN_CODE epdcch_set_cfg_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(re_map_qcl_cfg_id_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, set_cfg_id_r11, (uint8_t)0, (uint8_t)1)); HANDLE_CODE(pack_enum(bref, tx_type_r11)); HANDLE_CODE(pack_enum(bref, res_block_assign_r11.num_prb_pairs_r11)); HANDLE_CODE(res_block_assign_r11.res_block_assign_r11.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, dmrs_scrambling_seq_int_r11, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, pucch_res_start_offset_r11, (uint16_t)0, (uint16_t)2047)); if (re_map_qcl_cfg_id_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, re_map_qcl_cfg_id_r11, (uint8_t)1, (uint8_t)4)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(csi_rs_cfg_zp_id2_r12_present != (csi_rs_cfg_zp_id2_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= csi_rs_cfg_zp_id2_r12_present; rrc_asn1_warn_assert(num_prb_pairs_v1310_present != (num_prb_pairs_v1310.get() != NULL), __FILE__, __LINE__); group_flags[1] |= num_prb_pairs_v1310_present; rrc_asn1_warn_assert(mpdcch_cfg_r13_present != (mpdcch_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[1] |= mpdcch_cfg_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csi_rs_cfg_zp_id2_r12_present, 1)); if (csi_rs_cfg_zp_id2_r12_present) { HANDLE_CODE(csi_rs_cfg_zp_id2_r12->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(num_prb_pairs_v1310_present, 1)); HANDLE_CODE(bref.pack(mpdcch_cfg_r13_present, 1)); if (num_prb_pairs_v1310_present) { HANDLE_CODE(num_prb_pairs_v1310->pack(bref)); } if (mpdcch_cfg_r13_present) { HANDLE_CODE(mpdcch_cfg_r13->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE epdcch_set_cfg_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(re_map_qcl_cfg_id_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(set_cfg_id_r11, bref, (uint8_t)0, (uint8_t)1)); HANDLE_CODE(unpack_enum(tx_type_r11, bref)); HANDLE_CODE(unpack_enum(res_block_assign_r11.num_prb_pairs_r11, bref)); HANDLE_CODE(res_block_assign_r11.res_block_assign_r11.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(dmrs_scrambling_seq_int_r11, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(pucch_res_start_offset_r11, bref, (uint16_t)0, (uint16_t)2047)); if (re_map_qcl_cfg_id_r11_present) { HANDLE_CODE(unpack_unalign_integer(re_map_qcl_cfg_id_r11, bref, (uint8_t)1, (uint8_t)4)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csi_rs_cfg_zp_id2_r12_present, 1)); if (csi_rs_cfg_zp_id2_r12_present) { csi_rs_cfg_zp_id2_r12 = make_copy_ptr(csi_rs_cfg_zp_id2_r12_c_()); HANDLE_CODE(csi_rs_cfg_zp_id2_r12->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(num_prb_pairs_v1310_present, 1)); HANDLE_CODE(bref.unpack(mpdcch_cfg_r13_present, 1)); if (num_prb_pairs_v1310_present) { num_prb_pairs_v1310 = make_copy_ptr(num_prb_pairs_v1310_c_()); HANDLE_CODE(num_prb_pairs_v1310->unpack(bref)); } if (mpdcch_cfg_r13_present) { mpdcch_cfg_r13 = make_copy_ptr(mpdcch_cfg_r13_c_()); HANDLE_CODE(mpdcch_cfg_r13->unpack(bref)); } } } return SRSASN_SUCCESS; } void epdcch_set_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("setConfigId-r11", set_cfg_id_r11); j.write_str("transmissionType-r11", tx_type_r11.to_string()); j.write_fieldname("resourceBlockAssignment-r11"); j.start_obj(); j.write_str("numberPRB-Pairs-r11", res_block_assign_r11.num_prb_pairs_r11.to_string()); j.write_str("resourceBlockAssignment-r11", res_block_assign_r11.res_block_assign_r11.to_string()); j.end_obj(); j.write_int("dmrs-ScramblingSequenceInt-r11", dmrs_scrambling_seq_int_r11); j.write_int("pucch-ResourceStartOffset-r11", pucch_res_start_offset_r11); if (re_map_qcl_cfg_id_r11_present) { j.write_int("re-MappingQCL-ConfigId-r11", re_map_qcl_cfg_id_r11); } if (ext) { rrc_asn1_warn_assert(csi_rs_cfg_zp_id2_r12_present != (csi_rs_cfg_zp_id2_r12.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_zp_id2_r12_present) { j.write_fieldname("csi-RS-ConfigZPId2-r12"); csi_rs_cfg_zp_id2_r12->to_json(j); } rrc_asn1_warn_assert(num_prb_pairs_v1310_present != (num_prb_pairs_v1310.get() != NULL), __FILE__, __LINE__); if (num_prb_pairs_v1310_present) { j.write_fieldname("numberPRB-Pairs-v1310"); num_prb_pairs_v1310->to_json(j); } rrc_asn1_warn_assert(mpdcch_cfg_r13_present != (mpdcch_cfg_r13.get() != NULL), __FILE__, __LINE__); if (mpdcch_cfg_r13_present) { j.write_fieldname("mpdcch-config-r13"); mpdcch_cfg_r13->to_json(j); } } j.end_obj(); } void epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_::set(types::options e) { type_ = e; } void epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_int("setup", c); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_"); } j.end_obj(); } SRSASN_CODE epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c, (uint8_t)1, (uint8_t)4)); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c, bref, (uint8_t)1, (uint8_t)4)); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void epdcch_set_cfg_r11_s::num_prb_pairs_v1310_c_::set(types::options e) { type_ = e; } void epdcch_set_cfg_r11_s::num_prb_pairs_v1310_c_::to_json(json_writer& j) const { j.start_obj(); j.end_obj(); } SRSASN_CODE epdcch_set_cfg_r11_s::num_prb_pairs_v1310_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); return SRSASN_SUCCESS; } SRSASN_CODE epdcch_set_cfg_r11_s::num_prb_pairs_v1310_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); return SRSASN_SUCCESS; } void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::set(types::options e) { type_ = e; } void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("csi-NumRepetitionCE-r13", c.csi_num_repeat_ce_r13.to_string()); j.write_str("mpdcch-pdsch-HoppingConfig-r13", c.mpdcch_pdsch_hop_cfg_r13.to_string()); j.write_fieldname("mpdcch-StartSF-UESS-r13"); c.mpdcch_start_sf_uess_r13.to_json(j); j.write_str("mpdcch-NumRepetition-r13", c.mpdcch_num_repeat_r13.to_string()); j.write_int("mpdcch-Narrowband-r13", c.mpdcch_nb_r13); j.end_obj(); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_"); } j.end_obj(); } SRSASN_CODE epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.csi_num_repeat_ce_r13)); HANDLE_CODE(pack_enum(bref, c.mpdcch_pdsch_hop_cfg_r13)); HANDLE_CODE(c.mpdcch_start_sf_uess_r13.pack(bref)); HANDLE_CODE(pack_enum(bref, c.mpdcch_num_repeat_r13)); HANDLE_CODE(pack_unalign_integer(bref, c.mpdcch_nb_r13, (uint8_t)1, (uint8_t)16)); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.csi_num_repeat_ce_r13, bref)); HANDLE_CODE(unpack_enum(c.mpdcch_pdsch_hop_cfg_r13, bref)); HANDLE_CODE(c.mpdcch_start_sf_uess_r13.unpack(bref)); HANDLE_CODE(unpack_enum(c.mpdcch_num_repeat_r13, bref)); HANDLE_CODE(unpack_unalign_integer(c.mpdcch_nb_r13, bref, (uint8_t)1, (uint8_t)16)); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::destroy_() {} void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::set(types::options e) { destroy_(); type_ = e; } epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::mpdcch_start_sf_uess_r13_c_( const epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_& other) { type_ = other.type(); switch (type_) { case types::fdd_r13: c.init(other.c.get()); break; case types::tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_"); } } epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_& epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_:: operator=(const epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd_r13: c.set(other.c.get()); break; case types::tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_"); } return *this; } void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd_r13: j.write_str("fdd-r13", c.get().to_string()); break; case types::tdd_r13: j.write_str("tdd-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_"); } j.end_obj(); } SRSASN_CODE epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // Enable256QAM-r14 ::= CHOICE void enable256_qam_r14_c::set(types::options e) { type_ = e; } void enable256_qam_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c"); } j.end_obj(); } SRSASN_CODE enable256_qam_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE enable256_qam_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void enable256_qam_r14_c::setup_c_::destroy_() { switch (type_) { case types::tpc_sf_set_cfgured_r14: c.destroy(); break; case types::tpc_sf_set_not_cfgured_r14: c.destroy(); break; default: break; } } void enable256_qam_r14_c::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::tpc_sf_set_cfgured_r14: c.init(); break; case types::tpc_sf_set_not_cfgured_r14: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c::setup_c_"); } } enable256_qam_r14_c::setup_c_::setup_c_(const enable256_qam_r14_c::setup_c_& other) { type_ = other.type(); switch (type_) { case types::tpc_sf_set_cfgured_r14: c.init(other.c.get()); break; case types::tpc_sf_set_not_cfgured_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c::setup_c_"); } } enable256_qam_r14_c::setup_c_& enable256_qam_r14_c::setup_c_::operator=(const enable256_qam_r14_c::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::tpc_sf_set_cfgured_r14: c.set(other.c.get()); break; case types::tpc_sf_set_not_cfgured_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c::setup_c_"); } return *this; } void enable256_qam_r14_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::tpc_sf_set_cfgured_r14: j.write_fieldname("tpc-SubframeSet-Configured-r14"); j.start_obj(); j.write_bool("subframeSet1-DCI-Format0-r14", c.get().sf_set1_dci_format0_r14); j.write_bool("subframeSet1-DCI-Format4-r14", c.get().sf_set1_dci_format4_r14); j.write_bool("subframeSet2-DCI-Format0-r14", c.get().sf_set2_dci_format0_r14); j.write_bool("subframeSet2-DCI-Format4-r14", c.get().sf_set2_dci_format4_r14); j.end_obj(); break; case types::tpc_sf_set_not_cfgured_r14: j.write_fieldname("tpc-SubframeSet-NotConfigured-r14"); j.start_obj(); j.write_bool("dci-Format0-r14", c.get().dci_format0_r14); j.write_bool("dci-Format4-r14", c.get().dci_format4_r14); j.end_obj(); break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c::setup_c_"); } j.end_obj(); } SRSASN_CODE enable256_qam_r14_c::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::tpc_sf_set_cfgured_r14: HANDLE_CODE(bref.pack(c.get().sf_set1_dci_format0_r14, 1)); HANDLE_CODE(bref.pack(c.get().sf_set1_dci_format4_r14, 1)); HANDLE_CODE(bref.pack(c.get().sf_set2_dci_format0_r14, 1)); HANDLE_CODE(bref.pack(c.get().sf_set2_dci_format4_r14, 1)); break; case types::tpc_sf_set_not_cfgured_r14: HANDLE_CODE(bref.pack(c.get().dci_format0_r14, 1)); HANDLE_CODE(bref.pack(c.get().dci_format4_r14, 1)); break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE enable256_qam_r14_c::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::tpc_sf_set_cfgured_r14: HANDLE_CODE(bref.unpack(c.get().sf_set1_dci_format0_r14, 1)); HANDLE_CODE(bref.unpack(c.get().sf_set1_dci_format4_r14, 1)); HANDLE_CODE(bref.unpack(c.get().sf_set2_dci_format0_r14, 1)); HANDLE_CODE(bref.unpack(c.get().sf_set2_dci_format4_r14, 1)); break; case types::tpc_sf_set_not_cfgured_r14: HANDLE_CODE(bref.unpack(c.get().dci_format0_r14, 1)); HANDLE_CODE(bref.unpack(c.get().dci_format4_r14, 1)); break; default: log_invalid_choice_id(type_, "enable256_qam_r14_c::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // LogicalChannelConfig ::= SEQUENCE SRSASN_CODE lc_ch_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ul_specific_params_present, 1)); if (ul_specific_params_present) { HANDLE_CODE(bref.pack(ul_specific_params.lc_ch_group_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, ul_specific_params.prio, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_enum(bref, ul_specific_params.prioritised_bit_rate)); HANDLE_CODE(pack_enum(bref, ul_specific_params.bucket_size_dur)); if (ul_specific_params.lc_ch_group_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_specific_params.lc_ch_group, (uint8_t)0, (uint8_t)3)); } } if (ext) { ext_groups_header group_flags(4); group_flags[0] |= lc_ch_sr_mask_r9_present; group_flags[1] |= lc_ch_sr_prohibit_r12_present; group_flags[2] |= laa_ul_allowed_r14_present; group_flags[2] |= bit_rate_query_prohibit_timer_r14_present; rrc_asn1_warn_assert(allowed_tti_lens_r15_present != (allowed_tti_lens_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= allowed_tti_lens_r15_present; rrc_asn1_warn_assert(lc_ch_sr_restrict_r15_present != (lc_ch_sr_restrict_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= lc_ch_sr_restrict_r15_present; rrc_asn1_warn_assert(chl_access_prio_r15_present != (chl_access_prio_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= chl_access_prio_r15_present; group_flags[3] |= lch_cell_restrict_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(lc_ch_sr_mask_r9_present, 1)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(lc_ch_sr_prohibit_r12_present, 1)); if (lc_ch_sr_prohibit_r12_present) { HANDLE_CODE(bref.pack(lc_ch_sr_prohibit_r12, 1)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(laa_ul_allowed_r14_present, 1)); HANDLE_CODE(bref.pack(bit_rate_query_prohibit_timer_r14_present, 1)); if (laa_ul_allowed_r14_present) { HANDLE_CODE(bref.pack(laa_ul_allowed_r14, 1)); } if (bit_rate_query_prohibit_timer_r14_present) { HANDLE_CODE(pack_enum(bref, bit_rate_query_prohibit_timer_r14)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(allowed_tti_lens_r15_present, 1)); HANDLE_CODE(bref.pack(lc_ch_sr_restrict_r15_present, 1)); HANDLE_CODE(bref.pack(chl_access_prio_r15_present, 1)); HANDLE_CODE(bref.pack(lch_cell_restrict_r15_present, 1)); if (allowed_tti_lens_r15_present) { HANDLE_CODE(allowed_tti_lens_r15->pack(bref)); } if (lc_ch_sr_restrict_r15_present) { HANDLE_CODE(lc_ch_sr_restrict_r15->pack(bref)); } if (chl_access_prio_r15_present) { HANDLE_CODE(chl_access_prio_r15->pack(bref)); } if (lch_cell_restrict_r15_present) { HANDLE_CODE(lch_cell_restrict_r15.pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE lc_ch_cfg_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ul_specific_params_present, 1)); if (ul_specific_params_present) { HANDLE_CODE(bref.unpack(ul_specific_params.lc_ch_group_present, 1)); HANDLE_CODE(unpack_unalign_integer(ul_specific_params.prio, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_enum(ul_specific_params.prioritised_bit_rate, bref)); HANDLE_CODE(unpack_enum(ul_specific_params.bucket_size_dur, bref)); if (ul_specific_params.lc_ch_group_present) { HANDLE_CODE(unpack_unalign_integer(ul_specific_params.lc_ch_group, bref, (uint8_t)0, (uint8_t)3)); } } if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(lc_ch_sr_mask_r9_present, 1)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(lc_ch_sr_prohibit_r12_present, 1)); if (lc_ch_sr_prohibit_r12_present) { HANDLE_CODE(bref.unpack(lc_ch_sr_prohibit_r12, 1)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(laa_ul_allowed_r14_present, 1)); HANDLE_CODE(bref.unpack(bit_rate_query_prohibit_timer_r14_present, 1)); if (laa_ul_allowed_r14_present) { HANDLE_CODE(bref.unpack(laa_ul_allowed_r14, 1)); } if (bit_rate_query_prohibit_timer_r14_present) { HANDLE_CODE(unpack_enum(bit_rate_query_prohibit_timer_r14, bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(allowed_tti_lens_r15_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_sr_restrict_r15_present, 1)); HANDLE_CODE(bref.unpack(chl_access_prio_r15_present, 1)); HANDLE_CODE(bref.unpack(lch_cell_restrict_r15_present, 1)); if (allowed_tti_lens_r15_present) { allowed_tti_lens_r15 = make_copy_ptr(allowed_tti_lens_r15_c_()); HANDLE_CODE(allowed_tti_lens_r15->unpack(bref)); } if (lc_ch_sr_restrict_r15_present) { lc_ch_sr_restrict_r15 = make_copy_ptr(lc_ch_sr_restrict_r15_c_()); HANDLE_CODE(lc_ch_sr_restrict_r15->unpack(bref)); } if (chl_access_prio_r15_present) { chl_access_prio_r15 = make_copy_ptr(chl_access_prio_r15_c_()); HANDLE_CODE(chl_access_prio_r15->unpack(bref)); } if (lch_cell_restrict_r15_present) { HANDLE_CODE(lch_cell_restrict_r15.unpack(bref)); } } } return SRSASN_SUCCESS; } void lc_ch_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (ul_specific_params_present) { j.write_fieldname("ul-SpecificParameters"); j.start_obj(); j.write_int("priority", ul_specific_params.prio); j.write_str("prioritisedBitRate", ul_specific_params.prioritised_bit_rate.to_string()); j.write_str("bucketSizeDuration", ul_specific_params.bucket_size_dur.to_string()); if (ul_specific_params.lc_ch_group_present) { j.write_int("logicalChannelGroup", ul_specific_params.lc_ch_group); } j.end_obj(); } if (ext) { if (lc_ch_sr_mask_r9_present) { j.write_str("logicalChannelSR-Mask-r9", "setup"); } if (lc_ch_sr_prohibit_r12_present) { j.write_bool("logicalChannelSR-Prohibit-r12", lc_ch_sr_prohibit_r12); } if (laa_ul_allowed_r14_present) { j.write_bool("laa-UL-Allowed-r14", laa_ul_allowed_r14); } if (bit_rate_query_prohibit_timer_r14_present) { j.write_str("bitRateQueryProhibitTimer-r14", bit_rate_query_prohibit_timer_r14.to_string()); } rrc_asn1_warn_assert(allowed_tti_lens_r15_present != (allowed_tti_lens_r15.get() != NULL), __FILE__, __LINE__); if (allowed_tti_lens_r15_present) { j.write_fieldname("allowedTTI-Lengths-r15"); allowed_tti_lens_r15->to_json(j); } rrc_asn1_warn_assert(lc_ch_sr_restrict_r15_present != (lc_ch_sr_restrict_r15.get() != NULL), __FILE__, __LINE__); if (lc_ch_sr_restrict_r15_present) { j.write_fieldname("logicalChannelSR-Restriction-r15"); lc_ch_sr_restrict_r15->to_json(j); } rrc_asn1_warn_assert(chl_access_prio_r15_present != (chl_access_prio_r15.get() != NULL), __FILE__, __LINE__); if (chl_access_prio_r15_present) { j.write_fieldname("channellAccessPriority-r15"); chl_access_prio_r15->to_json(j); } if (lch_cell_restrict_r15_present) { j.write_str("lch-CellRestriction-r15", lch_cell_restrict_r15.to_string()); } } j.end_obj(); } void lc_ch_cfg_s::allowed_tti_lens_r15_c_::set(types::options e) { type_ = e; } void lc_ch_cfg_s::allowed_tti_lens_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_bool("shortTTI-r15", c.short_tti_r15); j.write_bool("subframeTTI-r15", c.sf_tti_r15); j.end_obj(); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::allowed_tti_lens_r15_c_"); } j.end_obj(); } SRSASN_CODE lc_ch_cfg_s::allowed_tti_lens_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.short_tti_r15, 1)); HANDLE_CODE(bref.pack(c.sf_tti_r15, 1)); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::allowed_tti_lens_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE lc_ch_cfg_s::allowed_tti_lens_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.short_tti_r15, 1)); HANDLE_CODE(bref.unpack(c.sf_tti_r15, 1)); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::allowed_tti_lens_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::set(types::options e) { type_ = e; } void lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_"); } j.end_obj(); } SRSASN_CODE lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void lc_ch_cfg_s::chl_access_prio_r15_c_::set(types::options e) { type_ = e; } void lc_ch_cfg_s::chl_access_prio_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_int("setup", c); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::chl_access_prio_r15_c_"); } j.end_obj(); } SRSASN_CODE lc_ch_cfg_s::chl_access_prio_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c, (uint8_t)1, (uint8_t)4)); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::chl_access_prio_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE lc_ch_cfg_s::chl_access_prio_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c, bref, (uint8_t)1, (uint8_t)4)); break; default: log_invalid_choice_id(type_, "lc_ch_cfg_s::chl_access_prio_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE SRSASN_CODE pdsch_re_map_qcl_cfg_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(optional_set_of_fields_r11_present, 1)); HANDLE_CODE(bref.pack(qcl_csi_rs_cfg_nzp_id_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pdsch_re_map_qcl_cfg_id_r11, (uint8_t)1, (uint8_t)4)); if (optional_set_of_fields_r11_present) { HANDLE_CODE(bref.pack(optional_set_of_fields_r11.mbsfn_sf_cfg_list_r11_present, 1)); HANDLE_CODE(pack_enum(bref, optional_set_of_fields_r11.crs_ports_count_r11)); HANDLE_CODE(pack_unalign_integer(bref, optional_set_of_fields_r11.crs_freq_shift_r11, (uint8_t)0, (uint8_t)5)); if (optional_set_of_fields_r11.mbsfn_sf_cfg_list_r11_present) { HANDLE_CODE(optional_set_of_fields_r11.mbsfn_sf_cfg_list_r11.pack(bref)); } HANDLE_CODE(pack_enum(bref, optional_set_of_fields_r11.pdsch_start_r11)); } HANDLE_CODE(pack_unalign_integer(bref, csi_rs_cfg_zp_id_r11, (uint8_t)1, (uint8_t)4)); if (qcl_csi_rs_cfg_nzp_id_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, qcl_csi_rs_cfg_nzp_id_r11, (uint8_t)1, (uint8_t)3)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); group_flags[0] |= mbsfn_sf_cfg_list_v1430_present; rrc_asn1_warn_assert(codeword_one_cfg_v1530_present != (codeword_one_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[1] |= codeword_one_cfg_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { HANDLE_CODE(mbsfn_sf_cfg_list_v1430->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(codeword_one_cfg_v1530_present, 1)); if (codeword_one_cfg_v1530_present) { HANDLE_CODE(codeword_one_cfg_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_re_map_qcl_cfg_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(optional_set_of_fields_r11_present, 1)); HANDLE_CODE(bref.unpack(qcl_csi_rs_cfg_nzp_id_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(pdsch_re_map_qcl_cfg_id_r11, bref, (uint8_t)1, (uint8_t)4)); if (optional_set_of_fields_r11_present) { HANDLE_CODE(bref.unpack(optional_set_of_fields_r11.mbsfn_sf_cfg_list_r11_present, 1)); HANDLE_CODE(unpack_enum(optional_set_of_fields_r11.crs_ports_count_r11, bref)); HANDLE_CODE(unpack_unalign_integer(optional_set_of_fields_r11.crs_freq_shift_r11, bref, (uint8_t)0, (uint8_t)5)); if (optional_set_of_fields_r11.mbsfn_sf_cfg_list_r11_present) { HANDLE_CODE(optional_set_of_fields_r11.mbsfn_sf_cfg_list_r11.unpack(bref)); } HANDLE_CODE(unpack_enum(optional_set_of_fields_r11.pdsch_start_r11, bref)); } HANDLE_CODE(unpack_unalign_integer(csi_rs_cfg_zp_id_r11, bref, (uint8_t)1, (uint8_t)4)); if (qcl_csi_rs_cfg_nzp_id_r11_present) { HANDLE_CODE(unpack_unalign_integer(qcl_csi_rs_cfg_nzp_id_r11, bref, (uint8_t)1, (uint8_t)3)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { mbsfn_sf_cfg_list_v1430 = make_copy_ptr(mbsfn_sf_cfg_list_v1430_c_()); HANDLE_CODE(mbsfn_sf_cfg_list_v1430->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(codeword_one_cfg_v1530_present, 1)); if (codeword_one_cfg_v1530_present) { codeword_one_cfg_v1530 = make_copy_ptr(codeword_one_cfg_v1530_c_()); HANDLE_CODE(codeword_one_cfg_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void pdsch_re_map_qcl_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pdsch-RE-MappingQCL-ConfigId-r11", pdsch_re_map_qcl_cfg_id_r11); if (optional_set_of_fields_r11_present) { j.write_fieldname("optionalSetOfFields-r11"); j.start_obj(); j.write_str("crs-PortsCount-r11", optional_set_of_fields_r11.crs_ports_count_r11.to_string()); j.write_int("crs-FreqShift-r11", optional_set_of_fields_r11.crs_freq_shift_r11); if (optional_set_of_fields_r11.mbsfn_sf_cfg_list_r11_present) { j.write_fieldname("mbsfn-SubframeConfigList-r11"); optional_set_of_fields_r11.mbsfn_sf_cfg_list_r11.to_json(j); } j.write_str("pdsch-Start-r11", optional_set_of_fields_r11.pdsch_start_r11.to_string()); j.end_obj(); } j.write_int("csi-RS-ConfigZPId-r11", csi_rs_cfg_zp_id_r11); if (qcl_csi_rs_cfg_nzp_id_r11_present) { j.write_int("qcl-CSI-RS-ConfigNZPId-r11", qcl_csi_rs_cfg_nzp_id_r11); } if (ext) { rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); if (mbsfn_sf_cfg_list_v1430_present) { j.write_fieldname("mbsfn-SubframeConfigList-v1430"); mbsfn_sf_cfg_list_v1430->to_json(j); } rrc_asn1_warn_assert(codeword_one_cfg_v1530_present != (codeword_one_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (codeword_one_cfg_v1530_present) { j.write_fieldname("codewordOneConfig-v1530"); codeword_one_cfg_v1530->to_json(j); } } j.end_obj(); } void pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_::set(types::options e) { type_ = e; } void pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("subframeConfigList"); for (uint32_t i1 = 0; i1 < c.sf_cfg_list.size(); ++i1) { c.sf_cfg_list[i1].to_json(j); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_"); } j.end_obj(); } SRSASN_CODE pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.sf_cfg_list, 1, 8)); break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.sf_cfg_list, bref, 1, 8)); break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::set(types::options e) { type_ = e; } void pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("subframeConfigList-v1430"); for (uint32_t i1 = 0; i1 < c.sf_cfg_list_v1430.size(); ++i1) { c.sf_cfg_list_v1430[i1].to_json(j); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_"); } j.end_obj(); } SRSASN_CODE pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.sf_cfg_list_v1430, 1, 8)); break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.sf_cfg_list_v1430, bref, 1, 8)); break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::set(types::options e) { type_ = e; } void pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("crs-PortsCount-v1530", c.crs_ports_count_v1530.to_string()); j.write_int("crs-FreqShift-v1530", c.crs_freq_shift_v1530); if (c.mbsfn_sf_cfg_list_v1530_present) { j.start_array("mbsfn-SubframeConfigList-v1530"); for (uint32_t i1 = 0; i1 < c.mbsfn_sf_cfg_list_v1530.size(); ++i1) { c.mbsfn_sf_cfg_list_v1530[i1].to_json(j); } j.end_array(); } if (c.mbsfn_sf_cfg_list_ext_v1530_present) { j.start_array("mbsfn-SubframeConfigListExt-v1530"); for (uint32_t i1 = 0; i1 < c.mbsfn_sf_cfg_list_ext_v1530.size(); ++i1) { c.mbsfn_sf_cfg_list_ext_v1530[i1].to_json(j); } j.end_array(); } j.write_str("pdsch-Start-v1530", c.pdsch_start_v1530.to_string()); j.write_int("csi-RS-ConfigZPId-v1530", c.csi_rs_cfg_zp_id_v1530); if (c.qcl_csi_rs_cfg_nzp_id_v1530_present) { j.write_int("qcl-CSI-RS-ConfigNZPId-v1530", c.qcl_csi_rs_cfg_nzp_id_v1530); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_"); } j.end_obj(); } SRSASN_CODE pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.mbsfn_sf_cfg_list_v1530_present, 1)); HANDLE_CODE(bref.pack(c.mbsfn_sf_cfg_list_ext_v1530_present, 1)); HANDLE_CODE(bref.pack(c.qcl_csi_rs_cfg_nzp_id_v1530_present, 1)); HANDLE_CODE(pack_enum(bref, c.crs_ports_count_v1530)); HANDLE_CODE(pack_unalign_integer(bref, c.crs_freq_shift_v1530, (uint8_t)0, (uint8_t)5)); if (c.mbsfn_sf_cfg_list_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.mbsfn_sf_cfg_list_v1530, 1, 8)); } if (c.mbsfn_sf_cfg_list_ext_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.mbsfn_sf_cfg_list_ext_v1530, 1, 8)); } HANDLE_CODE(pack_enum(bref, c.pdsch_start_v1530)); HANDLE_CODE(pack_unalign_integer(bref, c.csi_rs_cfg_zp_id_v1530, (uint8_t)1, (uint8_t)4)); if (c.qcl_csi_rs_cfg_nzp_id_v1530_present) { HANDLE_CODE(pack_unalign_integer(bref, c.qcl_csi_rs_cfg_nzp_id_v1530, (uint8_t)1, (uint8_t)3)); } break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.mbsfn_sf_cfg_list_v1530_present, 1)); HANDLE_CODE(bref.unpack(c.mbsfn_sf_cfg_list_ext_v1530_present, 1)); HANDLE_CODE(bref.unpack(c.qcl_csi_rs_cfg_nzp_id_v1530_present, 1)); HANDLE_CODE(unpack_enum(c.crs_ports_count_v1530, bref)); HANDLE_CODE(unpack_unalign_integer(c.crs_freq_shift_v1530, bref, (uint8_t)0, (uint8_t)5)); if (c.mbsfn_sf_cfg_list_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(c.mbsfn_sf_cfg_list_v1530, bref, 1, 8)); } if (c.mbsfn_sf_cfg_list_ext_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(c.mbsfn_sf_cfg_list_ext_v1530, bref, 1, 8)); } HANDLE_CODE(unpack_enum(c.pdsch_start_v1530, bref)); HANDLE_CODE(unpack_unalign_integer(c.csi_rs_cfg_zp_id_v1530, bref, (uint8_t)1, (uint8_t)4)); if (c.qcl_csi_rs_cfg_nzp_id_v1530_present) { HANDLE_CODE(unpack_unalign_integer(c.qcl_csi_rs_cfg_nzp_id_v1530, bref, (uint8_t)1, (uint8_t)3)); } break; default: log_invalid_choice_id(type_, "pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RLC-Config-r15 ::= SEQUENCE SRSASN_CODE rlc_cfg_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(reestablish_rlc_r15_present, 1)); HANDLE_CODE(bref.pack(rlc_out_of_order_delivery_r15_present, 1)); HANDLE_CODE(mode_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(reestablish_rlc_r15_present, 1)); HANDLE_CODE(bref.unpack(rlc_out_of_order_delivery_r15_present, 1)); HANDLE_CODE(mode_r15.unpack(bref)); return SRSASN_SUCCESS; } void rlc_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("mode-r15"); mode_r15.to_json(j); if (reestablish_rlc_r15_present) { j.write_str("reestablishRLC-r15", "true"); } if (rlc_out_of_order_delivery_r15_present) { j.write_str("rlc-OutOfOrderDelivery-r15", "true"); } j.end_obj(); } void rlc_cfg_r15_s::mode_r15_c_::destroy_() { switch (type_) { case types::am_r15: c.destroy(); break; case types::um_bi_dir_r15: c.destroy(); break; case types::um_uni_dir_ul_r15: c.destroy(); break; case types::um_uni_dir_dl_r15: c.destroy(); break; default: break; } } void rlc_cfg_r15_s::mode_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::am_r15: c.init(); break; case types::um_bi_dir_r15: c.init(); break; case types::um_uni_dir_ul_r15: c.init(); break; case types::um_uni_dir_dl_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlc_cfg_r15_s::mode_r15_c_"); } } rlc_cfg_r15_s::mode_r15_c_::mode_r15_c_(const rlc_cfg_r15_s::mode_r15_c_& other) { type_ = other.type(); switch (type_) { case types::am_r15: c.init(other.c.get()); break; case types::um_bi_dir_r15: c.init(other.c.get()); break; case types::um_uni_dir_ul_r15: c.init(other.c.get()); break; case types::um_uni_dir_dl_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlc_cfg_r15_s::mode_r15_c_"); } } rlc_cfg_r15_s::mode_r15_c_& rlc_cfg_r15_s::mode_r15_c_::operator=(const rlc_cfg_r15_s::mode_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::am_r15: c.set(other.c.get()); break; case types::um_bi_dir_r15: c.set(other.c.get()); break; case types::um_uni_dir_ul_r15: c.set(other.c.get()); break; case types::um_uni_dir_dl_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlc_cfg_r15_s::mode_r15_c_"); } return *this; } void rlc_cfg_r15_s::mode_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::am_r15: j.write_fieldname("am-r15"); j.start_obj(); j.write_fieldname("ul-AM-RLC-r15"); c.get().ul_am_rlc_r15.to_json(j); j.write_fieldname("dl-AM-RLC-r15"); c.get().dl_am_rlc_r15.to_json(j); j.end_obj(); break; case types::um_bi_dir_r15: j.write_fieldname("um-Bi-Directional-r15"); j.start_obj(); j.write_fieldname("ul-UM-RLC-r15"); c.get().ul_um_rlc_r15.to_json(j); j.write_fieldname("dl-UM-RLC-r15"); c.get().dl_um_rlc_r15.to_json(j); j.end_obj(); break; case types::um_uni_dir_ul_r15: j.write_fieldname("um-Uni-Directional-UL-r15"); j.start_obj(); j.write_fieldname("ul-UM-RLC-r15"); c.get().ul_um_rlc_r15.to_json(j); j.end_obj(); break; case types::um_uni_dir_dl_r15: j.write_fieldname("um-Uni-Directional-DL-r15"); j.start_obj(); j.write_fieldname("dl-UM-RLC-r15"); c.get().dl_um_rlc_r15.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "rlc_cfg_r15_s::mode_r15_c_"); } j.end_obj(); } SRSASN_CODE rlc_cfg_r15_s::mode_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::am_r15: HANDLE_CODE(c.get().ul_am_rlc_r15.pack(bref)); HANDLE_CODE(c.get().dl_am_rlc_r15.pack(bref)); break; case types::um_bi_dir_r15: HANDLE_CODE(c.get().ul_um_rlc_r15.pack(bref)); HANDLE_CODE(c.get().dl_um_rlc_r15.pack(bref)); break; case types::um_uni_dir_ul_r15: HANDLE_CODE(c.get().ul_um_rlc_r15.pack(bref)); break; case types::um_uni_dir_dl_r15: HANDLE_CODE(c.get().dl_um_rlc_r15.pack(bref)); break; default: log_invalid_choice_id(type_, "rlc_cfg_r15_s::mode_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_r15_s::mode_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::am_r15: HANDLE_CODE(c.get().ul_am_rlc_r15.unpack(bref)); HANDLE_CODE(c.get().dl_am_rlc_r15.unpack(bref)); break; case types::um_bi_dir_r15: HANDLE_CODE(c.get().ul_um_rlc_r15.unpack(bref)); HANDLE_CODE(c.get().dl_um_rlc_r15.unpack(bref)); break; case types::um_uni_dir_ul_r15: HANDLE_CODE(c.get().ul_um_rlc_r15.unpack(bref)); break; case types::um_uni_dir_dl_r15: HANDLE_CODE(c.get().dl_um_rlc_r15.unpack(bref)); break; default: log_invalid_choice_id(type_, "rlc_cfg_r15_s::mode_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // TPC-PDCCH-Config ::= CHOICE void tpc_pdcch_cfg_c::set(types::options e) { type_ = e; } void tpc_pdcch_cfg_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("tpc-RNTI", c.tpc_rnti.to_string()); j.write_fieldname("tpc-Index"); c.tpc_idx.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "tpc_pdcch_cfg_c"); } j.end_obj(); } SRSASN_CODE tpc_pdcch_cfg_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.tpc_rnti.pack(bref)); HANDLE_CODE(c.tpc_idx.pack(bref)); break; default: log_invalid_choice_id(type_, "tpc_pdcch_cfg_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE tpc_pdcch_cfg_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.tpc_rnti.unpack(bref)); HANDLE_CODE(c.tpc_idx.unpack(bref)); break; default: log_invalid_choice_id(type_, "tpc_pdcch_cfg_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UL-AM-RLC ::= SEQUENCE SRSASN_CODE ul_am_rlc_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, t_poll_retx)); HANDLE_CODE(pack_enum(bref, poll_pdu)); HANDLE_CODE(pack_enum(bref, poll_byte)); HANDLE_CODE(pack_enum(bref, max_retx_thres)); return SRSASN_SUCCESS; } SRSASN_CODE ul_am_rlc_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(t_poll_retx, bref)); HANDLE_CODE(unpack_enum(poll_pdu, bref)); HANDLE_CODE(unpack_enum(poll_byte, bref)); HANDLE_CODE(unpack_enum(max_retx_thres, bref)); return SRSASN_SUCCESS; } void ul_am_rlc_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("t-PollRetransmit", t_poll_retx.to_string()); j.write_str("pollPDU", poll_pdu.to_string()); j.write_str("pollByte", poll_byte.to_string()); j.write_str("maxRetxThreshold", max_retx_thres.to_string()); j.end_obj(); } // AntennaInfoDedicatedSTTI-r15 ::= CHOICE void ant_info_ded_stti_r15_c::set(types::options e) { type_ = e; } void ant_info_ded_stti_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.tx_mode_dl_mbsfn_r15_present) { j.write_str("transmissionModeDL-MBSFN-r15", c.tx_mode_dl_mbsfn_r15.to_string()); } if (c.tx_mode_dl_non_mbsfn_r15_present) { j.write_str("transmissionModeDL-nonMBSFN-r15", c.tx_mode_dl_non_mbsfn_r15.to_string()); } if (c.codebook_subset_restrict_present) { j.write_fieldname("codebookSubsetRestriction"); c.codebook_subset_restrict.to_json(j); } if (c.max_layers_mimo_stti_r15_present) { j.write_str("maxLayersMIMO-STTI-r15", c.max_layers_mimo_stti_r15.to_string()); } j.write_bool("slotSubslotPDSCH-TxDiv-2Layer-r15", c.slot_subslot_pdsch_tx_div_minus2_layer_r15); j.write_bool("slotSubslotPDSCH-TxDiv-4Layer-r15", c.slot_subslot_pdsch_tx_div_minus4_layer_r15); j.end_obj(); break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c"); } j.end_obj(); } SRSASN_CODE ant_info_ded_stti_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.tx_mode_dl_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(c.tx_mode_dl_non_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(c.codebook_subset_restrict_present, 1)); HANDLE_CODE(bref.pack(c.max_layers_mimo_stti_r15_present, 1)); if (c.tx_mode_dl_mbsfn_r15_present) { HANDLE_CODE(pack_enum(bref, c.tx_mode_dl_mbsfn_r15)); } if (c.tx_mode_dl_non_mbsfn_r15_present) { HANDLE_CODE(pack_enum(bref, c.tx_mode_dl_non_mbsfn_r15)); } if (c.codebook_subset_restrict_present) { HANDLE_CODE(c.codebook_subset_restrict.pack(bref)); } if (c.max_layers_mimo_stti_r15_present) { HANDLE_CODE(pack_enum(bref, c.max_layers_mimo_stti_r15)); } HANDLE_CODE(bref.pack(c.slot_subslot_pdsch_tx_div_minus2_layer_r15, 1)); HANDLE_CODE(bref.pack(c.slot_subslot_pdsch_tx_div_minus4_layer_r15, 1)); break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_stti_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.tx_mode_dl_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(c.tx_mode_dl_non_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(c.codebook_subset_restrict_present, 1)); HANDLE_CODE(bref.unpack(c.max_layers_mimo_stti_r15_present, 1)); if (c.tx_mode_dl_mbsfn_r15_present) { HANDLE_CODE(unpack_enum(c.tx_mode_dl_mbsfn_r15, bref)); } if (c.tx_mode_dl_non_mbsfn_r15_present) { HANDLE_CODE(unpack_enum(c.tx_mode_dl_non_mbsfn_r15, bref)); } if (c.codebook_subset_restrict_present) { HANDLE_CODE(c.codebook_subset_restrict.unpack(bref)); } if (c.max_layers_mimo_stti_r15_present) { HANDLE_CODE(unpack_enum(c.max_layers_mimo_stti_r15, bref)); } HANDLE_CODE(bref.unpack(c.slot_subslot_pdsch_tx_div_minus2_layer_r15, 1)); HANDLE_CODE(bref.unpack(c.slot_subslot_pdsch_tx_div_minus4_layer_r15, 1)); break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::destroy_() { switch (type_) { case types::n2_tx_ant_tm3_r15: c.destroy >(); break; case types::n4_tx_ant_tm3_r15: c.destroy >(); break; case types::n2_tx_ant_tm4_r15: c.destroy >(); break; case types::n4_tx_ant_tm4_r15: c.destroy >(); break; case types::n2_tx_ant_tm5_r15: c.destroy >(); break; case types::n4_tx_ant_tm5_r15: c.destroy >(); break; case types::n2_tx_ant_tm6_r15: c.destroy >(); break; case types::n4_tx_ant_tm6_r15: c.destroy >(); break; case types::n2_tx_ant_tm8_r15: c.destroy >(); break; case types::n4_tx_ant_tm8_r15: c.destroy >(); break; case types::n2_tx_ant_tm9and10_r15: c.destroy >(); break; case types::n4_tx_ant_tm9and10_r15: c.destroy >(); break; case types::n8_tx_ant_tm9and10_r15: c.destroy >(); break; default: break; } } void ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::n2_tx_ant_tm3_r15: c.init >(); break; case types::n4_tx_ant_tm3_r15: c.init >(); break; case types::n2_tx_ant_tm4_r15: c.init >(); break; case types::n4_tx_ant_tm4_r15: c.init >(); break; case types::n2_tx_ant_tm5_r15: c.init >(); break; case types::n4_tx_ant_tm5_r15: c.init >(); break; case types::n2_tx_ant_tm6_r15: c.init >(); break; case types::n4_tx_ant_tm6_r15: c.init >(); break; case types::n2_tx_ant_tm8_r15: c.init >(); break; case types::n4_tx_ant_tm8_r15: c.init >(); break; case types::n2_tx_ant_tm9and10_r15: c.init >(); break; case types::n4_tx_ant_tm9and10_r15: c.init >(); break; case types::n8_tx_ant_tm9and10_r15: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_"); } } ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::codebook_subset_restrict_c_( const ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_& other) { type_ = other.type(); switch (type_) { case types::n2_tx_ant_tm3_r15: c.init(other.c.get >()); break; case types::n4_tx_ant_tm3_r15: c.init(other.c.get >()); break; case types::n2_tx_ant_tm4_r15: c.init(other.c.get >()); break; case types::n4_tx_ant_tm4_r15: c.init(other.c.get >()); break; case types::n2_tx_ant_tm5_r15: c.init(other.c.get >()); break; case types::n4_tx_ant_tm5_r15: c.init(other.c.get >()); break; case types::n2_tx_ant_tm6_r15: c.init(other.c.get >()); break; case types::n4_tx_ant_tm6_r15: c.init(other.c.get >()); break; case types::n2_tx_ant_tm8_r15: c.init(other.c.get >()); break; case types::n4_tx_ant_tm8_r15: c.init(other.c.get >()); break; case types::n2_tx_ant_tm9and10_r15: c.init(other.c.get >()); break; case types::n4_tx_ant_tm9and10_r15: c.init(other.c.get >()); break; case types::n8_tx_ant_tm9and10_r15: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_"); } } ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_:: operator=(const ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::n2_tx_ant_tm3_r15: c.set(other.c.get >()); break; case types::n4_tx_ant_tm3_r15: c.set(other.c.get >()); break; case types::n2_tx_ant_tm4_r15: c.set(other.c.get >()); break; case types::n4_tx_ant_tm4_r15: c.set(other.c.get >()); break; case types::n2_tx_ant_tm5_r15: c.set(other.c.get >()); break; case types::n4_tx_ant_tm5_r15: c.set(other.c.get >()); break; case types::n2_tx_ant_tm6_r15: c.set(other.c.get >()); break; case types::n4_tx_ant_tm6_r15: c.set(other.c.get >()); break; case types::n2_tx_ant_tm8_r15: c.set(other.c.get >()); break; case types::n4_tx_ant_tm8_r15: c.set(other.c.get >()); break; case types::n2_tx_ant_tm9and10_r15: c.set(other.c.get >()); break; case types::n4_tx_ant_tm9and10_r15: c.set(other.c.get >()); break; case types::n8_tx_ant_tm9and10_r15: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_"); } return *this; } void ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::n2_tx_ant_tm3_r15: j.write_str("n2TxAntenna-tm3-r15", c.get >().to_string()); break; case types::n4_tx_ant_tm3_r15: j.write_str("n4TxAntenna-tm3-r15", c.get >().to_string()); break; case types::n2_tx_ant_tm4_r15: j.write_str("n2TxAntenna-tm4-r15", c.get >().to_string()); break; case types::n4_tx_ant_tm4_r15: j.write_str("n4TxAntenna-tm4-r15", c.get >().to_string()); break; case types::n2_tx_ant_tm5_r15: j.write_str("n2TxAntenna-tm5-r15", c.get >().to_string()); break; case types::n4_tx_ant_tm5_r15: j.write_str("n4TxAntenna-tm5-r15", c.get >().to_string()); break; case types::n2_tx_ant_tm6_r15: j.write_str("n2TxAntenna-tm6-r15", c.get >().to_string()); break; case types::n4_tx_ant_tm6_r15: j.write_str("n4TxAntenna-tm6-r15", c.get >().to_string()); break; case types::n2_tx_ant_tm8_r15: j.write_str("n2TxAntenna-tm8-r15", c.get >().to_string()); break; case types::n4_tx_ant_tm8_r15: j.write_str("n4TxAntenna-tm8-r15", c.get >().to_string()); break; case types::n2_tx_ant_tm9and10_r15: j.write_str("n2TxAntenna-tm9and10-r15", c.get >().to_string()); break; case types::n4_tx_ant_tm9and10_r15: j.write_str("n4TxAntenna-tm9and10-r15", c.get >().to_string()); break; case types::n8_tx_ant_tm9and10_r15: j.write_str("n8TxAntenna-tm9and10-r15", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_"); } j.end_obj(); } SRSASN_CODE ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::n2_tx_ant_tm3_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm3_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n2_tx_ant_tm4_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm4_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n2_tx_ant_tm5_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm5_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n2_tx_ant_tm6_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm6_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n2_tx_ant_tm8_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm8_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n2_tx_ant_tm9and10_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm9and10_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::n8_tx_ant_tm9and10_r15: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::n2_tx_ant_tm3_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm3_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n2_tx_ant_tm4_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm4_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n2_tx_ant_tm5_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm5_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n2_tx_ant_tm6_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm6_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n2_tx_ant_tm8_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm8_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n2_tx_ant_tm9and10_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm9and10_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n8_tx_ant_tm9and10_r15: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // AntennaInfoUL-STTI-r15 ::= SEQUENCE SRSASN_CODE ant_info_ul_stti_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tx_mode_ul_stti_r15_present, 1)); if (tx_mode_ul_stti_r15_present) { HANDLE_CODE(pack_enum(bref, tx_mode_ul_stti_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ul_stti_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tx_mode_ul_stti_r15_present, 1)); if (tx_mode_ul_stti_r15_present) { HANDLE_CODE(unpack_enum(tx_mode_ul_stti_r15, bref)); } return SRSASN_SUCCESS; } void ant_info_ul_stti_r15_s::to_json(json_writer& j) const { j.start_obj(); if (tx_mode_ul_stti_r15_present) { j.write_str("transmissionModeUL-STTI-r15", tx_mode_ul_stti_r15.to_string()); } j.end_obj(); } // CQI-ReportConfig-r15 ::= CHOICE void cqi_report_cfg_r15_c::set(types::options e) { type_ = e; } void cqi_report_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.cqi_report_cfg_r10_present) { j.write_fieldname("cqi-ReportConfig-r10"); c.cqi_report_cfg_r10.to_json(j); } if (c.cqi_report_cfg_v1130_present) { j.write_fieldname("cqi-ReportConfig-v1130"); c.cqi_report_cfg_v1130.to_json(j); } if (c.cqi_report_cfg_pcell_v1250_present) { j.write_fieldname("cqi-ReportConfigPCell-v1250"); c.cqi_report_cfg_pcell_v1250.to_json(j); } if (c.cqi_report_cfg_v1310_present) { j.write_fieldname("cqi-ReportConfig-v1310"); c.cqi_report_cfg_v1310.to_json(j); } if (c.cqi_report_cfg_v1320_present) { j.write_fieldname("cqi-ReportConfig-v1320"); c.cqi_report_cfg_v1320.to_json(j); } if (c.cqi_report_cfg_v1430_present) { j.write_fieldname("cqi-ReportConfig-v1430"); c.cqi_report_cfg_v1430.to_json(j); } if (c.alt_cqi_table_minus1024_qam_r15_present) { j.write_str("altCQI-Table-1024QAM-r15", c.alt_cqi_table_minus1024_qam_r15.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE cqi_report_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.cqi_report_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(c.cqi_report_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(c.cqi_report_cfg_pcell_v1250_present, 1)); HANDLE_CODE(bref.pack(c.cqi_report_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(c.cqi_report_cfg_v1320_present, 1)); HANDLE_CODE(bref.pack(c.cqi_report_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(c.alt_cqi_table_minus1024_qam_r15_present, 1)); if (c.cqi_report_cfg_r10_present) { HANDLE_CODE(c.cqi_report_cfg_r10.pack(bref)); } if (c.cqi_report_cfg_v1130_present) { HANDLE_CODE(c.cqi_report_cfg_v1130.pack(bref)); } if (c.cqi_report_cfg_pcell_v1250_present) { HANDLE_CODE(c.cqi_report_cfg_pcell_v1250.pack(bref)); } if (c.cqi_report_cfg_v1310_present) { HANDLE_CODE(c.cqi_report_cfg_v1310.pack(bref)); } if (c.cqi_report_cfg_v1320_present) { HANDLE_CODE(c.cqi_report_cfg_v1320.pack(bref)); } if (c.cqi_report_cfg_v1430_present) { HANDLE_CODE(c.cqi_report_cfg_v1430.pack(bref)); } if (c.alt_cqi_table_minus1024_qam_r15_present) { HANDLE_CODE(pack_enum(bref, c.alt_cqi_table_minus1024_qam_r15)); } break; default: log_invalid_choice_id(type_, "cqi_report_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.cqi_report_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_report_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_report_cfg_pcell_v1250_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_report_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_report_cfg_v1320_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_report_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(c.alt_cqi_table_minus1024_qam_r15_present, 1)); if (c.cqi_report_cfg_r10_present) { HANDLE_CODE(c.cqi_report_cfg_r10.unpack(bref)); } if (c.cqi_report_cfg_v1130_present) { HANDLE_CODE(c.cqi_report_cfg_v1130.unpack(bref)); } if (c.cqi_report_cfg_pcell_v1250_present) { HANDLE_CODE(c.cqi_report_cfg_pcell_v1250.unpack(bref)); } if (c.cqi_report_cfg_v1310_present) { HANDLE_CODE(c.cqi_report_cfg_v1310.unpack(bref)); } if (c.cqi_report_cfg_v1320_present) { HANDLE_CODE(c.cqi_report_cfg_v1320.unpack(bref)); } if (c.cqi_report_cfg_v1430_present) { HANDLE_CODE(c.cqi_report_cfg_v1430.unpack(bref)); } if (c.alt_cqi_table_minus1024_qam_r15_present) { HANDLE_CODE(unpack_enum(c.alt_cqi_table_minus1024_qam_r15, bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportPeriodic ::= CHOICE void cqi_report_periodic_c::set(types::options e) { type_ = e; } void cqi_report_periodic_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("cqi-PUCCH-ResourceIndex", c.cqi_pucch_res_idx); j.write_int("cqi-pmi-ConfigIndex", c.cqi_pmi_cfg_idx); j.write_fieldname("cqi-FormatIndicatorPeriodic"); c.cqi_format_ind_periodic.to_json(j); if (c.ri_cfg_idx_present) { j.write_int("ri-ConfigIndex", c.ri_cfg_idx); } j.write_bool("simultaneousAckNackAndCQI", c.simul_ack_nack_and_cqi); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_c"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.ri_cfg_idx_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pucch_res_idx, (uint16_t)0, (uint16_t)1185)); HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pmi_cfg_idx, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(c.cqi_format_ind_periodic.pack(bref)); if (c.ri_cfg_idx_present) { HANDLE_CODE(pack_unalign_integer(bref, c.ri_cfg_idx, (uint16_t)0, (uint16_t)1023)); } HANDLE_CODE(bref.pack(c.simul_ack_nack_and_cqi, 1)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.ri_cfg_idx_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.cqi_pucch_res_idx, bref, (uint16_t)0, (uint16_t)1185)); HANDLE_CODE(unpack_unalign_integer(c.cqi_pmi_cfg_idx, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(c.cqi_format_ind_periodic.unpack(bref)); if (c.ri_cfg_idx_present) { HANDLE_CODE(unpack_unalign_integer(c.ri_cfg_idx, bref, (uint16_t)0, (uint16_t)1023)); } HANDLE_CODE(bref.unpack(c.simul_ack_nack_and_cqi, 1)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::set(types::options e) { type_ = e; } void cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::wideband_cqi: break; case types::subband_cqi: j.write_fieldname("subbandCQI"); j.start_obj(); j.write_int("k", c.k); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::wideband_cqi: break; case types::subband_cqi: HANDLE_CODE(pack_unalign_integer(bref, c.k, (uint8_t)1, (uint8_t)4)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::wideband_cqi: break; case types::subband_cqi: HANDLE_CODE(unpack_unalign_integer(c.k, bref, (uint8_t)1, (uint8_t)4)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CRS-AssistanceInfo-r11 ::= SEQUENCE SRSASN_CODE crs_assist_info_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, pci_r11, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_enum(bref, ant_ports_count_r11)); HANDLE_CODE(pack_dyn_seq_of(bref, mbsfn_sf_cfg_list_r11, 1, 8)); if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); group_flags[0] |= mbsfn_sf_cfg_list_v1430_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *mbsfn_sf_cfg_list_v1430, 1, 8)); } } } return SRSASN_SUCCESS; } SRSASN_CODE crs_assist_info_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(pci_r11, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_enum(ant_ports_count_r11, bref)); HANDLE_CODE(unpack_dyn_seq_of(mbsfn_sf_cfg_list_r11, bref, 1, 8)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { mbsfn_sf_cfg_list_v1430 = make_copy_ptr(mbsfn_sf_cfg_list_v1430_l()); HANDLE_CODE(unpack_dyn_seq_of(*mbsfn_sf_cfg_list_v1430, bref, 1, 8)); } } } return SRSASN_SUCCESS; } void crs_assist_info_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r11", pci_r11); j.write_str("antennaPortsCount-r11", ant_ports_count_r11.to_string()); j.start_array("mbsfn-SubframeConfigList-r11"); for (uint32_t i1 = 0; i1 < mbsfn_sf_cfg_list_r11.size(); ++i1) { mbsfn_sf_cfg_list_r11[i1].to_json(j); } j.end_array(); if (ext) { rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); if (mbsfn_sf_cfg_list_v1430_present) { j.start_array("mbsfn-SubframeConfigList-v1430"); for (uint32_t i1 = 0; i1 < mbsfn_sf_cfg_list_v1430->size(); ++i1) { ((*mbsfn_sf_cfg_list_v1430)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // CRS-AssistanceInfo-r13 ::= SEQUENCE SRSASN_CODE crs_assist_info_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci_r13, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_enum(bref, ant_ports_count_r13)); if (mbsfn_sf_cfg_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mbsfn_sf_cfg_list_r13, 1, 8)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); group_flags[0] |= mbsfn_sf_cfg_list_v1430_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *mbsfn_sf_cfg_list_v1430, 1, 8)); } } } return SRSASN_SUCCESS; } SRSASN_CODE crs_assist_info_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci_r13, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_enum(ant_ports_count_r13, bref)); if (mbsfn_sf_cfg_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(mbsfn_sf_cfg_list_r13, bref, 1, 8)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { mbsfn_sf_cfg_list_v1430 = make_copy_ptr(mbsfn_sf_cfg_list_v1430_l()); HANDLE_CODE(unpack_dyn_seq_of(*mbsfn_sf_cfg_list_v1430, bref, 1, 8)); } } } return SRSASN_SUCCESS; } void crs_assist_info_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r13", pci_r13); j.write_str("antennaPortsCount-r13", ant_ports_count_r13.to_string()); if (mbsfn_sf_cfg_list_r13_present) { j.start_array("mbsfn-SubframeConfigList-r13"); for (uint32_t i1 = 0; i1 < mbsfn_sf_cfg_list_r13.size(); ++i1) { mbsfn_sf_cfg_list_r13[i1].to_json(j); } j.end_array(); } if (ext) { rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); if (mbsfn_sf_cfg_list_v1430_present) { j.start_array("mbsfn-SubframeConfigList-v1430"); for (uint32_t i1 = 0; i1 < mbsfn_sf_cfg_list_v1430->size(); ++i1) { ((*mbsfn_sf_cfg_list_v1430)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // CRS-AssistanceInfo-r15 ::= SEQUENCE SRSASN_CODE crs_assist_info_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(crs_intf_mitig_enabled_minus15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci_r15, (uint16_t)0, (uint16_t)503)); return SRSASN_SUCCESS; } SRSASN_CODE crs_assist_info_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(crs_intf_mitig_enabled_minus15_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci_r15, bref, (uint16_t)0, (uint16_t)503)); return SRSASN_SUCCESS; } void crs_assist_info_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r15", pci_r15); if (crs_intf_mitig_enabled_minus15_present) { j.write_str("crs-IntfMitigEnabled-15", "enabled"); } j.end_obj(); } // CSI-RS-Config-r15 ::= CHOICE void csi_rs_cfg_r15_c::set(types::options e) { type_ = e; } void csi_rs_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.csi_rs_cfg_r10_present) { j.write_fieldname("csi-RS-Config-r10"); c.csi_rs_cfg_r10.to_json(j); } if (c.csi_rs_cfg_v1250_present) { j.write_fieldname("csi-RS-Config-v1250"); c.csi_rs_cfg_v1250.to_json(j); } if (c.csi_rs_cfg_v1310_present) { j.write_fieldname("csi-RS-Config-v1310"); c.csi_rs_cfg_v1310.to_json(j); } if (c.csi_rs_cfg_v1430_present) { j.write_fieldname("csi-RS-Config-v1430"); c.csi_rs_cfg_v1430.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.csi_rs_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_v1250_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_v1430_present, 1)); if (c.csi_rs_cfg_r10_present) { HANDLE_CODE(c.csi_rs_cfg_r10.pack(bref)); } if (c.csi_rs_cfg_v1250_present) { HANDLE_CODE(c.csi_rs_cfg_v1250.pack(bref)); } if (c.csi_rs_cfg_v1310_present) { HANDLE_CODE(c.csi_rs_cfg_v1310.pack(bref)); } if (c.csi_rs_cfg_v1430_present) { HANDLE_CODE(c.csi_rs_cfg_v1430.pack(bref)); } break; default: log_invalid_choice_id(type_, "csi_rs_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.csi_rs_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_v1250_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_v1430_present, 1)); if (c.csi_rs_cfg_r10_present) { HANDLE_CODE(c.csi_rs_cfg_r10.unpack(bref)); } if (c.csi_rs_cfg_v1250_present) { HANDLE_CODE(c.csi_rs_cfg_v1250.unpack(bref)); } if (c.csi_rs_cfg_v1310_present) { HANDLE_CODE(c.csi_rs_cfg_v1310.unpack(bref)); } if (c.csi_rs_cfg_v1430_present) { HANDLE_CODE(c.csi_rs_cfg_v1430.unpack(bref)); } break; default: log_invalid_choice_id(type_, "csi_rs_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSI-RS-ConfigZP-ApList-r14 ::= CHOICE void csi_rs_cfg_zp_ap_list_r14_c::set(types::options e) { type_ = e; } void csi_rs_cfg_zp_ap_list_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { c[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_zp_ap_list_r14_c"); } j.end_obj(); } SRSASN_CODE csi_rs_cfg_zp_ap_list_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 4)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_zp_ap_list_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_zp_ap_list_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 4)); break; default: log_invalid_choice_id(type_, "csi_rs_cfg_zp_ap_list_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DMRS-Config-r11 ::= CHOICE void dmrs_cfg_r11_c::set(types::options e) { type_ = e; } void dmrs_cfg_r11_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("scramblingIdentity-r11", c.scrambling_id_r11); j.write_int("scramblingIdentity2-r11", c.scrambling_id2_r11); j.end_obj(); break; default: log_invalid_choice_id(type_, "dmrs_cfg_r11_c"); } j.end_obj(); } SRSASN_CODE dmrs_cfg_r11_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.scrambling_id_r11, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, c.scrambling_id2_r11, (uint16_t)0, (uint16_t)503)); break; default: log_invalid_choice_id(type_, "dmrs_cfg_r11_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dmrs_cfg_r11_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.scrambling_id_r11, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(c.scrambling_id2_r11, bref, (uint16_t)0, (uint16_t)503)); break; default: log_invalid_choice_id(type_, "dmrs_cfg_r11_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DMRS-Config-v1310 ::= SEQUENCE SRSASN_CODE dmrs_cfg_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dmrs_table_alt_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE dmrs_cfg_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dmrs_table_alt_r13_present, 1)); return SRSASN_SUCCESS; } void dmrs_cfg_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (dmrs_table_alt_r13_present) { j.write_str("dmrs-tableAlt-r13", "true"); } j.end_obj(); } // DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE SRSASN_CODE delta_tx_d_offset_list_pucch_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_pucch_format1_r10)); HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_pucch_format1a1b_r10)); HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_pucch_format22a2b_r10)); HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_pucch_format3_r10)); return SRSASN_SUCCESS; } SRSASN_CODE delta_tx_d_offset_list_pucch_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(delta_tx_d_offset_pucch_format1_r10, bref)); HANDLE_CODE(unpack_enum(delta_tx_d_offset_pucch_format1a1b_r10, bref)); HANDLE_CODE(unpack_enum(delta_tx_d_offset_pucch_format22a2b_r10, bref)); HANDLE_CODE(unpack_enum(delta_tx_d_offset_pucch_format3_r10, bref)); return SRSASN_SUCCESS; } void delta_tx_d_offset_list_pucch_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("deltaTxD-OffsetPUCCH-Format1-r10", delta_tx_d_offset_pucch_format1_r10.to_string()); j.write_str("deltaTxD-OffsetPUCCH-Format1a1b-r10", delta_tx_d_offset_pucch_format1a1b_r10.to_string()); j.write_str("deltaTxD-OffsetPUCCH-Format22a2b-r10", delta_tx_d_offset_pucch_format22a2b_r10.to_string()); j.write_str("deltaTxD-OffsetPUCCH-Format3-r10", delta_tx_d_offset_pucch_format3_r10.to_string()); j.end_obj(); } // DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE SRSASN_CODE delta_tx_d_offset_list_pucch_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, delta_tx_d_offset_pucch_format1b_cs_r11)); return SRSASN_SUCCESS; } SRSASN_CODE delta_tx_d_offset_list_pucch_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(delta_tx_d_offset_pucch_format1b_cs_r11, bref)); return SRSASN_SUCCESS; } void delta_tx_d_offset_list_pucch_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("deltaTxD-OffsetPUCCH-Format1bCS-r11", delta_tx_d_offset_pucch_format1b_cs_r11.to_string()); j.end_obj(); } // EIMTA-MainConfig-r12 ::= CHOICE void eimta_main_cfg_r12_c::set(types::options e) { type_ = e; } void eimta_main_cfg_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("eimta-RNTI-r12", c.eimta_rnti_r12.to_string()); j.write_str("eimta-CommandPeriodicity-r12", c.eimta_cmd_periodicity_r12.to_string()); j.write_str("eimta-CommandSubframeSet-r12", c.eimta_cmd_sf_set_r12.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_r12_c"); } j.end_obj(); } SRSASN_CODE eimta_main_cfg_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.eimta_rnti_r12.pack(bref)); HANDLE_CODE(pack_enum(bref, c.eimta_cmd_periodicity_r12)); HANDLE_CODE(c.eimta_cmd_sf_set_r12.pack(bref)); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE eimta_main_cfg_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.eimta_rnti_r12.unpack(bref)); HANDLE_CODE(unpack_enum(c.eimta_cmd_periodicity_r12, bref)); HANDLE_CODE(c.eimta_cmd_sf_set_r12.unpack(bref)); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // EIMTA-MainConfigServCell-r12 ::= CHOICE void eimta_main_cfg_serv_cell_r12_c::set(types::options e) { type_ = e; } void eimta_main_cfg_serv_cell_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("eimta-UL-DL-ConfigIndex-r12", c.eimta_ul_dl_cfg_idx_r12); j.write_str("eimta-HARQ-ReferenceConfig-r12", c.eimta_harq_ref_cfg_r12.to_string()); j.write_fieldname("mbsfn-SubframeConfigList-v1250"); c.mbsfn_sf_cfg_list_v1250.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_serv_cell_r12_c"); } j.end_obj(); } SRSASN_CODE eimta_main_cfg_serv_cell_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.eimta_ul_dl_cfg_idx_r12, (uint8_t)1, (uint8_t)5)); HANDLE_CODE(pack_enum(bref, c.eimta_harq_ref_cfg_r12)); HANDLE_CODE(c.mbsfn_sf_cfg_list_v1250.pack(bref)); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_serv_cell_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE eimta_main_cfg_serv_cell_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.eimta_ul_dl_cfg_idx_r12, bref, (uint8_t)1, (uint8_t)5)); HANDLE_CODE(unpack_enum(c.eimta_harq_ref_cfg_r12, bref)); HANDLE_CODE(c.mbsfn_sf_cfg_list_v1250.unpack(bref)); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_serv_cell_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::set(types::options e) { type_ = e; } void eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("subframeConfigList-r12"); for (uint32_t i1 = 0; i1 < c.sf_cfg_list_r12.size(); ++i1) { c.sf_cfg_list_r12[i1].to_json(j); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_"); } j.end_obj(); } SRSASN_CODE eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.sf_cfg_list_r12, 1, 8)); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.sf_cfg_list_r12, bref, 1, 8)); break; default: log_invalid_choice_id(type_, "eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // Format4-resource-r13 ::= SEQUENCE SRSASN_CODE format4_res_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, start_prb_format4_r13, (uint8_t)0, (uint8_t)109)); HANDLE_CODE(pack_unalign_integer(bref, nof_prb_format4_r13, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE format4_res_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(start_prb_format4_r13, bref, (uint8_t)0, (uint8_t)109)); HANDLE_CODE(unpack_unalign_integer(nof_prb_format4_r13, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void format4_res_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("startingPRB-format4-r13", start_prb_format4_r13); j.write_int("numberOfPRB-format4-r13", nof_prb_format4_r13); j.end_obj(); } // Format5-resource-r13 ::= SEQUENCE SRSASN_CODE format5_res_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, start_prb_format5_r13, (uint8_t)0, (uint8_t)109)); HANDLE_CODE(pack_unalign_integer(bref, cdm_idx_format5_r13, (uint8_t)0, (uint8_t)1)); return SRSASN_SUCCESS; } SRSASN_CODE format5_res_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(start_prb_format5_r13, bref, (uint8_t)0, (uint8_t)109)); HANDLE_CODE(unpack_unalign_integer(cdm_idx_format5_r13, bref, (uint8_t)0, (uint8_t)1)); return SRSASN_SUCCESS; } void format5_res_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("startingPRB-format5-r13", start_prb_format5_r13); j.write_int("cdm-index-format5-r13", cdm_idx_format5_r13); j.end_obj(); } // NeighCellsInfo-r12 ::= SEQUENCE SRSASN_CODE neigh_cells_info_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci_r12, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, p_b_r12, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_enum(bref, crs_ports_count_r12)); if (mbsfn_sf_cfg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mbsfn_sf_cfg_r12, 1, 8)); } HANDLE_CODE(pack_dyn_seq_of(bref, p_a_list_r12, 1, 3, EnumPacker())); HANDLE_CODE(tx_mode_list_r12.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, res_alloc_granularity_r12, (uint8_t)1, (uint8_t)4)); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cells_info_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci_r12, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(p_b_r12, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_enum(crs_ports_count_r12, bref)); if (mbsfn_sf_cfg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(mbsfn_sf_cfg_r12, bref, 1, 8)); } HANDLE_CODE(unpack_dyn_seq_of(p_a_list_r12, bref, 1, 3, EnumPacker())); HANDLE_CODE(tx_mode_list_r12.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(res_alloc_granularity_r12, bref, (uint8_t)1, (uint8_t)4)); return SRSASN_SUCCESS; } void neigh_cells_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r12", pci_r12); j.write_int("p-b-r12", p_b_r12); j.write_str("crs-PortsCount-r12", crs_ports_count_r12.to_string()); if (mbsfn_sf_cfg_r12_present) { j.start_array("mbsfn-SubframeConfig-r12"); for (uint32_t i1 = 0; i1 < mbsfn_sf_cfg_r12.size(); ++i1) { mbsfn_sf_cfg_r12[i1].to_json(j); } j.end_array(); } j.start_array("p-aList-r12"); for (uint32_t i1 = 0; i1 < p_a_list_r12.size(); ++i1) { j.write_str(p_a_list_r12[i1].to_string()); } j.end_array(); j.write_str("transmissionModeList-r12", tx_mode_list_r12.to_string()); j.write_int("resAllocGranularity-r12", res_alloc_granularity_r12); j.end_obj(); } // PDCP-Config ::= SEQUENCE SRSASN_CODE pdcp_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(discard_timer_present, 1)); HANDLE_CODE(bref.pack(rlc_am_present, 1)); HANDLE_CODE(bref.pack(rlc_um_present, 1)); if (discard_timer_present) { HANDLE_CODE(pack_enum(bref, discard_timer)); } if (rlc_am_present) { HANDLE_CODE(bref.pack(rlc_am.status_report_required, 1)); } if (rlc_um_present) { HANDLE_CODE(pack_enum(bref, rlc_um.pdcp_sn_size)); } HANDLE_CODE(hdr_compress.pack(bref)); if (ext) { ext_groups_header group_flags(6); group_flags[0] |= rn_integrity_protection_r10_present; group_flags[1] |= pdcp_sn_size_v1130_present; group_flags[2] |= ul_data_split_drb_via_scg_r12_present; group_flags[2] |= t_reordering_r12_present; rrc_asn1_warn_assert(ul_data_split_thres_r13_present != (ul_data_split_thres_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= ul_data_split_thres_r13_present; group_flags[3] |= pdcp_sn_size_v1310_present; rrc_asn1_warn_assert(status_feedback_r13_present != (status_feedback_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= status_feedback_r13_present; rrc_asn1_warn_assert(ul_lwa_cfg_r14_present != (ul_lwa_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= ul_lwa_cfg_r14_present; rrc_asn1_warn_assert(ul_only_hdr_compress_r14_present != (ul_only_hdr_compress_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= ul_only_hdr_compress_r14_present; rrc_asn1_warn_assert(ul_data_compress_r15_present != (ul_data_compress_r15.get() != NULL), __FILE__, __LINE__); group_flags[5] |= ul_data_compress_r15_present; rrc_asn1_warn_assert(pdcp_dupl_cfg_r15_present != (pdcp_dupl_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[5] |= pdcp_dupl_cfg_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rn_integrity_protection_r10_present, 1)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pdcp_sn_size_v1130_present, 1)); } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_data_split_drb_via_scg_r12_present, 1)); HANDLE_CODE(bref.pack(t_reordering_r12_present, 1)); if (ul_data_split_drb_via_scg_r12_present) { HANDLE_CODE(bref.pack(ul_data_split_drb_via_scg_r12, 1)); } if (t_reordering_r12_present) { HANDLE_CODE(pack_enum(bref, t_reordering_r12)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_data_split_thres_r13_present, 1)); HANDLE_CODE(bref.pack(pdcp_sn_size_v1310_present, 1)); HANDLE_CODE(bref.pack(status_feedback_r13_present, 1)); if (ul_data_split_thres_r13_present) { HANDLE_CODE(ul_data_split_thres_r13->pack(bref)); } if (status_feedback_r13_present) { HANDLE_CODE(status_feedback_r13->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_lwa_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(ul_only_hdr_compress_r14_present, 1)); if (ul_lwa_cfg_r14_present) { HANDLE_CODE(ul_lwa_cfg_r14->pack(bref)); } if (ul_only_hdr_compress_r14_present) { HANDLE_CODE(ul_only_hdr_compress_r14->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_data_compress_r15_present, 1)); HANDLE_CODE(bref.pack(pdcp_dupl_cfg_r15_present, 1)); if (ul_data_compress_r15_present) { bref.pack(ul_data_compress_r15->ext, 1); HANDLE_CODE(bref.pack(ul_data_compress_r15->dictionary_r15_present, 1)); HANDLE_CODE(pack_enum(bref, ul_data_compress_r15->buffer_size_r15)); if (ul_data_compress_r15->dictionary_r15_present) { HANDLE_CODE(pack_enum(bref, ul_data_compress_r15->dictionary_r15)); } } if (pdcp_dupl_cfg_r15_present) { HANDLE_CODE(pdcp_dupl_cfg_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_cfg_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(discard_timer_present, 1)); HANDLE_CODE(bref.unpack(rlc_am_present, 1)); HANDLE_CODE(bref.unpack(rlc_um_present, 1)); if (discard_timer_present) { HANDLE_CODE(unpack_enum(discard_timer, bref)); } if (rlc_am_present) { HANDLE_CODE(bref.unpack(rlc_am.status_report_required, 1)); } if (rlc_um_present) { HANDLE_CODE(unpack_enum(rlc_um.pdcp_sn_size, bref)); } HANDLE_CODE(hdr_compress.unpack(bref)); if (ext) { ext_groups_header group_flags(6); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rn_integrity_protection_r10_present, 1)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pdcp_sn_size_v1130_present, 1)); } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_data_split_drb_via_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(t_reordering_r12_present, 1)); if (ul_data_split_drb_via_scg_r12_present) { HANDLE_CODE(bref.unpack(ul_data_split_drb_via_scg_r12, 1)); } if (t_reordering_r12_present) { HANDLE_CODE(unpack_enum(t_reordering_r12, bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_data_split_thres_r13_present, 1)); HANDLE_CODE(bref.unpack(pdcp_sn_size_v1310_present, 1)); HANDLE_CODE(bref.unpack(status_feedback_r13_present, 1)); if (ul_data_split_thres_r13_present) { ul_data_split_thres_r13 = make_copy_ptr(ul_data_split_thres_r13_c_()); HANDLE_CODE(ul_data_split_thres_r13->unpack(bref)); } if (status_feedback_r13_present) { status_feedback_r13 = make_copy_ptr(status_feedback_r13_c_()); HANDLE_CODE(status_feedback_r13->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_lwa_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_only_hdr_compress_r14_present, 1)); if (ul_lwa_cfg_r14_present) { ul_lwa_cfg_r14 = make_copy_ptr(ul_lwa_cfg_r14_c_()); HANDLE_CODE(ul_lwa_cfg_r14->unpack(bref)); } if (ul_only_hdr_compress_r14_present) { ul_only_hdr_compress_r14 = make_copy_ptr(ul_only_hdr_compress_r14_c_()); HANDLE_CODE(ul_only_hdr_compress_r14->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_data_compress_r15_present, 1)); HANDLE_CODE(bref.unpack(pdcp_dupl_cfg_r15_present, 1)); if (ul_data_compress_r15_present) { ul_data_compress_r15 = make_copy_ptr(ul_data_compress_r15_s_()); bref.unpack(ul_data_compress_r15->ext, 1); HANDLE_CODE(bref.unpack(ul_data_compress_r15->dictionary_r15_present, 1)); HANDLE_CODE(unpack_enum(ul_data_compress_r15->buffer_size_r15, bref)); if (ul_data_compress_r15->dictionary_r15_present) { HANDLE_CODE(unpack_enum(ul_data_compress_r15->dictionary_r15, bref)); } } if (pdcp_dupl_cfg_r15_present) { pdcp_dupl_cfg_r15 = make_copy_ptr(pdcp_dupl_cfg_r15_c_()); HANDLE_CODE(pdcp_dupl_cfg_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void pdcp_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (discard_timer_present) { j.write_str("discardTimer", discard_timer.to_string()); } if (rlc_am_present) { j.write_fieldname("rlc-AM"); j.start_obj(); j.write_bool("statusReportRequired", rlc_am.status_report_required); j.end_obj(); } if (rlc_um_present) { j.write_fieldname("rlc-UM"); j.start_obj(); j.write_str("pdcp-SN-Size", rlc_um.pdcp_sn_size.to_string()); j.end_obj(); } j.write_fieldname("headerCompression"); hdr_compress.to_json(j); if (ext) { if (rn_integrity_protection_r10_present) { j.write_str("rn-IntegrityProtection-r10", "enabled"); } if (pdcp_sn_size_v1130_present) { j.write_str("pdcp-SN-Size-v1130", "len15bits"); } if (ul_data_split_drb_via_scg_r12_present) { j.write_bool("ul-DataSplitDRB-ViaSCG-r12", ul_data_split_drb_via_scg_r12); } if (t_reordering_r12_present) { j.write_str("t-Reordering-r12", t_reordering_r12.to_string()); } rrc_asn1_warn_assert(ul_data_split_thres_r13_present != (ul_data_split_thres_r13.get() != NULL), __FILE__, __LINE__); if (ul_data_split_thres_r13_present) { j.write_fieldname("ul-DataSplitThreshold-r13"); ul_data_split_thres_r13->to_json(j); } if (pdcp_sn_size_v1310_present) { j.write_str("pdcp-SN-Size-v1310", "len18bits"); } rrc_asn1_warn_assert(status_feedback_r13_present != (status_feedback_r13.get() != NULL), __FILE__, __LINE__); if (status_feedback_r13_present) { j.write_fieldname("statusFeedback-r13"); status_feedback_r13->to_json(j); } rrc_asn1_warn_assert(ul_lwa_cfg_r14_present != (ul_lwa_cfg_r14.get() != NULL), __FILE__, __LINE__); if (ul_lwa_cfg_r14_present) { j.write_fieldname("ul-LWA-Config-r14"); ul_lwa_cfg_r14->to_json(j); } rrc_asn1_warn_assert(ul_only_hdr_compress_r14_present != (ul_only_hdr_compress_r14.get() != NULL), __FILE__, __LINE__); if (ul_only_hdr_compress_r14_present) { j.write_fieldname("uplinkOnlyHeaderCompression-r14"); ul_only_hdr_compress_r14->to_json(j); } rrc_asn1_warn_assert(ul_data_compress_r15_present != (ul_data_compress_r15.get() != NULL), __FILE__, __LINE__); if (ul_data_compress_r15_present) { j.write_fieldname("uplinkDataCompression-r15"); j.start_obj(); j.write_str("bufferSize-r15", ul_data_compress_r15->buffer_size_r15.to_string()); if (ul_data_compress_r15->dictionary_r15_present) { j.write_str("dictionary-r15", ul_data_compress_r15->dictionary_r15.to_string()); } j.end_obj(); } rrc_asn1_warn_assert(pdcp_dupl_cfg_r15_present != (pdcp_dupl_cfg_r15.get() != NULL), __FILE__, __LINE__); if (pdcp_dupl_cfg_r15_present) { j.write_fieldname("pdcp-DuplicationConfig-r15"); pdcp_dupl_cfg_r15->to_json(j); } } j.end_obj(); } void pdcp_cfg_s::hdr_compress_c_::set(types::options e) { type_ = e; } void pdcp_cfg_s::hdr_compress_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::not_used: break; case types::rohc: j.write_fieldname("rohc"); j.start_obj(); if (c.max_cid_present) { j.write_int("maxCID", c.max_cid); } j.write_fieldname("profiles"); j.start_obj(); j.write_bool("profile0x0001", c.profiles.profile0x0001); j.write_bool("profile0x0002", c.profiles.profile0x0002); j.write_bool("profile0x0003", c.profiles.profile0x0003); j.write_bool("profile0x0004", c.profiles.profile0x0004); j.write_bool("profile0x0006", c.profiles.profile0x0006); j.write_bool("profile0x0101", c.profiles.profile0x0101); j.write_bool("profile0x0102", c.profiles.profile0x0102); j.write_bool("profile0x0103", c.profiles.profile0x0103); j.write_bool("profile0x0104", c.profiles.profile0x0104); j.end_obj(); j.end_obj(); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::hdr_compress_c_"); } j.end_obj(); } SRSASN_CODE pdcp_cfg_s::hdr_compress_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::not_used: break; case types::rohc: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.max_cid_present, 1)); if (c.max_cid_present) { HANDLE_CODE(pack_unalign_integer(bref, c.max_cid, (uint16_t)1, (uint16_t)16383)); } HANDLE_CODE(bref.pack(c.profiles.profile0x0001, 1)); HANDLE_CODE(bref.pack(c.profiles.profile0x0002, 1)); HANDLE_CODE(bref.pack(c.profiles.profile0x0003, 1)); HANDLE_CODE(bref.pack(c.profiles.profile0x0004, 1)); HANDLE_CODE(bref.pack(c.profiles.profile0x0006, 1)); HANDLE_CODE(bref.pack(c.profiles.profile0x0101, 1)); HANDLE_CODE(bref.pack(c.profiles.profile0x0102, 1)); HANDLE_CODE(bref.pack(c.profiles.profile0x0103, 1)); HANDLE_CODE(bref.pack(c.profiles.profile0x0104, 1)); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::hdr_compress_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_cfg_s::hdr_compress_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::not_used: break; case types::rohc: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.max_cid_present, 1)); if (c.max_cid_present) { HANDLE_CODE(unpack_unalign_integer(c.max_cid, bref, (uint16_t)1, (uint16_t)16383)); } HANDLE_CODE(bref.unpack(c.profiles.profile0x0001, 1)); HANDLE_CODE(bref.unpack(c.profiles.profile0x0002, 1)); HANDLE_CODE(bref.unpack(c.profiles.profile0x0003, 1)); HANDLE_CODE(bref.unpack(c.profiles.profile0x0004, 1)); HANDLE_CODE(bref.unpack(c.profiles.profile0x0006, 1)); HANDLE_CODE(bref.unpack(c.profiles.profile0x0101, 1)); HANDLE_CODE(bref.unpack(c.profiles.profile0x0102, 1)); HANDLE_CODE(bref.unpack(c.profiles.profile0x0103, 1)); HANDLE_CODE(bref.unpack(c.profiles.profile0x0104, 1)); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::hdr_compress_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pdcp_cfg_s::ul_data_split_thres_r13_c_::set(types::options e) { type_ = e; } void pdcp_cfg_s::ul_data_split_thres_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_data_split_thres_r13_c_"); } j.end_obj(); } SRSASN_CODE pdcp_cfg_s::ul_data_split_thres_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_data_split_thres_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_cfg_s::ul_data_split_thres_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_data_split_thres_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pdcp_cfg_s::status_feedback_r13_c_::set(types::options e) { type_ = e; } void pdcp_cfg_s::status_feedback_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.status_pdu_type_for_polling_r13_present) { j.write_str("statusPDU-TypeForPolling-r13", c.status_pdu_type_for_polling_r13.to_string()); } if (c.status_pdu_periodicity_type1_r13_present) { j.write_str("statusPDU-Periodicity-Type1-r13", c.status_pdu_periodicity_type1_r13.to_string()); } if (c.status_pdu_periodicity_type2_r13_present) { j.write_str("statusPDU-Periodicity-Type2-r13", c.status_pdu_periodicity_type2_r13.to_string()); } if (c.status_pdu_periodicity_offset_r13_present) { j.write_str("statusPDU-Periodicity-Offset-r13", c.status_pdu_periodicity_offset_r13.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::status_feedback_r13_c_"); } j.end_obj(); } SRSASN_CODE pdcp_cfg_s::status_feedback_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.status_pdu_type_for_polling_r13_present, 1)); HANDLE_CODE(bref.pack(c.status_pdu_periodicity_type1_r13_present, 1)); HANDLE_CODE(bref.pack(c.status_pdu_periodicity_type2_r13_present, 1)); HANDLE_CODE(bref.pack(c.status_pdu_periodicity_offset_r13_present, 1)); if (c.status_pdu_type_for_polling_r13_present) { HANDLE_CODE(pack_enum(bref, c.status_pdu_type_for_polling_r13)); } if (c.status_pdu_periodicity_type1_r13_present) { HANDLE_CODE(pack_enum(bref, c.status_pdu_periodicity_type1_r13)); } if (c.status_pdu_periodicity_type2_r13_present) { HANDLE_CODE(pack_enum(bref, c.status_pdu_periodicity_type2_r13)); } if (c.status_pdu_periodicity_offset_r13_present) { HANDLE_CODE(pack_enum(bref, c.status_pdu_periodicity_offset_r13)); } break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::status_feedback_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_cfg_s::status_feedback_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.status_pdu_type_for_polling_r13_present, 1)); HANDLE_CODE(bref.unpack(c.status_pdu_periodicity_type1_r13_present, 1)); HANDLE_CODE(bref.unpack(c.status_pdu_periodicity_type2_r13_present, 1)); HANDLE_CODE(bref.unpack(c.status_pdu_periodicity_offset_r13_present, 1)); if (c.status_pdu_type_for_polling_r13_present) { HANDLE_CODE(unpack_enum(c.status_pdu_type_for_polling_r13, bref)); } if (c.status_pdu_periodicity_type1_r13_present) { HANDLE_CODE(unpack_enum(c.status_pdu_periodicity_type1_r13, bref)); } if (c.status_pdu_periodicity_type2_r13_present) { HANDLE_CODE(unpack_enum(c.status_pdu_periodicity_type2_r13, bref)); } if (c.status_pdu_periodicity_offset_r13_present) { HANDLE_CODE(unpack_enum(c.status_pdu_periodicity_offset_r13, bref)); } break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::status_feedback_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pdcp_cfg_s::ul_lwa_cfg_r14_c_::set(types::options e) { type_ = e; } void pdcp_cfg_s::ul_lwa_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_bool("ul-LWA-DRB-ViaWLAN-r14", c.ul_lwa_drb_via_wlan_r14); if (c.ul_lwa_data_split_thres_r14_present) { j.write_str("ul-LWA-DataSplitThreshold-r14", c.ul_lwa_data_split_thres_r14.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_lwa_cfg_r14_c_"); } j.end_obj(); } SRSASN_CODE pdcp_cfg_s::ul_lwa_cfg_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.ul_lwa_data_split_thres_r14_present, 1)); HANDLE_CODE(bref.pack(c.ul_lwa_drb_via_wlan_r14, 1)); if (c.ul_lwa_data_split_thres_r14_present) { HANDLE_CODE(pack_enum(bref, c.ul_lwa_data_split_thres_r14)); } break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_lwa_cfg_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_cfg_s::ul_lwa_cfg_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.ul_lwa_data_split_thres_r14_present, 1)); HANDLE_CODE(bref.unpack(c.ul_lwa_drb_via_wlan_r14, 1)); if (c.ul_lwa_data_split_thres_r14_present) { HANDLE_CODE(unpack_enum(c.ul_lwa_data_split_thres_r14, bref)); } break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_lwa_cfg_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pdcp_cfg_s::ul_only_hdr_compress_r14_c_::set(types::options e) { type_ = e; } void pdcp_cfg_s::ul_only_hdr_compress_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::not_used_r14: break; case types::rohc_r14: j.write_fieldname("rohc-r14"); j.start_obj(); if (c.max_cid_r14_present) { j.write_int("maxCID-r14", c.max_cid_r14); } j.write_fieldname("profiles-r14"); j.start_obj(); j.write_bool("profile0x0006-r14", c.profiles_r14.profile0x0006_r14); j.end_obj(); j.end_obj(); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_only_hdr_compress_r14_c_"); } j.end_obj(); } SRSASN_CODE pdcp_cfg_s::ul_only_hdr_compress_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::not_used_r14: break; case types::rohc_r14: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.max_cid_r14_present, 1)); if (c.max_cid_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, c.max_cid_r14, (uint16_t)1, (uint16_t)16383)); } HANDLE_CODE(bref.pack(c.profiles_r14.profile0x0006_r14, 1)); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_only_hdr_compress_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_cfg_s::ul_only_hdr_compress_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::not_used_r14: break; case types::rohc_r14: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.max_cid_r14_present, 1)); if (c.max_cid_r14_present) { HANDLE_CODE(unpack_unalign_integer(c.max_cid_r14, bref, (uint16_t)1, (uint16_t)16383)); } HANDLE_CODE(bref.unpack(c.profiles_r14.profile0x0006_r14, 1)); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::ul_only_hdr_compress_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::set(types::options e) { type_ = e; } void pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("pdcp-Duplication-r15", c.pdcp_dupl_r15.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::pdcp_dupl_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.pdcp_dupl_r15)); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::pdcp_dupl_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.pdcp_dupl_r15, bref)); break; default: log_invalid_choice_id(type_, "pdcp_cfg_s::pdcp_dupl_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUCCH-ConfigDedicated-v1530 ::= SEQUENCE SRSASN_CODE pucch_cfg_ded_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(n1_pucch_an_spt_r15_present, 1)); HANDLE_CODE(bref.pack(codebooksize_determination_stti_r15_present, 1)); if (n1_pucch_an_spt_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, n1_pucch_an_spt_r15, (uint16_t)0, (uint16_t)2047)); } if (codebooksize_determination_stti_r15_present) { HANDLE_CODE(pack_enum(bref, codebooksize_determination_stti_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(n1_pucch_an_spt_r15_present, 1)); HANDLE_CODE(bref.unpack(codebooksize_determination_stti_r15_present, 1)); if (n1_pucch_an_spt_r15_present) { HANDLE_CODE(unpack_unalign_integer(n1_pucch_an_spt_r15, bref, (uint16_t)0, (uint16_t)2047)); } if (codebooksize_determination_stti_r15_present) { HANDLE_CODE(unpack_enum(codebooksize_determination_stti_r15, bref)); } return SRSASN_SUCCESS; } void pucch_cfg_ded_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (n1_pucch_an_spt_r15_present) { j.write_int("n1PUCCH-AN-SPT-r15", n1_pucch_an_spt_r15); } if (codebooksize_determination_stti_r15_present) { j.write_str("codebooksizeDeterminationSTTI-r15", codebooksize_determination_stti_r15.to_string()); } j.end_obj(); } // PUCCH-Format3-Conf-r13 ::= SEQUENCE SRSASN_CODE pucch_format3_conf_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(n3_pucch_an_list_r13_present, 1)); HANDLE_CODE(bref.pack(two_ant_port_activ_pucch_format3_r13_present, 1)); if (n3_pucch_an_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, n3_pucch_an_list_r13, 1, 4, UnalignedIntegerPacker(0, 549))); } if (two_ant_port_activ_pucch_format3_r13_present) { HANDLE_CODE(two_ant_port_activ_pucch_format3_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_format3_conf_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(n3_pucch_an_list_r13_present, 1)); HANDLE_CODE(bref.unpack(two_ant_port_activ_pucch_format3_r13_present, 1)); if (n3_pucch_an_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(n3_pucch_an_list_r13, bref, 1, 4, UnalignedIntegerPacker(0, 549))); } if (two_ant_port_activ_pucch_format3_r13_present) { HANDLE_CODE(two_ant_port_activ_pucch_format3_r13.unpack(bref)); } return SRSASN_SUCCESS; } void pucch_format3_conf_r13_s::to_json(json_writer& j) const { j.start_obj(); if (n3_pucch_an_list_r13_present) { j.start_array("n3PUCCH-AN-List-r13"); for (uint32_t i1 = 0; i1 < n3_pucch_an_list_r13.size(); ++i1) { j.write_int(n3_pucch_an_list_r13[i1]); } j.end_array(); } if (two_ant_port_activ_pucch_format3_r13_present) { j.write_fieldname("twoAntennaPortActivatedPUCCH-Format3-r13"); two_ant_port_activ_pucch_format3_r13.to_json(j); } j.end_obj(); } void pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::set(types::options e) { type_ = e; } void pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("n3PUCCH-AN-ListP1-r13"); for (uint32_t i1 = 0; i1 < c.n3_pucch_an_list_p1_r13.size(); ++i1) { j.write_int(c.n3_pucch_an_list_p1_r13[i1]); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_"); } j.end_obj(); } SRSASN_CODE pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.n3_pucch_an_list_p1_r13, 1, 4, UnalignedIntegerPacker(0, 549))); break; default: log_invalid_choice_id(type_, "pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.n3_pucch_an_list_p1_r13, bref, 1, 4, UnalignedIntegerPacker(0, 549))); break; default: log_invalid_choice_id(type_, "pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RLC-BearerConfig-r15 ::= CHOICE void rlc_bearer_cfg_r15_c::set(types::options e) { type_ = e; } void rlc_bearer_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.rlc_cfg_r15_present) { j.write_fieldname("rlc-Config-r15"); c.rlc_cfg_r15.to_json(j); } j.write_fieldname("logicalChannelIdentityConfig-r15"); c.lc_ch_id_cfg_r15.to_json(j); if (c.lc_ch_cfg_r15_present) { j.write_fieldname("logicalChannelConfig-r15"); c.lc_ch_cfg_r15.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "rlc_bearer_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE rlc_bearer_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.rlc_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.lc_ch_cfg_r15_present, 1)); if (c.rlc_cfg_r15_present) { HANDLE_CODE(c.rlc_cfg_r15.pack(bref)); } HANDLE_CODE(c.lc_ch_id_cfg_r15.pack(bref)); if (c.lc_ch_cfg_r15_present) { HANDLE_CODE(c.lc_ch_cfg_r15.pack(bref)); } break; default: log_invalid_choice_id(type_, "rlc_bearer_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlc_bearer_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.rlc_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.lc_ch_cfg_r15_present, 1)); if (c.rlc_cfg_r15_present) { HANDLE_CODE(c.rlc_cfg_r15.unpack(bref)); } HANDLE_CODE(c.lc_ch_id_cfg_r15.unpack(bref)); if (c.lc_ch_cfg_r15_present) { HANDLE_CODE(c.lc_ch_cfg_r15.unpack(bref)); } break; default: log_invalid_choice_id(type_, "rlc_bearer_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::destroy_() {} void rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::set(types::options e) { destroy_(); type_ = e; } rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::lc_ch_id_cfg_r15_c_( const rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_& other) { type_ = other.type(); switch (type_) { case types::lc_ch_id_r15: c.init(other.c.get()); break; case types::lc_ch_id_ext_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_"); } } rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_& rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_:: operator=(const rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::lc_ch_id_r15: c.set(other.c.get()); break; case types::lc_ch_id_ext_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_"); } return *this; } void rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::lc_ch_id_r15: j.write_int("logicalChannelIdentity-r15", c.get()); break; case types::lc_ch_id_ext_r15: j.write_int("logicalChannelIdentityExt-r15", c.get()); break; default: log_invalid_choice_id(type_, "rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::lc_ch_id_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)10)); break; case types::lc_ch_id_ext_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)32, (uint8_t)38)); break; default: log_invalid_choice_id(type_, "rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::lc_ch_id_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)10)); break; case types::lc_ch_id_ext_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)32, (uint8_t)38)); break; default: log_invalid_choice_id(type_, "rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RLC-Config ::= CHOICE void rlc_cfg_c::destroy_() { switch (type_) { case types::am: c.destroy(); break; case types::um_bi_dir: c.destroy(); break; case types::um_uni_dir_ul: c.destroy(); break; case types::um_uni_dir_dl: c.destroy(); break; default: break; } } void rlc_cfg_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::am: c.init(); break; case types::um_bi_dir: c.init(); break; case types::um_uni_dir_ul: c.init(); break; case types::um_uni_dir_dl: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlc_cfg_c"); } } rlc_cfg_c::rlc_cfg_c(const rlc_cfg_c& other) { type_ = other.type(); switch (type_) { case types::am: c.init(other.c.get()); break; case types::um_bi_dir: c.init(other.c.get()); break; case types::um_uni_dir_ul: c.init(other.c.get()); break; case types::um_uni_dir_dl: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlc_cfg_c"); } } rlc_cfg_c& rlc_cfg_c::operator=(const rlc_cfg_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::am: c.set(other.c.get()); break; case types::um_bi_dir: c.set(other.c.get()); break; case types::um_uni_dir_ul: c.set(other.c.get()); break; case types::um_uni_dir_dl: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlc_cfg_c"); } return *this; } void rlc_cfg_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::am: j.write_fieldname("am"); j.start_obj(); j.write_fieldname("ul-AM-RLC"); c.get().ul_am_rlc.to_json(j); j.write_fieldname("dl-AM-RLC"); c.get().dl_am_rlc.to_json(j); j.end_obj(); break; case types::um_bi_dir: j.write_fieldname("um-Bi-Directional"); j.start_obj(); j.write_fieldname("ul-UM-RLC"); c.get().ul_um_rlc.to_json(j); j.write_fieldname("dl-UM-RLC"); c.get().dl_um_rlc.to_json(j); j.end_obj(); break; case types::um_uni_dir_ul: j.write_fieldname("um-Uni-Directional-UL"); j.start_obj(); j.write_fieldname("ul-UM-RLC"); c.get().ul_um_rlc.to_json(j); j.end_obj(); break; case types::um_uni_dir_dl: j.write_fieldname("um-Uni-Directional-DL"); j.start_obj(); j.write_fieldname("dl-UM-RLC"); c.get().dl_um_rlc.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "rlc_cfg_c"); } j.end_obj(); } SRSASN_CODE rlc_cfg_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::am: HANDLE_CODE(c.get().ul_am_rlc.pack(bref)); HANDLE_CODE(c.get().dl_am_rlc.pack(bref)); break; case types::um_bi_dir: HANDLE_CODE(c.get().ul_um_rlc.pack(bref)); HANDLE_CODE(c.get().dl_um_rlc.pack(bref)); break; case types::um_uni_dir_ul: HANDLE_CODE(c.get().ul_um_rlc.pack(bref)); break; case types::um_uni_dir_dl: HANDLE_CODE(c.get().dl_um_rlc.pack(bref)); break; default: log_invalid_choice_id(type_, "rlc_cfg_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::am: HANDLE_CODE(c.get().ul_am_rlc.unpack(bref)); HANDLE_CODE(c.get().dl_am_rlc.unpack(bref)); break; case types::um_bi_dir: HANDLE_CODE(c.get().ul_um_rlc.unpack(bref)); HANDLE_CODE(c.get().dl_um_rlc.unpack(bref)); break; case types::um_uni_dir_ul: HANDLE_CODE(c.get().ul_um_rlc.unpack(bref)); break; case types::um_uni_dir_dl: HANDLE_CODE(c.get().dl_um_rlc.unpack(bref)); break; default: log_invalid_choice_id(type_, "rlc_cfg_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RLC-Config-v1250 ::= SEQUENCE SRSASN_CODE rlc_cfg_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_extended_rlc_li_field_r12, 1)); HANDLE_CODE(bref.pack(dl_extended_rlc_li_field_r12, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_extended_rlc_li_field_r12, 1)); HANDLE_CODE(bref.unpack(dl_extended_rlc_li_field_r12, 1)); return SRSASN_SUCCESS; } void rlc_cfg_v1250_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("ul-extended-RLC-LI-Field-r12", ul_extended_rlc_li_field_r12); j.write_bool("dl-extended-RLC-LI-Field-r12", dl_extended_rlc_li_field_r12); j.end_obj(); } // RLC-Config-v1310 ::= SEQUENCE SRSASN_CODE rlc_cfg_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(poll_pdu_v1310_present, 1)); HANDLE_CODE(bref.pack(ul_extended_rlc_am_sn_r13, 1)); HANDLE_CODE(bref.pack(dl_extended_rlc_am_sn_r13, 1)); if (poll_pdu_v1310_present) { HANDLE_CODE(pack_enum(bref, poll_pdu_v1310)); } return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(poll_pdu_v1310_present, 1)); HANDLE_CODE(bref.unpack(ul_extended_rlc_am_sn_r13, 1)); HANDLE_CODE(bref.unpack(dl_extended_rlc_am_sn_r13, 1)); if (poll_pdu_v1310_present) { HANDLE_CODE(unpack_enum(poll_pdu_v1310, bref)); } return SRSASN_SUCCESS; } void rlc_cfg_v1310_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("ul-extended-RLC-AM-SN-r13", ul_extended_rlc_am_sn_r13); j.write_bool("dl-extended-RLC-AM-SN-r13", dl_extended_rlc_am_sn_r13); if (poll_pdu_v1310_present) { j.write_str("pollPDU-v1310", poll_pdu_v1310.to_string()); } j.end_obj(); } // RLC-Config-v1430 ::= CHOICE void rlc_cfg_v1430_c::set(types::options e) { type_ = e; } void rlc_cfg_v1430_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("pollByte-r14", c.poll_byte_r14.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "rlc_cfg_v1430_c"); } j.end_obj(); } SRSASN_CODE rlc_cfg_v1430_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.poll_byte_r14)); break; default: log_invalid_choice_id(type_, "rlc_cfg_v1430_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_v1430_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.poll_byte_r14, bref)); break; default: log_invalid_choice_id(type_, "rlc_cfg_v1430_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RLC-Config-v1510 ::= SEQUENCE SRSASN_CODE rlc_cfg_v1510_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_v1510_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void rlc_cfg_v1510_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("reestablishRLC-r15", "true"); j.end_obj(); } // RLC-Config-v1530 ::= CHOICE void rlc_cfg_v1530_c::set(types::options e) { type_ = e; } void rlc_cfg_v1530_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("rlc-OutOfOrderDelivery-r15", "true"); j.end_obj(); break; default: log_invalid_choice_id(type_, "rlc_cfg_v1530_c"); } j.end_obj(); } SRSASN_CODE rlc_cfg_v1530_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: break; default: log_invalid_choice_id(type_, "rlc_cfg_v1530_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_v1530_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: break; default: log_invalid_choice_id(type_, "rlc_cfg_v1530_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReject-v1320-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reject_v1320_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rrc_suspend_ind_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reject_v1320_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rrc_suspend_ind_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } void rrc_conn_reject_v1320_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rrc_suspend_ind_r13_present) { j.write_str("rrc-SuspendIndication-r13", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SPDCCH-Config-r15 ::= CHOICE void spdcch_cfg_r15_c::set(types::options e) { type_ = e; } void spdcch_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.spdcch_l1_reuse_ind_r15_present) { j.write_str("spdcch-L1-ReuseIndication-r15", c.spdcch_l1_reuse_ind_r15.to_string()); } if (c.spdcch_set_cfg_r15_present) { j.start_array("spdcch-SetConfig-r15"); for (uint32_t i1 = 0; i1 < c.spdcch_set_cfg_r15.size(); ++i1) { c.spdcch_set_cfg_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "spdcch_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE spdcch_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.spdcch_l1_reuse_ind_r15_present, 1)); HANDLE_CODE(bref.pack(c.spdcch_set_cfg_r15_present, 1)); if (c.spdcch_l1_reuse_ind_r15_present) { HANDLE_CODE(pack_enum(bref, c.spdcch_l1_reuse_ind_r15)); } if (c.spdcch_set_cfg_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.spdcch_set_cfg_r15, 1, 4)); } break; default: log_invalid_choice_id(type_, "spdcch_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE spdcch_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.spdcch_l1_reuse_ind_r15_present, 1)); HANDLE_CODE(bref.unpack(c.spdcch_set_cfg_r15_present, 1)); if (c.spdcch_l1_reuse_ind_r15_present) { HANDLE_CODE(unpack_enum(c.spdcch_l1_reuse_ind_r15, bref)); } if (c.spdcch_set_cfg_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.spdcch_set_cfg_r15, bref, 1, 4)); } break; default: log_invalid_choice_id(type_, "spdcch_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SPS-ConfigSL-r14 ::= SEQUENCE SRSASN_CODE sps_cfg_sl_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, sps_cfg_idx_r14, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pack_enum(bref, semi_persist_sched_interv_sl_r14)); return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_sl_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(sps_cfg_idx_r14, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_enum(semi_persist_sched_interv_sl_r14, bref)); return SRSASN_SUCCESS; } void sps_cfg_sl_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sps-ConfigIndex-r14", sps_cfg_idx_r14); j.write_str("semiPersistSchedIntervalSL-r14", semi_persist_sched_interv_sl_r14.to_string()); j.end_obj(); } // SPS-ConfigUL ::= CHOICE void sps_cfg_ul_c::set(types::options e) { type_ = e; } void sps_cfg_ul_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_c"); } j.end_obj(); } SRSASN_CODE sps_cfg_ul_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_ul_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_ul_c::setup_s_::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(p0_persistent_present, 1)); HANDLE_CODE(bref.pack(two_intervs_cfg_present, 1)); HANDLE_CODE(pack_enum(bref, semi_persist_sched_interv_ul)); HANDLE_CODE(pack_enum(bref, implicit_release_after)); if (p0_persistent_present) { HANDLE_CODE(pack_unalign_integer(bref, p0_persistent.p0_nominal_pusch_persistent, (int8_t)-126, (int8_t)24)); HANDLE_CODE(pack_unalign_integer(bref, p0_persistent.p0_ue_pusch_persistent, (int8_t)-8, (int8_t)7)); } if (ext) { ext_groups_header group_flags(4); rrc_asn1_warn_assert(p0_persistent_sf_set2_r12_present != (p0_persistent_sf_set2_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= p0_persistent_sf_set2_r12_present; group_flags[1] |= nof_conf_ul_sps_processes_r13_present; group_flags[2] |= fixed_rv_non_adaptive_r14_present; group_flags[2] |= sps_cfg_idx_r14_present; group_flags[2] |= semi_persist_sched_interv_ul_v1430_present; group_flags[3] |= cyclic_shift_sps_r15_present; group_flags[3] |= harq_proc_id_offset_r15_present; group_flags[3] |= rv_sps_ul_repeats_r15_present; rrc_asn1_warn_assert(tpc_pdcch_cfg_pusch_sps_r15_present != (tpc_pdcch_cfg_pusch_sps_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= tpc_pdcch_cfg_pusch_sps_r15_present; group_flags[3] |= total_num_pusch_sps_ul_repeats_r15_present; group_flags[3] |= sps_cfg_idx_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(p0_persistent_sf_set2_r12_present, 1)); if (p0_persistent_sf_set2_r12_present) { HANDLE_CODE(p0_persistent_sf_set2_r12->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(nof_conf_ul_sps_processes_r13_present, 1)); if (nof_conf_ul_sps_processes_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, nof_conf_ul_sps_processes_r13, (uint8_t)1, (uint8_t)8)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(fixed_rv_non_adaptive_r14_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_idx_r14_present, 1)); HANDLE_CODE(bref.pack(semi_persist_sched_interv_ul_v1430_present, 1)); if (sps_cfg_idx_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, sps_cfg_idx_r14, (uint8_t)1, (uint8_t)8)); } if (semi_persist_sched_interv_ul_v1430_present) { HANDLE_CODE(pack_enum(bref, semi_persist_sched_interv_ul_v1430)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cyclic_shift_sps_r15_present, 1)); HANDLE_CODE(bref.pack(harq_proc_id_offset_r15_present, 1)); HANDLE_CODE(bref.pack(rv_sps_ul_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(tpc_pdcch_cfg_pusch_sps_r15_present, 1)); HANDLE_CODE(bref.pack(total_num_pusch_sps_ul_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_idx_r15_present, 1)); if (cyclic_shift_sps_r15_present) { HANDLE_CODE(pack_enum(bref, cyclic_shift_sps_r15)); } if (harq_proc_id_offset_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, harq_proc_id_offset_r15, (uint8_t)0, (uint8_t)7)); } if (rv_sps_ul_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, rv_sps_ul_repeats_r15)); } if (tpc_pdcch_cfg_pusch_sps_r15_present) { HANDLE_CODE(tpc_pdcch_cfg_pusch_sps_r15->pack(bref)); } if (total_num_pusch_sps_ul_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, total_num_pusch_sps_ul_repeats_r15)); } if (sps_cfg_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, sps_cfg_idx_r15, (uint8_t)1, (uint8_t)6)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_ul_c::setup_s_::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(p0_persistent_present, 1)); HANDLE_CODE(bref.unpack(two_intervs_cfg_present, 1)); HANDLE_CODE(unpack_enum(semi_persist_sched_interv_ul, bref)); HANDLE_CODE(unpack_enum(implicit_release_after, bref)); if (p0_persistent_present) { HANDLE_CODE(unpack_unalign_integer(p0_persistent.p0_nominal_pusch_persistent, bref, (int8_t)-126, (int8_t)24)); HANDLE_CODE(unpack_unalign_integer(p0_persistent.p0_ue_pusch_persistent, bref, (int8_t)-8, (int8_t)7)); } if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(p0_persistent_sf_set2_r12_present, 1)); if (p0_persistent_sf_set2_r12_present) { p0_persistent_sf_set2_r12 = make_copy_ptr(p0_persistent_sf_set2_r12_c_()); HANDLE_CODE(p0_persistent_sf_set2_r12->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(nof_conf_ul_sps_processes_r13_present, 1)); if (nof_conf_ul_sps_processes_r13_present) { HANDLE_CODE(unpack_unalign_integer(nof_conf_ul_sps_processes_r13, bref, (uint8_t)1, (uint8_t)8)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(fixed_rv_non_adaptive_r14_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_idx_r14_present, 1)); HANDLE_CODE(bref.unpack(semi_persist_sched_interv_ul_v1430_present, 1)); if (sps_cfg_idx_r14_present) { HANDLE_CODE(unpack_unalign_integer(sps_cfg_idx_r14, bref, (uint8_t)1, (uint8_t)8)); } if (semi_persist_sched_interv_ul_v1430_present) { HANDLE_CODE(unpack_enum(semi_persist_sched_interv_ul_v1430, bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cyclic_shift_sps_r15_present, 1)); HANDLE_CODE(bref.unpack(harq_proc_id_offset_r15_present, 1)); HANDLE_CODE(bref.unpack(rv_sps_ul_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(tpc_pdcch_cfg_pusch_sps_r15_present, 1)); HANDLE_CODE(bref.unpack(total_num_pusch_sps_ul_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_idx_r15_present, 1)); if (cyclic_shift_sps_r15_present) { HANDLE_CODE(unpack_enum(cyclic_shift_sps_r15, bref)); } if (harq_proc_id_offset_r15_present) { HANDLE_CODE(unpack_unalign_integer(harq_proc_id_offset_r15, bref, (uint8_t)0, (uint8_t)7)); } if (rv_sps_ul_repeats_r15_present) { HANDLE_CODE(unpack_enum(rv_sps_ul_repeats_r15, bref)); } if (tpc_pdcch_cfg_pusch_sps_r15_present) { tpc_pdcch_cfg_pusch_sps_r15 = make_copy_ptr(tpc_pdcch_cfg_c()); HANDLE_CODE(tpc_pdcch_cfg_pusch_sps_r15->unpack(bref)); } if (total_num_pusch_sps_ul_repeats_r15_present) { HANDLE_CODE(unpack_enum(total_num_pusch_sps_ul_repeats_r15, bref)); } if (sps_cfg_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(sps_cfg_idx_r15, bref, (uint8_t)1, (uint8_t)6)); } } } return SRSASN_SUCCESS; } void sps_cfg_ul_c::setup_s_::to_json(json_writer& j) const { j.start_obj(); j.write_str("semiPersistSchedIntervalUL", semi_persist_sched_interv_ul.to_string()); j.write_str("implicitReleaseAfter", implicit_release_after.to_string()); if (p0_persistent_present) { j.write_fieldname("p0-Persistent"); j.start_obj(); j.write_int("p0-NominalPUSCH-Persistent", p0_persistent.p0_nominal_pusch_persistent); j.write_int("p0-UE-PUSCH-Persistent", p0_persistent.p0_ue_pusch_persistent); j.end_obj(); } if (two_intervs_cfg_present) { j.write_str("twoIntervalsConfig", "true"); } if (ext) { rrc_asn1_warn_assert(p0_persistent_sf_set2_r12_present != (p0_persistent_sf_set2_r12.get() != NULL), __FILE__, __LINE__); if (p0_persistent_sf_set2_r12_present) { j.write_fieldname("p0-PersistentSubframeSet2-r12"); p0_persistent_sf_set2_r12->to_json(j); } if (nof_conf_ul_sps_processes_r13_present) { j.write_int("numberOfConfUlSPS-Processes-r13", nof_conf_ul_sps_processes_r13); } if (fixed_rv_non_adaptive_r14_present) { j.write_str("fixedRV-NonAdaptive-r14", "true"); } if (sps_cfg_idx_r14_present) { j.write_int("sps-ConfigIndex-r14", sps_cfg_idx_r14); } if (semi_persist_sched_interv_ul_v1430_present) { j.write_str("semiPersistSchedIntervalUL-v1430", semi_persist_sched_interv_ul_v1430.to_string()); } if (cyclic_shift_sps_r15_present) { j.write_str("cyclicShiftSPS-r15", cyclic_shift_sps_r15.to_string()); } if (harq_proc_id_offset_r15_present) { j.write_int("harq-ProcID-Offset-r15", harq_proc_id_offset_r15); } if (rv_sps_ul_repeats_r15_present) { j.write_str("rv-SPS-UL-Repetitions-r15", rv_sps_ul_repeats_r15.to_string()); } rrc_asn1_warn_assert(tpc_pdcch_cfg_pusch_sps_r15_present != (tpc_pdcch_cfg_pusch_sps_r15.get() != NULL), __FILE__, __LINE__); if (tpc_pdcch_cfg_pusch_sps_r15_present) { j.write_fieldname("tpc-PDCCH-ConfigPUSCH-SPS-r15"); tpc_pdcch_cfg_pusch_sps_r15->to_json(j); } if (total_num_pusch_sps_ul_repeats_r15_present) { j.write_str("totalNumberPUSCH-SPS-UL-Repetitions-r15", total_num_pusch_sps_ul_repeats_r15.to_string()); } if (sps_cfg_idx_r15_present) { j.write_int("sps-ConfigIndex-r15", sps_cfg_idx_r15); } } j.end_obj(); } void sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::set(types::options e) { type_ = e; } void sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("p0-NominalPUSCH-PersistentSubframeSet2-r12", c.p0_nominal_pusch_persistent_sf_set2_r12); j.write_int("p0-UE-PUSCH-PersistentSubframeSet2-r12", c.p0_ue_pusch_persistent_sf_set2_r12); j.end_obj(); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_"); } j.end_obj(); } SRSASN_CODE sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.p0_nominal_pusch_persistent_sf_set2_r12, (int8_t)-126, (int8_t)24)); HANDLE_CODE(pack_unalign_integer(bref, c.p0_ue_pusch_persistent_sf_set2_r12, (int8_t)-8, (int8_t)7)); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.p0_nominal_pusch_persistent_sf_set2_r12, bref, (int8_t)-126, (int8_t)24)); HANDLE_CODE(unpack_unalign_integer(c.p0_ue_pusch_persistent_sf_set2_r12, bref, (int8_t)-8, (int8_t)7)); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SPS-ConfigUL-STTI-r15 ::= CHOICE void sps_cfg_ul_stti_r15_c::set(types::options e) { type_ = e; } void sps_cfg_ul_stti_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("semiPersistSchedIntervalUL-STTI-r15", c.semi_persist_sched_interv_ul_stti_r15.to_string()); j.write_str("implicitReleaseAfter", c.implicit_release_after.to_string()); if (c.p0_persistent_r15_present) { j.write_fieldname("p0-Persistent-r15"); j.start_obj(); j.write_int("p0-NominalSPUSCH-Persistent-r15", c.p0_persistent_r15.p0_nominal_spusch_persistent_r15); j.write_int("p0-UE-SPUSCH-Persistent-r15", c.p0_persistent_r15.p0_ue_spusch_persistent_r15); j.end_obj(); } if (c.two_intervs_cfg_r15_present) { j.write_str("twoIntervalsConfig-r15", "true"); } if (c.p0_persistent_sf_set2_r15_present) { j.write_fieldname("p0-PersistentSubframeSet2-r15"); c.p0_persistent_sf_set2_r15.to_json(j); } if (c.nof_conf_ul_sps_processes_stti_r15_present) { j.write_int("numberOfConfUL-SPS-Processes-STTI-r15", c.nof_conf_ul_sps_processes_stti_r15); } j.write_int("sTTI-StartTimeUL-r15", c.s_tti_start_time_ul_r15); if (c.tpc_pdcch_cfg_pusch_sps_r15_present) { j.write_fieldname("tpc-PDCCH-ConfigPUSCH-SPS-r15"); c.tpc_pdcch_cfg_pusch_sps_r15.to_json(j); } if (c.cyclic_shift_sps_s_tti_r15_present) { j.write_str("cyclicShiftSPS-sTTI-r15", c.cyclic_shift_sps_s_tti_r15.to_string()); } if (c.ifdma_cfg_sps_r15_present) { j.write_bool("ifdma-Config-SPS-r15", c.ifdma_cfg_sps_r15); } if (c.harq_proc_id_offset_r15_present) { j.write_int("harq-ProcID-offset-r15", c.harq_proc_id_offset_r15); } if (c.rv_sps_stti_ul_repeats_r15_present) { j.write_str("rv-SPS-STTI-UL-Repetitions-r15", c.rv_sps_stti_ul_repeats_r15.to_string()); } if (c.sps_cfg_idx_r15_present) { j.write_int("sps-ConfigIndex-r15", c.sps_cfg_idx_r15); } if (c.tbs_scaling_factor_subslot_sps_ul_repeats_r15_present) { j.write_str("tbs-scalingFactorSubslotSPS-UL-Repetitions-r15", c.tbs_scaling_factor_subslot_sps_ul_repeats_r15.to_string()); } if (c.total_num_pusch_sps_stti_ul_repeats_r15_present) { j.write_str("totalNumberPUSCH-SPS-STTI-UL-Repetitions-r15", c.total_num_pusch_sps_stti_ul_repeats_r15.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_stti_r15_c"); } j.end_obj(); } SRSASN_CODE sps_cfg_ul_stti_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.p0_persistent_r15_present, 1)); HANDLE_CODE(bref.pack(c.two_intervs_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.p0_persistent_sf_set2_r15_present, 1)); HANDLE_CODE(bref.pack(c.nof_conf_ul_sps_processes_stti_r15_present, 1)); HANDLE_CODE(bref.pack(c.tpc_pdcch_cfg_pusch_sps_r15_present, 1)); HANDLE_CODE(bref.pack(c.cyclic_shift_sps_s_tti_r15_present, 1)); HANDLE_CODE(bref.pack(c.ifdma_cfg_sps_r15_present, 1)); HANDLE_CODE(bref.pack(c.harq_proc_id_offset_r15_present, 1)); HANDLE_CODE(bref.pack(c.rv_sps_stti_ul_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.sps_cfg_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.tbs_scaling_factor_subslot_sps_ul_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.total_num_pusch_sps_stti_ul_repeats_r15_present, 1)); HANDLE_CODE(pack_enum(bref, c.semi_persist_sched_interv_ul_stti_r15)); HANDLE_CODE(pack_enum(bref, c.implicit_release_after)); if (c.p0_persistent_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, c.p0_persistent_r15.p0_nominal_spusch_persistent_r15, (int8_t)-126, (int8_t)24)); HANDLE_CODE(pack_unalign_integer(bref, c.p0_persistent_r15.p0_ue_spusch_persistent_r15, (int8_t)-8, (int8_t)7)); } if (c.p0_persistent_sf_set2_r15_present) { HANDLE_CODE(c.p0_persistent_sf_set2_r15.pack(bref)); } if (c.nof_conf_ul_sps_processes_stti_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.nof_conf_ul_sps_processes_stti_r15, (uint8_t)1, (uint8_t)12)); } HANDLE_CODE(pack_unalign_integer(bref, c.s_tti_start_time_ul_r15, (uint8_t)0, (uint8_t)5)); if (c.tpc_pdcch_cfg_pusch_sps_r15_present) { HANDLE_CODE(c.tpc_pdcch_cfg_pusch_sps_r15.pack(bref)); } if (c.cyclic_shift_sps_s_tti_r15_present) { HANDLE_CODE(pack_enum(bref, c.cyclic_shift_sps_s_tti_r15)); } if (c.ifdma_cfg_sps_r15_present) { HANDLE_CODE(bref.pack(c.ifdma_cfg_sps_r15, 1)); } if (c.harq_proc_id_offset_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.harq_proc_id_offset_r15, (uint8_t)0, (uint8_t)15)); } if (c.rv_sps_stti_ul_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.rv_sps_stti_ul_repeats_r15)); } if (c.sps_cfg_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.sps_cfg_idx_r15, (uint8_t)1, (uint8_t)6)); } if (c.tbs_scaling_factor_subslot_sps_ul_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.tbs_scaling_factor_subslot_sps_ul_repeats_r15)); } if (c.total_num_pusch_sps_stti_ul_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.total_num_pusch_sps_stti_ul_repeats_r15)); } break; default: log_invalid_choice_id(type_, "sps_cfg_ul_stti_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_ul_stti_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.p0_persistent_r15_present, 1)); HANDLE_CODE(bref.unpack(c.two_intervs_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.p0_persistent_sf_set2_r15_present, 1)); HANDLE_CODE(bref.unpack(c.nof_conf_ul_sps_processes_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.tpc_pdcch_cfg_pusch_sps_r15_present, 1)); HANDLE_CODE(bref.unpack(c.cyclic_shift_sps_s_tti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.ifdma_cfg_sps_r15_present, 1)); HANDLE_CODE(bref.unpack(c.harq_proc_id_offset_r15_present, 1)); HANDLE_CODE(bref.unpack(c.rv_sps_stti_ul_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.sps_cfg_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.tbs_scaling_factor_subslot_sps_ul_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.total_num_pusch_sps_stti_ul_repeats_r15_present, 1)); HANDLE_CODE(unpack_enum(c.semi_persist_sched_interv_ul_stti_r15, bref)); HANDLE_CODE(unpack_enum(c.implicit_release_after, bref)); if (c.p0_persistent_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.p0_persistent_r15.p0_nominal_spusch_persistent_r15, bref, (int8_t)-126, (int8_t)24)); HANDLE_CODE( unpack_unalign_integer(c.p0_persistent_r15.p0_ue_spusch_persistent_r15, bref, (int8_t)-8, (int8_t)7)); } if (c.p0_persistent_sf_set2_r15_present) { HANDLE_CODE(c.p0_persistent_sf_set2_r15.unpack(bref)); } if (c.nof_conf_ul_sps_processes_stti_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.nof_conf_ul_sps_processes_stti_r15, bref, (uint8_t)1, (uint8_t)12)); } HANDLE_CODE(unpack_unalign_integer(c.s_tti_start_time_ul_r15, bref, (uint8_t)0, (uint8_t)5)); if (c.tpc_pdcch_cfg_pusch_sps_r15_present) { HANDLE_CODE(c.tpc_pdcch_cfg_pusch_sps_r15.unpack(bref)); } if (c.cyclic_shift_sps_s_tti_r15_present) { HANDLE_CODE(unpack_enum(c.cyclic_shift_sps_s_tti_r15, bref)); } if (c.ifdma_cfg_sps_r15_present) { HANDLE_CODE(bref.unpack(c.ifdma_cfg_sps_r15, 1)); } if (c.harq_proc_id_offset_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.harq_proc_id_offset_r15, bref, (uint8_t)0, (uint8_t)15)); } if (c.rv_sps_stti_ul_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.rv_sps_stti_ul_repeats_r15, bref)); } if (c.sps_cfg_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.sps_cfg_idx_r15, bref, (uint8_t)1, (uint8_t)6)); } if (c.tbs_scaling_factor_subslot_sps_ul_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.tbs_scaling_factor_subslot_sps_ul_repeats_r15, bref)); } if (c.total_num_pusch_sps_stti_ul_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.total_num_pusch_sps_stti_ul_repeats_r15, bref)); } break; default: log_invalid_choice_id(type_, "sps_cfg_ul_stti_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::set(types::options e) { type_ = e; } void sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("p0-NominalSPUSCH-PersistentSubframeSet2-r15", c.p0_nominal_spusch_persistent_sf_set2_r15); j.write_int("p0-UE-SPUSCH-PersistentSubframeSet2-r15", c.p0_ue_spusch_persistent_sf_set2_r15); j.end_obj(); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_"); } j.end_obj(); } SRSASN_CODE sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.p0_nominal_spusch_persistent_sf_set2_r15, (int8_t)-126, (int8_t)24)); HANDLE_CODE(pack_unalign_integer(bref, c.p0_ue_spusch_persistent_sf_set2_r15, (int8_t)-8, (int8_t)7)); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.p0_nominal_spusch_persistent_sf_set2_r15, bref, (int8_t)-126, (int8_t)24)); HANDLE_CODE(unpack_unalign_integer(c.p0_ue_spusch_persistent_sf_set2_r15, bref, (int8_t)-8, (int8_t)7)); break; default: log_invalid_choice_id(type_, "sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SPUCCH-Config-r15 ::= CHOICE void spucch_cfg_r15_c::set(types::options e) { type_ = e; } void spucch_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.spucch_set_r15_present) { j.start_array("spucch-Set-r15"); for (uint32_t i1 = 0; i1 < c.spucch_set_r15.size(); ++i1) { c.spucch_set_r15[i1].to_json(j); } j.end_array(); } if (c.two_ant_port_activ_spucch_format1a1b_r15_present) { j.write_str("twoAntennaPortActivatedSPUCCH-Format1a1b-r15", "true"); } j.write_fieldname("twoAntennaPortActivatedSPUCCH-Format3-r15"); j.start_obj(); j.start_array("n3SPUCCH-AN-List-r15"); for (uint32_t i1 = 0; i1 < c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15.size(); ++i1) { j.write_int(c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15[i1]); } j.end_array(); j.end_obj(); j.end_obj(); break; default: log_invalid_choice_id(type_, "spucch_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE spucch_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.spucch_set_r15_present, 1)); HANDLE_CODE(bref.pack(c.two_ant_port_activ_spucch_format1a1b_r15_present, 1)); if (c.spucch_set_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.spucch_set_r15, 1, 4)); } HANDLE_CODE(pack_dyn_seq_of(bref, c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15, 1, 4, UnalignedIntegerPacker(0, 549))); break; default: log_invalid_choice_id(type_, "spucch_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE spucch_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.spucch_set_r15_present, 1)); HANDLE_CODE(bref.unpack(c.two_ant_port_activ_spucch_format1a1b_r15_present, 1)); if (c.spucch_set_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.spucch_set_r15, bref, 1, 4)); } HANDLE_CODE(unpack_dyn_seq_of(c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15, bref, 1, 4, UnalignedIntegerPacker(0, 549))); break; default: log_invalid_choice_id(type_, "spucch_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SRS-CC-SetIndex-r14 ::= SEQUENCE SRSASN_CODE srs_cc_set_idx_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cc_set_idx_r14, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_unalign_integer(bref, cc_idx_in_one_cc_set_r14, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE srs_cc_set_idx_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cc_set_idx_r14, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_unalign_integer(cc_idx_in_one_cc_set_r14, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void srs_cc_set_idx_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cc-SetIndex-r14", cc_set_idx_r14); j.write_int("cc-IndexInOneCC-Set-r14", cc_idx_in_one_cc_set_r14); j.end_obj(); } // SRS-ConfigAp-r10 ::= SEQUENCE SRSASN_CODE srs_cfg_ap_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, srs_ant_port_ap_r10)); HANDLE_CODE(pack_enum(bref, srs_bw_ap_r10)); HANDLE_CODE(pack_unalign_integer(bref, freq_domain_position_ap_r10, (uint8_t)0, (uint8_t)23)); HANDLE_CODE(pack_unalign_integer(bref, tx_comb_ap_r10, (uint8_t)0, (uint8_t)1)); HANDLE_CODE(pack_enum(bref, cyclic_shift_ap_r10)); return SRSASN_SUCCESS; } SRSASN_CODE srs_cfg_ap_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(srs_ant_port_ap_r10, bref)); HANDLE_CODE(unpack_enum(srs_bw_ap_r10, bref)); HANDLE_CODE(unpack_unalign_integer(freq_domain_position_ap_r10, bref, (uint8_t)0, (uint8_t)23)); HANDLE_CODE(unpack_unalign_integer(tx_comb_ap_r10, bref, (uint8_t)0, (uint8_t)1)); HANDLE_CODE(unpack_enum(cyclic_shift_ap_r10, bref)); return SRSASN_SUCCESS; } void srs_cfg_ap_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("srs-AntennaPortAp-r10", srs_ant_port_ap_r10.to_string()); j.write_str("srs-BandwidthAp-r10", srs_bw_ap_r10.to_string()); j.write_int("freqDomainPositionAp-r10", freq_domain_position_ap_r10); j.write_int("transmissionCombAp-r10", tx_comb_ap_r10); j.write_str("cyclicShiftAp-r10", cyclic_shift_ap_r10.to_string()); j.end_obj(); } // SRS-ConfigAp-r13 ::= SEQUENCE SRSASN_CODE srs_cfg_ap_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, srs_ant_port_ap_r13)); HANDLE_CODE(pack_enum(bref, srs_bw_ap_r13)); HANDLE_CODE(pack_unalign_integer(bref, freq_domain_position_ap_r13, (uint8_t)0, (uint8_t)23)); HANDLE_CODE(pack_unalign_integer(bref, tx_comb_ap_r13, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_enum(bref, cyclic_shift_ap_r13)); HANDLE_CODE(pack_enum(bref, tx_comb_num_r13)); return SRSASN_SUCCESS; } SRSASN_CODE srs_cfg_ap_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(srs_ant_port_ap_r13, bref)); HANDLE_CODE(unpack_enum(srs_bw_ap_r13, bref)); HANDLE_CODE(unpack_unalign_integer(freq_domain_position_ap_r13, bref, (uint8_t)0, (uint8_t)23)); HANDLE_CODE(unpack_unalign_integer(tx_comb_ap_r13, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_enum(cyclic_shift_ap_r13, bref)); HANDLE_CODE(unpack_enum(tx_comb_num_r13, bref)); return SRSASN_SUCCESS; } void srs_cfg_ap_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("srs-AntennaPortAp-r13", srs_ant_port_ap_r13.to_string()); j.write_str("srs-BandwidthAp-r13", srs_bw_ap_r13.to_string()); j.write_int("freqDomainPositionAp-r13", freq_domain_position_ap_r13); j.write_int("transmissionCombAp-r13", tx_comb_ap_r13); j.write_str("cyclicShiftAp-r13", cyclic_shift_ap_r13.to_string()); j.write_str("transmissionCombNum-r13", tx_comb_num_r13.to_string()); j.end_obj(); } // SRS-ConfigAp-v1310 ::= SEQUENCE SRSASN_CODE srs_cfg_ap_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tx_comb_ap_v1310_present, 1)); HANDLE_CODE(bref.pack(cyclic_shift_ap_v1310_present, 1)); HANDLE_CODE(bref.pack(tx_comb_num_r13_present, 1)); if (tx_comb_ap_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, tx_comb_ap_v1310, (uint8_t)2, (uint8_t)3)); } if (cyclic_shift_ap_v1310_present) { HANDLE_CODE(pack_enum(bref, cyclic_shift_ap_v1310)); } if (tx_comb_num_r13_present) { HANDLE_CODE(pack_enum(bref, tx_comb_num_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE srs_cfg_ap_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tx_comb_ap_v1310_present, 1)); HANDLE_CODE(bref.unpack(cyclic_shift_ap_v1310_present, 1)); HANDLE_CODE(bref.unpack(tx_comb_num_r13_present, 1)); if (tx_comb_ap_v1310_present) { HANDLE_CODE(unpack_unalign_integer(tx_comb_ap_v1310, bref, (uint8_t)2, (uint8_t)3)); } if (cyclic_shift_ap_v1310_present) { HANDLE_CODE(unpack_enum(cyclic_shift_ap_v1310, bref)); } if (tx_comb_num_r13_present) { HANDLE_CODE(unpack_enum(tx_comb_num_r13, bref)); } return SRSASN_SUCCESS; } void srs_cfg_ap_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (tx_comb_ap_v1310_present) { j.write_int("transmissionCombAp-v1310", tx_comb_ap_v1310); } if (cyclic_shift_ap_v1310_present) { j.write_str("cyclicShiftAp-v1310", cyclic_shift_ap_v1310.to_string()); } if (tx_comb_num_r13_present) { j.write_str("transmissionCombNum-r13", tx_comb_num_r13.to_string()); } j.end_obj(); } // STAG-ToAddMod-r11 ::= SEQUENCE SRSASN_CODE stag_to_add_mod_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, stag_id_r11, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(pack_enum(bref, time_align_timer_stag_r11)); return SRSASN_SUCCESS; } SRSASN_CODE stag_to_add_mod_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(stag_id_r11, bref, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(unpack_enum(time_align_timer_stag_r11, bref)); return SRSASN_SUCCESS; } void stag_to_add_mod_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("stag-Id-r11", stag_id_r11); j.write_str("timeAlignmentTimerSTAG-r11", time_align_timer_stag_r11.to_string()); j.end_obj(); } // SchedulingRequestConfig-v1530 ::= CHOICE void sched_request_cfg_v1530_c::set(types::options e) { type_ = e; } void sched_request_cfg_v1530_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.sr_slot_spucch_idx_fh_r15_present) { j.write_int("sr-SlotSPUCCH-IndexFH-r15", c.sr_slot_spucch_idx_fh_r15); } if (c.sr_slot_spucch_idx_no_fh_r15_present) { j.write_int("sr-SlotSPUCCH-IndexNoFH-r15", c.sr_slot_spucch_idx_no_fh_r15); } if (c.sr_subslot_spucch_res_list_r15_present) { j.start_array("sr-SubslotSPUCCH-ResourceList-r15"); for (uint32_t i1 = 0; i1 < c.sr_subslot_spucch_res_list_r15.size(); ++i1) { j.write_int(c.sr_subslot_spucch_res_list_r15[i1]); } j.end_array(); } if (c.sr_cfg_idx_slot_r15_present) { j.write_int("sr-ConfigIndexSlot-r15", c.sr_cfg_idx_slot_r15); } if (c.sr_cfg_idx_subslot_r15_present) { j.write_int("sr-ConfigIndexSubslot-r15", c.sr_cfg_idx_subslot_r15); } j.write_str("dssr-TransMax-r15", c.dssr_trans_max_r15.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "sched_request_cfg_v1530_c"); } j.end_obj(); } SRSASN_CODE sched_request_cfg_v1530_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.sr_slot_spucch_idx_fh_r15_present, 1)); HANDLE_CODE(bref.pack(c.sr_slot_spucch_idx_no_fh_r15_present, 1)); HANDLE_CODE(bref.pack(c.sr_subslot_spucch_res_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.sr_cfg_idx_slot_r15_present, 1)); HANDLE_CODE(bref.pack(c.sr_cfg_idx_subslot_r15_present, 1)); if (c.sr_slot_spucch_idx_fh_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.sr_slot_spucch_idx_fh_r15, (uint16_t)0, (uint16_t)1319)); } if (c.sr_slot_spucch_idx_no_fh_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.sr_slot_spucch_idx_no_fh_r15, (uint16_t)0, (uint16_t)3959)); } if (c.sr_subslot_spucch_res_list_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.sr_subslot_spucch_res_list_r15, 1, 4, UnalignedIntegerPacker(0, 1319))); } if (c.sr_cfg_idx_slot_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.sr_cfg_idx_slot_r15, (uint8_t)0, (uint8_t)36)); } if (c.sr_cfg_idx_subslot_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.sr_cfg_idx_subslot_r15, (uint8_t)0, (uint8_t)122)); } HANDLE_CODE(pack_enum(bref, c.dssr_trans_max_r15)); break; default: log_invalid_choice_id(type_, "sched_request_cfg_v1530_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sched_request_cfg_v1530_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.sr_slot_spucch_idx_fh_r15_present, 1)); HANDLE_CODE(bref.unpack(c.sr_slot_spucch_idx_no_fh_r15_present, 1)); HANDLE_CODE(bref.unpack(c.sr_subslot_spucch_res_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.sr_cfg_idx_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(c.sr_cfg_idx_subslot_r15_present, 1)); if (c.sr_slot_spucch_idx_fh_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.sr_slot_spucch_idx_fh_r15, bref, (uint16_t)0, (uint16_t)1319)); } if (c.sr_slot_spucch_idx_no_fh_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.sr_slot_spucch_idx_no_fh_r15, bref, (uint16_t)0, (uint16_t)3959)); } if (c.sr_subslot_spucch_res_list_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(c.sr_subslot_spucch_res_list_r15, bref, 1, 4, UnalignedIntegerPacker(0, 1319))); } if (c.sr_cfg_idx_slot_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.sr_cfg_idx_slot_r15, bref, (uint8_t)0, (uint8_t)36)); } if (c.sr_cfg_idx_subslot_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.sr_cfg_idx_subslot_r15, bref, (uint8_t)0, (uint8_t)122)); } HANDLE_CODE(unpack_enum(c.dssr_trans_max_r15, bref)); break; default: log_invalid_choice_id(type_, "sched_request_cfg_v1530_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ShortTTI-r15 ::= SEQUENCE SRSASN_CODE short_tti_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dl_stti_len_r15_present, 1)); HANDLE_CODE(bref.pack(ul_stti_len_r15_present, 1)); if (dl_stti_len_r15_present) { HANDLE_CODE(pack_enum(bref, dl_stti_len_r15)); } if (ul_stti_len_r15_present) { HANDLE_CODE(pack_enum(bref, ul_stti_len_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE short_tti_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dl_stti_len_r15_present, 1)); HANDLE_CODE(bref.unpack(ul_stti_len_r15_present, 1)); if (dl_stti_len_r15_present) { HANDLE_CODE(unpack_enum(dl_stti_len_r15, bref)); } if (ul_stti_len_r15_present) { HANDLE_CODE(unpack_enum(ul_stti_len_r15, bref)); } return SRSASN_SUCCESS; } void short_tti_r15_s::to_json(json_writer& j) const { j.start_obj(); if (dl_stti_len_r15_present) { j.write_str("dl-STTI-Length-r15", dl_stti_len_r15.to_string()); } if (ul_stti_len_r15_present) { j.write_str("ul-STTI-Length-r15", ul_stti_len_r15.to_string()); } j.end_obj(); } // SlotOrSubslotPDSCH-Config-r15 ::= CHOICE void slot_or_subslot_pdsch_cfg_r15_c::set(types::options e) { type_ = e; } void slot_or_subslot_pdsch_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.alt_cqi_table_stti_r15_present) { j.write_str("altCQI-TableSTTI-r15", c.alt_cqi_table_stti_r15.to_string()); } if (c.alt_cqi_table1024_qam_stti_r15_present) { j.write_str("altCQI-Table1024QAM-STTI-r15", c.alt_cqi_table1024_qam_stti_r15.to_string()); } if (c.res_alloc_r15_present) { j.write_str("resourceAllocation-r15", c.res_alloc_r15.to_string()); } if (c.tbs_idx_alt_stti_r15_present) { j.write_str("tbsIndexAlt-STTI-r15", "a33"); } if (c.tbs_idx_alt2_stti_r15_present) { j.write_str("tbsIndexAlt2-STTI-r15", "b33"); } if (c.tbs_idx_alt3_stti_r15_present) { j.write_str("tbsIndexAlt3-STTI-r15", "a37"); } j.end_obj(); break; default: log_invalid_choice_id(type_, "slot_or_subslot_pdsch_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE slot_or_subslot_pdsch_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.alt_cqi_table_stti_r15_present, 1)); HANDLE_CODE(bref.pack(c.alt_cqi_table1024_qam_stti_r15_present, 1)); HANDLE_CODE(bref.pack(c.res_alloc_r15_present, 1)); HANDLE_CODE(bref.pack(c.tbs_idx_alt_stti_r15_present, 1)); HANDLE_CODE(bref.pack(c.tbs_idx_alt2_stti_r15_present, 1)); HANDLE_CODE(bref.pack(c.tbs_idx_alt3_stti_r15_present, 1)); if (c.alt_cqi_table_stti_r15_present) { HANDLE_CODE(pack_enum(bref, c.alt_cqi_table_stti_r15)); } if (c.alt_cqi_table1024_qam_stti_r15_present) { HANDLE_CODE(pack_enum(bref, c.alt_cqi_table1024_qam_stti_r15)); } if (c.res_alloc_r15_present) { HANDLE_CODE(pack_enum(bref, c.res_alloc_r15)); } break; default: log_invalid_choice_id(type_, "slot_or_subslot_pdsch_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE slot_or_subslot_pdsch_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.alt_cqi_table_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.alt_cqi_table1024_qam_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.res_alloc_r15_present, 1)); HANDLE_CODE(bref.unpack(c.tbs_idx_alt_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.tbs_idx_alt2_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.tbs_idx_alt3_stti_r15_present, 1)); if (c.alt_cqi_table_stti_r15_present) { HANDLE_CODE(unpack_enum(c.alt_cqi_table_stti_r15, bref)); } if (c.alt_cqi_table1024_qam_stti_r15_present) { HANDLE_CODE(unpack_enum(c.alt_cqi_table1024_qam_stti_r15, bref)); } if (c.res_alloc_r15_present) { HANDLE_CODE(unpack_enum(c.res_alloc_r15, bref)); } break; default: log_invalid_choice_id(type_, "slot_or_subslot_pdsch_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SlotOrSubslotPUSCH-Config-r15 ::= CHOICE void slot_or_subslot_pusch_cfg_r15_c::set(types::options e) { type_ = e; } void slot_or_subslot_pusch_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.beta_offset_slot_ack_idx_r15_present) { j.write_int("betaOffsetSlot-ACK-Index-r15", c.beta_offset_slot_ack_idx_r15); } if (c.beta_offset2_slot_ack_idx_r15_present) { j.write_int("betaOffset2Slot-ACK-Index-r15", c.beta_offset2_slot_ack_idx_r15); } if (c.beta_offset_subslot_ack_idx_r15_present) { j.start_array("betaOffsetSubslot-ACK-Index-r15"); for (uint32_t i1 = 0; i1 < c.beta_offset_subslot_ack_idx_r15.size(); ++i1) { j.write_int(c.beta_offset_subslot_ack_idx_r15[i1]); } j.end_array(); } if (c.beta_offset2_subslot_ack_idx_r15_present) { j.start_array("betaOffset2Subslot-ACK-Index-r15"); for (uint32_t i1 = 0; i1 < c.beta_offset2_subslot_ack_idx_r15.size(); ++i1) { j.write_int(c.beta_offset2_subslot_ack_idx_r15[i1]); } j.end_array(); } if (c.beta_offset_slot_ri_idx_r15_present) { j.write_int("betaOffsetSlot-RI-Index-r15", c.beta_offset_slot_ri_idx_r15); } if (c.beta_offset_subslot_ri_idx_r15_present) { j.start_array("betaOffsetSubslot-RI-Index-r15"); for (uint32_t i1 = 0; i1 < c.beta_offset_subslot_ri_idx_r15.size(); ++i1) { j.write_int(c.beta_offset_subslot_ri_idx_r15[i1]); } j.end_array(); } if (c.beta_offset_slot_cqi_idx_r15_present) { j.write_int("betaOffsetSlot-CQI-Index-r15", c.beta_offset_slot_cqi_idx_r15); } if (c.beta_offset_subslot_cqi_idx_r15_present) { j.write_int("betaOffsetSubslot-CQI-Index-r15", c.beta_offset_subslot_cqi_idx_r15); } if (c.enable256_qam_slot_or_subslot_r15_present) { j.write_fieldname("enable256QAM-SlotOrSubslot-r15"); c.enable256_qam_slot_or_subslot_r15.to_json(j); } if (c.res_alloc_offset_r15_present) { j.write_int("resourceAllocationOffset-r15", c.res_alloc_offset_r15); } j.write_bool("ul-DMRS-IFDMA-SlotOrSubslot-r15", c.ul_dmrs_ifdma_slot_or_subslot_r15); j.end_obj(); break; default: log_invalid_choice_id(type_, "slot_or_subslot_pusch_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE slot_or_subslot_pusch_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.beta_offset_slot_ack_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.beta_offset2_slot_ack_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.beta_offset_subslot_ack_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.beta_offset2_subslot_ack_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.beta_offset_slot_ri_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.beta_offset_subslot_ri_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.beta_offset_slot_cqi_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.beta_offset_subslot_cqi_idx_r15_present, 1)); HANDLE_CODE(bref.pack(c.enable256_qam_slot_or_subslot_r15_present, 1)); HANDLE_CODE(bref.pack(c.res_alloc_offset_r15_present, 1)); if (c.beta_offset_slot_ack_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_slot_ack_idx_r15, (uint8_t)0, (uint8_t)15)); } if (c.beta_offset2_slot_ack_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset2_slot_ack_idx_r15, (uint8_t)0, (uint8_t)15)); } if (c.beta_offset_subslot_ack_idx_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.beta_offset_subslot_ack_idx_r15, 1, 2, UnalignedIntegerPacker(0, 15))); } if (c.beta_offset2_subslot_ack_idx_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.beta_offset2_subslot_ack_idx_r15, 1, 2, UnalignedIntegerPacker(0, 15))); } if (c.beta_offset_slot_ri_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_slot_ri_idx_r15, (uint8_t)0, (uint8_t)15)); } if (c.beta_offset_subslot_ri_idx_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.beta_offset_subslot_ri_idx_r15, 1, 2, UnalignedIntegerPacker(0, 15))); } if (c.beta_offset_slot_cqi_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_slot_cqi_idx_r15, (uint8_t)0, (uint8_t)15)); } if (c.beta_offset_subslot_cqi_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_subslot_cqi_idx_r15, (uint8_t)0, (uint8_t)15)); } if (c.enable256_qam_slot_or_subslot_r15_present) { HANDLE_CODE(c.enable256_qam_slot_or_subslot_r15.pack(bref)); } if (c.res_alloc_offset_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.res_alloc_offset_r15, (uint8_t)1, (uint8_t)2)); } HANDLE_CODE(bref.pack(c.ul_dmrs_ifdma_slot_or_subslot_r15, 1)); break; default: log_invalid_choice_id(type_, "slot_or_subslot_pusch_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE slot_or_subslot_pusch_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.beta_offset_slot_ack_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.beta_offset2_slot_ack_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.beta_offset_subslot_ack_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.beta_offset2_subslot_ack_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.beta_offset_slot_ri_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.beta_offset_subslot_ri_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.beta_offset_slot_cqi_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.beta_offset_subslot_cqi_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(c.enable256_qam_slot_or_subslot_r15_present, 1)); HANDLE_CODE(bref.unpack(c.res_alloc_offset_r15_present, 1)); if (c.beta_offset_slot_ack_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.beta_offset_slot_ack_idx_r15, bref, (uint8_t)0, (uint8_t)15)); } if (c.beta_offset2_slot_ack_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.beta_offset2_slot_ack_idx_r15, bref, (uint8_t)0, (uint8_t)15)); } if (c.beta_offset_subslot_ack_idx_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(c.beta_offset_subslot_ack_idx_r15, bref, 1, 2, UnalignedIntegerPacker(0, 15))); } if (c.beta_offset2_subslot_ack_idx_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(c.beta_offset2_subslot_ack_idx_r15, bref, 1, 2, UnalignedIntegerPacker(0, 15))); } if (c.beta_offset_slot_ri_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.beta_offset_slot_ri_idx_r15, bref, (uint8_t)0, (uint8_t)15)); } if (c.beta_offset_subslot_ri_idx_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(c.beta_offset_subslot_ri_idx_r15, bref, 1, 2, UnalignedIntegerPacker(0, 15))); } if (c.beta_offset_slot_cqi_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.beta_offset_slot_cqi_idx_r15, bref, (uint8_t)0, (uint8_t)15)); } if (c.beta_offset_subslot_cqi_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.beta_offset_subslot_cqi_idx_r15, bref, (uint8_t)0, (uint8_t)15)); } if (c.enable256_qam_slot_or_subslot_r15_present) { HANDLE_CODE(c.enable256_qam_slot_or_subslot_r15.unpack(bref)); } if (c.res_alloc_offset_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.res_alloc_offset_r15, bref, (uint8_t)1, (uint8_t)2)); } HANDLE_CODE(bref.unpack(c.ul_dmrs_ifdma_slot_or_subslot_r15, 1)); break; default: log_invalid_choice_id(type_, "slot_or_subslot_pusch_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // TDD-PUSCH-UpPTS-r14 ::= CHOICE void tdd_pusch_up_pts_r14_c::set(types::options e) { type_ = e; } void tdd_pusch_up_pts_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.sym_pusch_up_pts_r14_present) { j.write_str("symPUSCH-UpPTS-r14", c.sym_pusch_up_pts_r14.to_string()); } if (c.dmrs_less_up_pts_cfg_r14_present) { j.write_str("dmrs-LessUpPTS-Config-r14", "true"); } j.end_obj(); break; default: log_invalid_choice_id(type_, "tdd_pusch_up_pts_r14_c"); } j.end_obj(); } SRSASN_CODE tdd_pusch_up_pts_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.sym_pusch_up_pts_r14_present, 1)); HANDLE_CODE(bref.pack(c.dmrs_less_up_pts_cfg_r14_present, 1)); if (c.sym_pusch_up_pts_r14_present) { HANDLE_CODE(pack_enum(bref, c.sym_pusch_up_pts_r14)); } break; default: log_invalid_choice_id(type_, "tdd_pusch_up_pts_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE tdd_pusch_up_pts_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.sym_pusch_up_pts_r14_present, 1)); HANDLE_CODE(bref.unpack(c.dmrs_less_up_pts_cfg_r14_present, 1)); if (c.sym_pusch_up_pts_r14_present) { HANDLE_CODE(unpack_enum(c.sym_pusch_up_pts_r14, bref)); } break; default: log_invalid_choice_id(type_, "tdd_pusch_up_pts_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UplinkPowerControlDedicatedSTTI-r15 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_ded_stti_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(delta_tx_d_offset_list_spucch_r15_present, 1)); HANDLE_CODE(bref.pack(accumulation_enabled_stti_r15, 1)); if (delta_tx_d_offset_list_spucch_r15_present) { HANDLE_CODE(delta_tx_d_offset_list_spucch_r15.pack(bref)); } HANDLE_CODE(bref.pack(ul_pwr_csi_payload, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_stti_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(delta_tx_d_offset_list_spucch_r15_present, 1)); HANDLE_CODE(bref.unpack(accumulation_enabled_stti_r15, 1)); if (delta_tx_d_offset_list_spucch_r15_present) { HANDLE_CODE(delta_tx_d_offset_list_spucch_r15.unpack(bref)); } HANDLE_CODE(bref.unpack(ul_pwr_csi_payload, 1)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_ded_stti_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("accumulationEnabledSTTI-r15", accumulation_enabled_stti_r15); if (delta_tx_d_offset_list_spucch_r15_present) { j.write_fieldname("deltaTxD-OffsetListSPUCCH-r15"); delta_tx_d_offset_list_spucch_r15.to_json(j); } j.write_bool("uplinkPower-CSIPayload", ul_pwr_csi_payload); j.end_obj(); } // AntennaInfoDedicated ::= SEQUENCE SRSASN_CODE ant_info_ded_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(codebook_subset_restrict_present, 1)); HANDLE_CODE(pack_enum(bref, tx_mode)); if (codebook_subset_restrict_present) { HANDLE_CODE(codebook_subset_restrict.pack(bref)); } HANDLE_CODE(ue_tx_ant_sel.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(codebook_subset_restrict_present, 1)); HANDLE_CODE(unpack_enum(tx_mode, bref)); if (codebook_subset_restrict_present) { HANDLE_CODE(codebook_subset_restrict.unpack(bref)); } HANDLE_CODE(ue_tx_ant_sel.unpack(bref)); return SRSASN_SUCCESS; } void ant_info_ded_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("transmissionMode", tx_mode.to_string()); if (codebook_subset_restrict_present) { j.write_fieldname("codebookSubsetRestriction"); codebook_subset_restrict.to_json(j); } j.write_fieldname("ue-TransmitAntennaSelection"); ue_tx_ant_sel.to_json(j); j.end_obj(); } void ant_info_ded_s::codebook_subset_restrict_c_::destroy_() { switch (type_) { case types::n2_tx_ant_tm3: c.destroy >(); break; case types::n4_tx_ant_tm3: c.destroy >(); break; case types::n2_tx_ant_tm4: c.destroy >(); break; case types::n4_tx_ant_tm4: c.destroy >(); break; case types::n2_tx_ant_tm5: c.destroy >(); break; case types::n4_tx_ant_tm5: c.destroy >(); break; case types::n2_tx_ant_tm6: c.destroy >(); break; case types::n4_tx_ant_tm6: c.destroy >(); break; default: break; } } void ant_info_ded_s::codebook_subset_restrict_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::n2_tx_ant_tm3: c.init >(); break; case types::n4_tx_ant_tm3: c.init >(); break; case types::n2_tx_ant_tm4: c.init >(); break; case types::n4_tx_ant_tm4: c.init >(); break; case types::n2_tx_ant_tm5: c.init >(); break; case types::n4_tx_ant_tm5: c.init >(); break; case types::n2_tx_ant_tm6: c.init >(); break; case types::n4_tx_ant_tm6: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_s::codebook_subset_restrict_c_"); } } ant_info_ded_s::codebook_subset_restrict_c_::codebook_subset_restrict_c_( const ant_info_ded_s::codebook_subset_restrict_c_& other) { type_ = other.type(); switch (type_) { case types::n2_tx_ant_tm3: c.init(other.c.get >()); break; case types::n4_tx_ant_tm3: c.init(other.c.get >()); break; case types::n2_tx_ant_tm4: c.init(other.c.get >()); break; case types::n4_tx_ant_tm4: c.init(other.c.get >()); break; case types::n2_tx_ant_tm5: c.init(other.c.get >()); break; case types::n4_tx_ant_tm5: c.init(other.c.get >()); break; case types::n2_tx_ant_tm6: c.init(other.c.get >()); break; case types::n4_tx_ant_tm6: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_s::codebook_subset_restrict_c_"); } } ant_info_ded_s::codebook_subset_restrict_c_& ant_info_ded_s::codebook_subset_restrict_c_:: operator=(const ant_info_ded_s::codebook_subset_restrict_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::n2_tx_ant_tm3: c.set(other.c.get >()); break; case types::n4_tx_ant_tm3: c.set(other.c.get >()); break; case types::n2_tx_ant_tm4: c.set(other.c.get >()); break; case types::n4_tx_ant_tm4: c.set(other.c.get >()); break; case types::n2_tx_ant_tm5: c.set(other.c.get >()); break; case types::n4_tx_ant_tm5: c.set(other.c.get >()); break; case types::n2_tx_ant_tm6: c.set(other.c.get >()); break; case types::n4_tx_ant_tm6: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_s::codebook_subset_restrict_c_"); } return *this; } void ant_info_ded_s::codebook_subset_restrict_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::n2_tx_ant_tm3: j.write_str("n2TxAntenna-tm3", c.get >().to_string()); break; case types::n4_tx_ant_tm3: j.write_str("n4TxAntenna-tm3", c.get >().to_string()); break; case types::n2_tx_ant_tm4: j.write_str("n2TxAntenna-tm4", c.get >().to_string()); break; case types::n4_tx_ant_tm4: j.write_str("n4TxAntenna-tm4", c.get >().to_string()); break; case types::n2_tx_ant_tm5: j.write_str("n2TxAntenna-tm5", c.get >().to_string()); break; case types::n4_tx_ant_tm5: j.write_str("n4TxAntenna-tm5", c.get >().to_string()); break; case types::n2_tx_ant_tm6: j.write_str("n2TxAntenna-tm6", c.get >().to_string()); break; case types::n4_tx_ant_tm6: j.write_str("n4TxAntenna-tm6", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "ant_info_ded_s::codebook_subset_restrict_c_"); } j.end_obj(); } SRSASN_CODE ant_info_ded_s::codebook_subset_restrict_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::n2_tx_ant_tm3: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm3: HANDLE_CODE(c.get >().pack(bref)); break; case types::n2_tx_ant_tm4: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm4: HANDLE_CODE(c.get >().pack(bref)); break; case types::n2_tx_ant_tm5: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm5: HANDLE_CODE(c.get >().pack(bref)); break; case types::n2_tx_ant_tm6: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm6: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_s::codebook_subset_restrict_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_s::codebook_subset_restrict_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::n2_tx_ant_tm3: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm3: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n2_tx_ant_tm4: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm4: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n2_tx_ant_tm5: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm5: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n2_tx_ant_tm6: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm6: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_s::codebook_subset_restrict_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ant_info_ded_s::ue_tx_ant_sel_c_::set(types::options e) { type_ = e; } void ant_info_ded_s::ue_tx_ant_sel_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "ant_info_ded_s::ue_tx_ant_sel_c_"); } j.end_obj(); } SRSASN_CODE ant_info_ded_s::ue_tx_ant_sel_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "ant_info_ded_s::ue_tx_ant_sel_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_s::ue_tx_ant_sel_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_s::ue_tx_ant_sel_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // AntennaInfoDedicated-r10 ::= SEQUENCE SRSASN_CODE ant_info_ded_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(codebook_subset_restrict_r10_present, 1)); HANDLE_CODE(pack_enum(bref, tx_mode_r10)); if (codebook_subset_restrict_r10_present) { HANDLE_CODE(codebook_subset_restrict_r10.pack(bref)); } HANDLE_CODE(ue_tx_ant_sel.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(codebook_subset_restrict_r10_present, 1)); HANDLE_CODE(unpack_enum(tx_mode_r10, bref)); if (codebook_subset_restrict_r10_present) { HANDLE_CODE(codebook_subset_restrict_r10.unpack(bref)); } HANDLE_CODE(ue_tx_ant_sel.unpack(bref)); return SRSASN_SUCCESS; } void ant_info_ded_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("transmissionMode-r10", tx_mode_r10.to_string()); if (codebook_subset_restrict_r10_present) { j.write_str("codebookSubsetRestriction-r10", codebook_subset_restrict_r10.to_string()); } j.write_fieldname("ue-TransmitAntennaSelection"); ue_tx_ant_sel.to_json(j); j.end_obj(); } void ant_info_ded_r10_s::ue_tx_ant_sel_c_::set(types::options e) { type_ = e; } void ant_info_ded_r10_s::ue_tx_ant_sel_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "ant_info_ded_r10_s::ue_tx_ant_sel_c_"); } j.end_obj(); } SRSASN_CODE ant_info_ded_r10_s::ue_tx_ant_sel_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "ant_info_ded_r10_s::ue_tx_ant_sel_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_r10_s::ue_tx_ant_sel_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_r10_s::ue_tx_ant_sel_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // AntennaInfoDedicated-v1250 ::= SEQUENCE SRSASN_CODE ant_info_ded_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(alternative_codebook_enabled_for4_tx_r12, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(alternative_codebook_enabled_for4_tx_r12, 1)); return SRSASN_SUCCESS; } void ant_info_ded_v1250_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("alternativeCodebookEnabledFor4TX-r12", alternative_codebook_enabled_for4_tx_r12); j.end_obj(); } // AntennaInfoDedicated-v1430 ::= SEQUENCE SRSASN_CODE ant_info_ded_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_ue_tx_ant_sel_cfg_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_ue_tx_ant_sel_cfg_r14_present, 1)); return SRSASN_SUCCESS; } void ant_info_ded_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (ce_ue_tx_ant_sel_cfg_r14_present) { j.write_str("ce-UE-TxAntennaSelection-config-r14", "on"); } j.end_obj(); } // AntennaInfoDedicated-v1530 ::= CHOICE void ant_info_ded_v1530_c::set(types::options e) { type_ = e; } void ant_info_ded_v1530_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "ant_info_ded_v1530_c"); } j.end_obj(); } SRSASN_CODE ant_info_ded_v1530_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_v1530_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_v1530_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_v1530_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ant_info_ded_v1530_c::setup_c_::set(types::options e) { type_ = e; } void ant_info_ded_v1530_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15: break; case types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15: j.write_str("ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15", c.to_string()); break; default: log_invalid_choice_id(type_, "ant_info_ded_v1530_c::setup_c_"); } j.end_obj(); } SRSASN_CODE ant_info_ded_v1530_c::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15: break; case types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "ant_info_ded_v1530_c::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_v1530_c::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15: break; case types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_v1530_c::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // AntennaInfoDedicated-v920 ::= SEQUENCE SRSASN_CODE ant_info_ded_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(codebook_subset_restrict_v920_present, 1)); if (codebook_subset_restrict_v920_present) { HANDLE_CODE(codebook_subset_restrict_v920.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(codebook_subset_restrict_v920_present, 1)); if (codebook_subset_restrict_v920_present) { HANDLE_CODE(codebook_subset_restrict_v920.unpack(bref)); } return SRSASN_SUCCESS; } void ant_info_ded_v920_s::to_json(json_writer& j) const { j.start_obj(); if (codebook_subset_restrict_v920_present) { j.write_fieldname("codebookSubsetRestriction-v920"); codebook_subset_restrict_v920.to_json(j); } j.end_obj(); } void ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::destroy_() { switch (type_) { case types::n2_tx_ant_tm8_r9: c.destroy >(); break; case types::n4_tx_ant_tm8_r9: c.destroy >(); break; default: break; } } void ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::n2_tx_ant_tm8_r9: c.init >(); break; case types::n4_tx_ant_tm8_r9: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_v920_s::codebook_subset_restrict_v920_c_"); } } ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::codebook_subset_restrict_v920_c_( const ant_info_ded_v920_s::codebook_subset_restrict_v920_c_& other) { type_ = other.type(); switch (type_) { case types::n2_tx_ant_tm8_r9: c.init(other.c.get >()); break; case types::n4_tx_ant_tm8_r9: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_v920_s::codebook_subset_restrict_v920_c_"); } } ant_info_ded_v920_s::codebook_subset_restrict_v920_c_& ant_info_ded_v920_s::codebook_subset_restrict_v920_c_:: operator=(const ant_info_ded_v920_s::codebook_subset_restrict_v920_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::n2_tx_ant_tm8_r9: c.set(other.c.get >()); break; case types::n4_tx_ant_tm8_r9: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ant_info_ded_v920_s::codebook_subset_restrict_v920_c_"); } return *this; } void ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::n2_tx_ant_tm8_r9: j.write_str("n2TxAntenna-tm8-r9", c.get >().to_string()); break; case types::n4_tx_ant_tm8_r9: j.write_str("n4TxAntenna-tm8-r9", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "ant_info_ded_v920_s::codebook_subset_restrict_v920_c_"); } j.end_obj(); } SRSASN_CODE ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::n2_tx_ant_tm8_r9: HANDLE_CODE(c.get >().pack(bref)); break; case types::n4_tx_ant_tm8_r9: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_v920_s::codebook_subset_restrict_v920_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::n2_tx_ant_tm8_r9: HANDLE_CODE(c.get >().unpack(bref)); break; case types::n4_tx_ant_tm8_r9: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "ant_info_ded_v920_s::codebook_subset_restrict_v920_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // AntennaInfoUL-r10 ::= SEQUENCE SRSASN_CODE ant_info_ul_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tx_mode_ul_r10_present, 1)); HANDLE_CODE(bref.pack(four_ant_port_activ_r10_present, 1)); if (tx_mode_ul_r10_present) { HANDLE_CODE(pack_enum(bref, tx_mode_ul_r10)); } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ul_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tx_mode_ul_r10_present, 1)); HANDLE_CODE(bref.unpack(four_ant_port_activ_r10_present, 1)); if (tx_mode_ul_r10_present) { HANDLE_CODE(unpack_enum(tx_mode_ul_r10, bref)); } return SRSASN_SUCCESS; } void ant_info_ul_r10_s::to_json(json_writer& j) const { j.start_obj(); if (tx_mode_ul_r10_present) { j.write_str("transmissionModeUL-r10", tx_mode_ul_r10.to_string()); } if (four_ant_port_activ_r10_present) { j.write_str("fourAntennaPortActivated-r10", "setup"); } j.end_obj(); } // BandClassPriority1XRTT ::= SEQUENCE SRSASN_CODE band_class_prio1_xrtt_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, band_class)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE band_class_prio1_xrtt_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(band_class, bref)); HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void band_class_prio1_xrtt_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("bandClass", band_class.to_string()); j.write_int("cellReselectionPriority", cell_resel_prio); j.end_obj(); } // BandClassPriorityHRPD ::= SEQUENCE SRSASN_CODE band_class_prio_hrpd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, band_class)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE band_class_prio_hrpd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(band_class, bref)); HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void band_class_prio_hrpd_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("bandClass", band_class.to_string()); j.write_int("cellReselectionPriority", cell_resel_prio); j.end_obj(); } // CFI-Config-r15 ::= SEQUENCE SRSASN_CODE cfi_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cfi_sf_non_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(cfi_slot_subslot_non_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(cfi_sf_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(cfi_slot_subslot_mbsfn_r15_present, 1)); if (cfi_sf_non_mbsfn_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, cfi_sf_non_mbsfn_r15, (uint8_t)1, (uint8_t)4)); } if (cfi_slot_subslot_non_mbsfn_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, cfi_slot_subslot_non_mbsfn_r15, (uint8_t)1, (uint8_t)3)); } if (cfi_sf_mbsfn_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, cfi_sf_mbsfn_r15, (uint8_t)1, (uint8_t)2)); } if (cfi_slot_subslot_mbsfn_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, cfi_slot_subslot_mbsfn_r15, (uint8_t)1, (uint8_t)2)); } return SRSASN_SUCCESS; } SRSASN_CODE cfi_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cfi_sf_non_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(cfi_slot_subslot_non_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(cfi_sf_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(cfi_slot_subslot_mbsfn_r15_present, 1)); if (cfi_sf_non_mbsfn_r15_present) { HANDLE_CODE(unpack_unalign_integer(cfi_sf_non_mbsfn_r15, bref, (uint8_t)1, (uint8_t)4)); } if (cfi_slot_subslot_non_mbsfn_r15_present) { HANDLE_CODE(unpack_unalign_integer(cfi_slot_subslot_non_mbsfn_r15, bref, (uint8_t)1, (uint8_t)3)); } if (cfi_sf_mbsfn_r15_present) { HANDLE_CODE(unpack_unalign_integer(cfi_sf_mbsfn_r15, bref, (uint8_t)1, (uint8_t)2)); } if (cfi_slot_subslot_mbsfn_r15_present) { HANDLE_CODE(unpack_unalign_integer(cfi_slot_subslot_mbsfn_r15, bref, (uint8_t)1, (uint8_t)2)); } return SRSASN_SUCCESS; } void cfi_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); if (cfi_sf_non_mbsfn_r15_present) { j.write_int("cfi-SubframeNonMBSFN-r15", cfi_sf_non_mbsfn_r15); } if (cfi_slot_subslot_non_mbsfn_r15_present) { j.write_int("cfi-SlotSubslotNonMBSFN-r15", cfi_slot_subslot_non_mbsfn_r15); } if (cfi_sf_mbsfn_r15_present) { j.write_int("cfi-SubframeMBSFN-r15", cfi_sf_mbsfn_r15); } if (cfi_slot_subslot_mbsfn_r15_present) { j.write_int("cfi-SlotSubslotMBSFN-r15", cfi_slot_subslot_mbsfn_r15); } j.end_obj(); } // CFI-PatternConfig-r15 ::= SEQUENCE SRSASN_CODE cfi_pattern_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cfi_pattern_sf_r15_present, 1)); HANDLE_CODE(bref.pack(cfi_pattern_slot_subslot_r15_present, 1)); if (cfi_pattern_sf_r15_present) { HANDLE_CODE(pack_fixed_seq_of(bref, &(cfi_pattern_sf_r15)[0], cfi_pattern_sf_r15.size(), UnalignedIntegerPacker(1, 4))); } if (cfi_pattern_slot_subslot_r15_present) { HANDLE_CODE(pack_fixed_seq_of(bref, &(cfi_pattern_slot_subslot_r15)[0], cfi_pattern_slot_subslot_r15.size(), UnalignedIntegerPacker(1, 3))); } return SRSASN_SUCCESS; } SRSASN_CODE cfi_pattern_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cfi_pattern_sf_r15_present, 1)); HANDLE_CODE(bref.unpack(cfi_pattern_slot_subslot_r15_present, 1)); if (cfi_pattern_sf_r15_present) { HANDLE_CODE(unpack_fixed_seq_of(&(cfi_pattern_sf_r15)[0], bref, cfi_pattern_sf_r15.size(), UnalignedIntegerPacker(1, 4))); } if (cfi_pattern_slot_subslot_r15_present) { HANDLE_CODE(unpack_fixed_seq_of(&(cfi_pattern_slot_subslot_r15)[0], bref, cfi_pattern_slot_subslot_r15.size(), UnalignedIntegerPacker(1, 3))); } return SRSASN_SUCCESS; } void cfi_pattern_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); if (cfi_pattern_sf_r15_present) { j.start_array("cfi-PatternSubframe-r15"); for (uint32_t i1 = 0; i1 < cfi_pattern_sf_r15.size(); ++i1) { j.write_int(cfi_pattern_sf_r15[i1]); } j.end_array(); } if (cfi_pattern_slot_subslot_r15_present) { j.start_array("cfi-PatternSlotSubslot-r15"); for (uint32_t i1 = 0; i1 < cfi_pattern_slot_subslot_r15.size(); ++i1) { j.write_int(cfi_pattern_slot_subslot_r15[i1]); } j.end_array(); } j.end_obj(); } // CQI-ReportConfig ::= SEQUENCE SRSASN_CODE cqi_report_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cqi_report_mode_aperiodic_present, 1)); HANDLE_CODE(bref.pack(cqi_report_periodic_present, 1)); if (cqi_report_mode_aperiodic_present) { HANDLE_CODE(pack_enum(bref, cqi_report_mode_aperiodic)); } HANDLE_CODE(pack_unalign_integer(bref, nom_pdsch_rs_epre_offset, (int8_t)-1, (int8_t)6)); if (cqi_report_periodic_present) { HANDLE_CODE(cqi_report_periodic.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cqi_report_mode_aperiodic_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_periodic_present, 1)); if (cqi_report_mode_aperiodic_present) { HANDLE_CODE(unpack_enum(cqi_report_mode_aperiodic, bref)); } HANDLE_CODE(unpack_unalign_integer(nom_pdsch_rs_epre_offset, bref, (int8_t)-1, (int8_t)6)); if (cqi_report_periodic_present) { HANDLE_CODE(cqi_report_periodic.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (cqi_report_mode_aperiodic_present) { j.write_str("cqi-ReportModeAperiodic", cqi_report_mode_aperiodic.to_string()); } j.write_int("nomPDSCH-RS-EPRE-Offset", nom_pdsch_rs_epre_offset); if (cqi_report_periodic_present) { j.write_fieldname("cqi-ReportPeriodic"); cqi_report_periodic.to_json(j); } j.end_obj(); } // CQI-ReportConfig-v1530 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(alt_cqi_table_minus1024_qam_r15_present, 1)); if (alt_cqi_table_minus1024_qam_r15_present) { HANDLE_CODE(pack_enum(bref, alt_cqi_table_minus1024_qam_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(alt_cqi_table_minus1024_qam_r15_present, 1)); if (alt_cqi_table_minus1024_qam_r15_present) { HANDLE_CODE(unpack_enum(alt_cqi_table_minus1024_qam_r15, bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (alt_cqi_table_minus1024_qam_r15_present) { j.write_str("altCQI-Table-1024QAM-r15", alt_cqi_table_minus1024_qam_r15.to_string()); } j.end_obj(); } // CQI-ReportConfig-v920 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cqi_mask_r9_present, 1)); HANDLE_CODE(bref.pack(pmi_ri_report_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cqi_mask_r9_present, 1)); HANDLE_CODE(bref.unpack(pmi_ri_report_r9_present, 1)); return SRSASN_SUCCESS; } void cqi_report_cfg_v920_s::to_json(json_writer& j) const { j.start_obj(); if (cqi_mask_r9_present) { j.write_str("cqi-Mask-r9", "setup"); } if (pmi_ri_report_r9_present) { j.write_str("pmi-RI-Report-r9", "setup"); } j.end_obj(); } // CSI-RS-Config-v1480 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_v1480_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(e_mimo_type_v1480_present, 1)); if (e_mimo_type_v1480_present) { HANDLE_CODE(e_mimo_type_v1480.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_v1480_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(e_mimo_type_v1480_present, 1)); if (e_mimo_type_v1480_present) { HANDLE_CODE(e_mimo_type_v1480.unpack(bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_v1480_s::to_json(json_writer& j) const { j.start_obj(); if (e_mimo_type_v1480_present) { j.write_fieldname("eMIMO-Type-v1480"); e_mimo_type_v1480.to_json(j); } j.end_obj(); } // CSI-RS-Config-v1530 ::= SEQUENCE SRSASN_CODE csi_rs_cfg_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(e_mimo_type_v1530_present, 1)); if (e_mimo_type_v1530_present) { HANDLE_CODE(e_mimo_type_v1530.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csi_rs_cfg_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(e_mimo_type_v1530_present, 1)); if (e_mimo_type_v1530_present) { HANDLE_CODE(e_mimo_type_v1530.unpack(bref)); } return SRSASN_SUCCESS; } void csi_rs_cfg_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (e_mimo_type_v1530_present) { j.write_fieldname("eMIMO-Type-v1530"); e_mimo_type_v1530.to_json(j); } j.end_obj(); } // DRB-ToAddMod ::= SEQUENCE SRSASN_CODE drb_to_add_mod_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(eps_bearer_id_present, 1)); HANDLE_CODE(bref.pack(pdcp_cfg_present, 1)); HANDLE_CODE(bref.pack(rlc_cfg_present, 1)); HANDLE_CODE(bref.pack(lc_ch_id_present, 1)); HANDLE_CODE(bref.pack(lc_ch_cfg_present, 1)); if (eps_bearer_id_present) { HANDLE_CODE(pack_unalign_integer(bref, eps_bearer_id, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(pack_unalign_integer(bref, drb_id, (uint8_t)1, (uint8_t)32)); if (pdcp_cfg_present) { HANDLE_CODE(pdcp_cfg.pack(bref)); } if (rlc_cfg_present) { HANDLE_CODE(rlc_cfg.pack(bref)); } if (lc_ch_id_present) { HANDLE_CODE(pack_unalign_integer(bref, lc_ch_id, (uint8_t)3, (uint8_t)10)); } if (lc_ch_cfg_present) { HANDLE_CODE(lc_ch_cfg.pack(bref)); } if (ext) { ext_groups_header group_flags(5); group_flags[0] |= drb_type_change_r12_present; rrc_asn1_warn_assert(rlc_cfg_v1250_present != (rlc_cfg_v1250.get() != NULL), __FILE__, __LINE__); group_flags[0] |= rlc_cfg_v1250_present; rrc_asn1_warn_assert(rlc_cfg_v1310_present != (rlc_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[1] |= rlc_cfg_v1310_present; group_flags[1] |= drb_type_lwa_r13_present; group_flags[1] |= drb_type_lwip_r13_present; rrc_asn1_warn_assert(rlc_cfg_v1430_present != (rlc_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[2] |= rlc_cfg_v1430_present; group_flags[2] |= lwip_ul_aggregation_r14_present; group_flags[2] |= lwip_dl_aggregation_r14_present; group_flags[2] |= lwa_wlan_ac_r14_present; rrc_asn1_warn_assert(rlc_cfg_v1510_present != (rlc_cfg_v1510.get() != NULL), __FILE__, __LINE__); group_flags[3] |= rlc_cfg_v1510_present; rrc_asn1_warn_assert(rlc_cfg_v1530_present != (rlc_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[4] |= rlc_cfg_v1530_present; rrc_asn1_warn_assert(rlc_bearer_cfg_dupl_r15_present != (rlc_bearer_cfg_dupl_r15.get() != NULL), __FILE__, __LINE__); group_flags[4] |= rlc_bearer_cfg_dupl_r15_present; group_flags[4] |= lc_ch_id_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(drb_type_change_r12_present, 1)); HANDLE_CODE(bref.pack(rlc_cfg_v1250_present, 1)); if (rlc_cfg_v1250_present) { HANDLE_CODE(rlc_cfg_v1250->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rlc_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(drb_type_lwa_r13_present, 1)); HANDLE_CODE(bref.pack(drb_type_lwip_r13_present, 1)); if (rlc_cfg_v1310_present) { HANDLE_CODE(rlc_cfg_v1310->pack(bref)); } if (drb_type_lwa_r13_present) { HANDLE_CODE(bref.pack(drb_type_lwa_r13, 1)); } if (drb_type_lwip_r13_present) { HANDLE_CODE(pack_enum(bref, drb_type_lwip_r13)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rlc_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(lwip_ul_aggregation_r14_present, 1)); HANDLE_CODE(bref.pack(lwip_dl_aggregation_r14_present, 1)); HANDLE_CODE(bref.pack(lwa_wlan_ac_r14_present, 1)); if (rlc_cfg_v1430_present) { HANDLE_CODE(rlc_cfg_v1430->pack(bref)); } if (lwip_ul_aggregation_r14_present) { HANDLE_CODE(bref.pack(lwip_ul_aggregation_r14, 1)); } if (lwip_dl_aggregation_r14_present) { HANDLE_CODE(bref.pack(lwip_dl_aggregation_r14, 1)); } if (lwa_wlan_ac_r14_present) { HANDLE_CODE(pack_enum(bref, lwa_wlan_ac_r14)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rlc_cfg_v1510_present, 1)); if (rlc_cfg_v1510_present) { HANDLE_CODE(rlc_cfg_v1510->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rlc_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(rlc_bearer_cfg_dupl_r15_present, 1)); HANDLE_CODE(bref.pack(lc_ch_id_r15_present, 1)); if (rlc_cfg_v1530_present) { HANDLE_CODE(rlc_cfg_v1530->pack(bref)); } if (rlc_bearer_cfg_dupl_r15_present) { HANDLE_CODE(rlc_bearer_cfg_dupl_r15->pack(bref)); } if (lc_ch_id_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, lc_ch_id_r15, (uint8_t)32, (uint8_t)38)); } } } return SRSASN_SUCCESS; } SRSASN_CODE drb_to_add_mod_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(eps_bearer_id_present, 1)); HANDLE_CODE(bref.unpack(pdcp_cfg_present, 1)); HANDLE_CODE(bref.unpack(rlc_cfg_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_id_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_cfg_present, 1)); if (eps_bearer_id_present) { HANDLE_CODE(unpack_unalign_integer(eps_bearer_id, bref, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(unpack_unalign_integer(drb_id, bref, (uint8_t)1, (uint8_t)32)); if (pdcp_cfg_present) { HANDLE_CODE(pdcp_cfg.unpack(bref)); } if (rlc_cfg_present) { HANDLE_CODE(rlc_cfg.unpack(bref)); } if (lc_ch_id_present) { HANDLE_CODE(unpack_unalign_integer(lc_ch_id, bref, (uint8_t)3, (uint8_t)10)); } if (lc_ch_cfg_present) { HANDLE_CODE(lc_ch_cfg.unpack(bref)); } if (ext) { ext_groups_header group_flags(5); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(drb_type_change_r12_present, 1)); HANDLE_CODE(bref.unpack(rlc_cfg_v1250_present, 1)); if (rlc_cfg_v1250_present) { rlc_cfg_v1250 = make_copy_ptr(rlc_cfg_v1250_s()); HANDLE_CODE(rlc_cfg_v1250->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rlc_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(drb_type_lwa_r13_present, 1)); HANDLE_CODE(bref.unpack(drb_type_lwip_r13_present, 1)); if (rlc_cfg_v1310_present) { rlc_cfg_v1310 = make_copy_ptr(rlc_cfg_v1310_s()); HANDLE_CODE(rlc_cfg_v1310->unpack(bref)); } if (drb_type_lwa_r13_present) { HANDLE_CODE(bref.unpack(drb_type_lwa_r13, 1)); } if (drb_type_lwip_r13_present) { HANDLE_CODE(unpack_enum(drb_type_lwip_r13, bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rlc_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(lwip_ul_aggregation_r14_present, 1)); HANDLE_CODE(bref.unpack(lwip_dl_aggregation_r14_present, 1)); HANDLE_CODE(bref.unpack(lwa_wlan_ac_r14_present, 1)); if (rlc_cfg_v1430_present) { rlc_cfg_v1430 = make_copy_ptr(rlc_cfg_v1430_c()); HANDLE_CODE(rlc_cfg_v1430->unpack(bref)); } if (lwip_ul_aggregation_r14_present) { HANDLE_CODE(bref.unpack(lwip_ul_aggregation_r14, 1)); } if (lwip_dl_aggregation_r14_present) { HANDLE_CODE(bref.unpack(lwip_dl_aggregation_r14, 1)); } if (lwa_wlan_ac_r14_present) { HANDLE_CODE(unpack_enum(lwa_wlan_ac_r14, bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rlc_cfg_v1510_present, 1)); if (rlc_cfg_v1510_present) { rlc_cfg_v1510 = make_copy_ptr(rlc_cfg_v1510_s()); HANDLE_CODE(rlc_cfg_v1510->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rlc_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(rlc_bearer_cfg_dupl_r15_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_id_r15_present, 1)); if (rlc_cfg_v1530_present) { rlc_cfg_v1530 = make_copy_ptr(rlc_cfg_v1530_c()); HANDLE_CODE(rlc_cfg_v1530->unpack(bref)); } if (rlc_bearer_cfg_dupl_r15_present) { rlc_bearer_cfg_dupl_r15 = make_copy_ptr(rlc_bearer_cfg_r15_c()); HANDLE_CODE(rlc_bearer_cfg_dupl_r15->unpack(bref)); } if (lc_ch_id_r15_present) { HANDLE_CODE(unpack_unalign_integer(lc_ch_id_r15, bref, (uint8_t)32, (uint8_t)38)); } } } return SRSASN_SUCCESS; } void drb_to_add_mod_s::to_json(json_writer& j) const { j.start_obj(); if (eps_bearer_id_present) { j.write_int("eps-BearerIdentity", eps_bearer_id); } j.write_int("drb-Identity", drb_id); if (pdcp_cfg_present) { j.write_fieldname("pdcp-Config"); pdcp_cfg.to_json(j); } if (rlc_cfg_present) { j.write_fieldname("rlc-Config"); rlc_cfg.to_json(j); } if (lc_ch_id_present) { j.write_int("logicalChannelIdentity", lc_ch_id); } if (lc_ch_cfg_present) { j.write_fieldname("logicalChannelConfig"); lc_ch_cfg.to_json(j); } if (ext) { if (drb_type_change_r12_present) { j.write_str("drb-TypeChange-r12", "toMCG"); } rrc_asn1_warn_assert(rlc_cfg_v1250_present != (rlc_cfg_v1250.get() != NULL), __FILE__, __LINE__); if (rlc_cfg_v1250_present) { j.write_fieldname("rlc-Config-v1250"); rlc_cfg_v1250->to_json(j); } rrc_asn1_warn_assert(rlc_cfg_v1310_present != (rlc_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (rlc_cfg_v1310_present) { j.write_fieldname("rlc-Config-v1310"); rlc_cfg_v1310->to_json(j); } if (drb_type_lwa_r13_present) { j.write_bool("drb-TypeLWA-r13", drb_type_lwa_r13); } if (drb_type_lwip_r13_present) { j.write_str("drb-TypeLWIP-r13", drb_type_lwip_r13.to_string()); } rrc_asn1_warn_assert(rlc_cfg_v1430_present != (rlc_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (rlc_cfg_v1430_present) { j.write_fieldname("rlc-Config-v1430"); rlc_cfg_v1430->to_json(j); } if (lwip_ul_aggregation_r14_present) { j.write_bool("lwip-UL-Aggregation-r14", lwip_ul_aggregation_r14); } if (lwip_dl_aggregation_r14_present) { j.write_bool("lwip-DL-Aggregation-r14", lwip_dl_aggregation_r14); } if (lwa_wlan_ac_r14_present) { j.write_str("lwa-WLAN-AC-r14", lwa_wlan_ac_r14.to_string()); } rrc_asn1_warn_assert(rlc_cfg_v1510_present != (rlc_cfg_v1510.get() != NULL), __FILE__, __LINE__); if (rlc_cfg_v1510_present) { j.write_fieldname("rlc-Config-v1510"); rlc_cfg_v1510->to_json(j); } rrc_asn1_warn_assert(rlc_cfg_v1530_present != (rlc_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (rlc_cfg_v1530_present) { j.write_fieldname("rlc-Config-v1530"); rlc_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(rlc_bearer_cfg_dupl_r15_present != (rlc_bearer_cfg_dupl_r15.get() != NULL), __FILE__, __LINE__); if (rlc_bearer_cfg_dupl_r15_present) { j.write_fieldname("rlc-BearerConfigDupl-r15"); rlc_bearer_cfg_dupl_r15->to_json(j); } if (lc_ch_id_r15_present) { j.write_int("logicalChannelIdentity-r15", lc_ch_id_r15); } } j.end_obj(); } // DRX-Config ::= CHOICE void drx_cfg_c::set(types::options e) { type_ = e; } void drx_cfg_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("onDurationTimer", c.on_dur_timer.to_string()); j.write_str("drx-InactivityTimer", c.drx_inactivity_timer.to_string()); j.write_str("drx-RetransmissionTimer", c.drx_retx_timer.to_string()); j.write_fieldname("longDRX-CycleStartOffset"); c.long_drx_cycle_start_offset.to_json(j); if (c.short_drx_present) { j.write_fieldname("shortDRX"); j.start_obj(); j.write_str("shortDRX-Cycle", c.short_drx.short_drx_cycle.to_string()); j.write_int("drxShortCycleTimer", c.short_drx.drx_short_cycle_timer); j.end_obj(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "drx_cfg_c"); } j.end_obj(); } SRSASN_CODE drx_cfg_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.short_drx_present, 1)); HANDLE_CODE(pack_enum(bref, c.on_dur_timer)); HANDLE_CODE(pack_enum(bref, c.drx_inactivity_timer)); HANDLE_CODE(pack_enum(bref, c.drx_retx_timer)); HANDLE_CODE(c.long_drx_cycle_start_offset.pack(bref)); if (c.short_drx_present) { HANDLE_CODE(pack_enum(bref, c.short_drx.short_drx_cycle)); HANDLE_CODE(pack_unalign_integer(bref, c.short_drx.drx_short_cycle_timer, (uint8_t)1, (uint8_t)16)); } break; default: log_invalid_choice_id(type_, "drx_cfg_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE drx_cfg_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.short_drx_present, 1)); HANDLE_CODE(unpack_enum(c.on_dur_timer, bref)); HANDLE_CODE(unpack_enum(c.drx_inactivity_timer, bref)); HANDLE_CODE(unpack_enum(c.drx_retx_timer, bref)); HANDLE_CODE(c.long_drx_cycle_start_offset.unpack(bref)); if (c.short_drx_present) { HANDLE_CODE(unpack_enum(c.short_drx.short_drx_cycle, bref)); HANDLE_CODE(unpack_unalign_integer(c.short_drx.drx_short_cycle_timer, bref, (uint8_t)1, (uint8_t)16)); } break; default: log_invalid_choice_id(type_, "drx_cfg_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::destroy_() {} void drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set(types::options e) { destroy_(); type_ = e; } drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::long_drx_cycle_start_offset_c_( const drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_& other) { type_ = other.type(); switch (type_) { case types::sf10: c.init(other.c.get()); break; case types::sf20: c.init(other.c.get()); break; case types::sf32: c.init(other.c.get()); break; case types::sf40: c.init(other.c.get()); break; case types::sf64: c.init(other.c.get()); break; case types::sf80: c.init(other.c.get()); break; case types::sf128: c.init(other.c.get()); break; case types::sf160: c.init(other.c.get()); break; case types::sf256: c.init(other.c.get()); break; case types::sf320: c.init(other.c.get()); break; case types::sf512: c.init(other.c.get()); break; case types::sf640: c.init(other.c.get()); break; case types::sf1024: c.init(other.c.get()); break; case types::sf1280: c.init(other.c.get()); break; case types::sf2048: c.init(other.c.get()); break; case types::sf2560: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_"); } } drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_:: operator=(const drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf10: c.set(other.c.get()); break; case types::sf20: c.set(other.c.get()); break; case types::sf32: c.set(other.c.get()); break; case types::sf40: c.set(other.c.get()); break; case types::sf64: c.set(other.c.get()); break; case types::sf80: c.set(other.c.get()); break; case types::sf128: c.set(other.c.get()); break; case types::sf160: c.set(other.c.get()); break; case types::sf256: c.set(other.c.get()); break; case types::sf320: c.set(other.c.get()); break; case types::sf512: c.set(other.c.get()); break; case types::sf640: c.set(other.c.get()); break; case types::sf1024: c.set(other.c.get()); break; case types::sf1280: c.set(other.c.get()); break; case types::sf2048: c.set(other.c.get()); break; case types::sf2560: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_"); } return *this; } void drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf10: j.write_int("sf10", c.get()); break; case types::sf20: j.write_int("sf20", c.get()); break; case types::sf32: j.write_int("sf32", c.get()); break; case types::sf40: j.write_int("sf40", c.get()); break; case types::sf64: j.write_int("sf64", c.get()); break; case types::sf80: j.write_int("sf80", c.get()); break; case types::sf128: j.write_int("sf128", c.get()); break; case types::sf160: j.write_int("sf160", c.get()); break; case types::sf256: j.write_int("sf256", c.get()); break; case types::sf320: j.write_int("sf320", c.get()); break; case types::sf512: j.write_int("sf512", c.get()); break; case types::sf640: j.write_int("sf640", c.get()); break; case types::sf1024: j.write_int("sf1024", c.get()); break; case types::sf1280: j.write_int("sf1280", c.get()); break; case types::sf2048: j.write_int("sf2048", c.get()); break; case types::sf2560: j.write_int("sf2560", c.get()); break; default: log_invalid_choice_id(type_, "drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_"); } j.end_obj(); } SRSASN_CODE drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf10: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)9)); break; case types::sf20: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)19)); break; case types::sf32: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)31)); break; case types::sf40: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); break; case types::sf64: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)63)); break; case types::sf80: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::sf128: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; case types::sf160: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; case types::sf256: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)255)); break; case types::sf320: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::sf512: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::sf640: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::sf1024: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1023)); break; case types::sf1280: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::sf2048: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)2047)); break; case types::sf2560: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)2559)); break; default: log_invalid_choice_id(type_, "drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf10: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)9)); break; case types::sf20: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)19)); break; case types::sf32: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)31)); break; case types::sf40: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); break; case types::sf64: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)63)); break; case types::sf80: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::sf128: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; case types::sf160: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; case types::sf256: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)255)); break; case types::sf320: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::sf512: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::sf640: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::sf1024: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1023)); break; case types::sf1280: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::sf2048: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)2047)); break; case types::sf2560: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)2559)); break; default: log_invalid_choice_id(type_, "drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DRX-Config-r13 ::= SEQUENCE SRSASN_CODE drx_cfg_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(on_dur_timer_v1310_present, 1)); HANDLE_CODE(bref.pack(drx_retx_timer_v1310_present, 1)); HANDLE_CODE(bref.pack(drx_ul_retx_timer_r13_present, 1)); if (on_dur_timer_v1310_present) { HANDLE_CODE(pack_enum(bref, on_dur_timer_v1310)); } if (drx_retx_timer_v1310_present) { HANDLE_CODE(pack_enum(bref, drx_retx_timer_v1310)); } if (drx_ul_retx_timer_r13_present) { HANDLE_CODE(pack_enum(bref, drx_ul_retx_timer_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE drx_cfg_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(on_dur_timer_v1310_present, 1)); HANDLE_CODE(bref.unpack(drx_retx_timer_v1310_present, 1)); HANDLE_CODE(bref.unpack(drx_ul_retx_timer_r13_present, 1)); if (on_dur_timer_v1310_present) { HANDLE_CODE(unpack_enum(on_dur_timer_v1310, bref)); } if (drx_retx_timer_v1310_present) { HANDLE_CODE(unpack_enum(drx_retx_timer_v1310, bref)); } if (drx_ul_retx_timer_r13_present) { HANDLE_CODE(unpack_enum(drx_ul_retx_timer_r13, bref)); } return SRSASN_SUCCESS; } void drx_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); if (on_dur_timer_v1310_present) { j.write_str("onDurationTimer-v1310", on_dur_timer_v1310.to_string()); } if (drx_retx_timer_v1310_present) { j.write_str("drx-RetransmissionTimer-v1310", drx_retx_timer_v1310.to_string()); } if (drx_ul_retx_timer_r13_present) { j.write_str("drx-ULRetransmissionTimer-r13", drx_ul_retx_timer_r13.to_string()); } j.end_obj(); } // DRX-Config-r15 ::= SEQUENCE SRSASN_CODE drx_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(drx_retx_timer_short_tti_r15_present, 1)); HANDLE_CODE(bref.pack(drx_ul_retx_timer_short_tti_r15_present, 1)); if (drx_retx_timer_short_tti_r15_present) { HANDLE_CODE(pack_enum(bref, drx_retx_timer_short_tti_r15)); } if (drx_ul_retx_timer_short_tti_r15_present) { HANDLE_CODE(pack_enum(bref, drx_ul_retx_timer_short_tti_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE drx_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(drx_retx_timer_short_tti_r15_present, 1)); HANDLE_CODE(bref.unpack(drx_ul_retx_timer_short_tti_r15_present, 1)); if (drx_retx_timer_short_tti_r15_present) { HANDLE_CODE(unpack_enum(drx_retx_timer_short_tti_r15, bref)); } if (drx_ul_retx_timer_short_tti_r15_present) { HANDLE_CODE(unpack_enum(drx_ul_retx_timer_short_tti_r15, bref)); } return SRSASN_SUCCESS; } void drx_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); if (drx_retx_timer_short_tti_r15_present) { j.write_str("drx-RetransmissionTimerShortTTI-r15", drx_retx_timer_short_tti_r15.to_string()); } if (drx_ul_retx_timer_short_tti_r15_present) { j.write_str("drx-UL-RetransmissionTimerShortTTI-r15", drx_ul_retx_timer_short_tti_r15.to_string()); } j.end_obj(); } // DRX-Config-v1130 ::= SEQUENCE SRSASN_CODE drx_cfg_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(drx_retx_timer_v1130_present, 1)); HANDLE_CODE(bref.pack(long_drx_cycle_start_offset_v1130_present, 1)); HANDLE_CODE(bref.pack(short_drx_cycle_v1130_present, 1)); if (long_drx_cycle_start_offset_v1130_present) { HANDLE_CODE(long_drx_cycle_start_offset_v1130.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE drx_cfg_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(drx_retx_timer_v1130_present, 1)); HANDLE_CODE(bref.unpack(long_drx_cycle_start_offset_v1130_present, 1)); HANDLE_CODE(bref.unpack(short_drx_cycle_v1130_present, 1)); if (long_drx_cycle_start_offset_v1130_present) { HANDLE_CODE(long_drx_cycle_start_offset_v1130.unpack(bref)); } return SRSASN_SUCCESS; } void drx_cfg_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (drx_retx_timer_v1130_present) { j.write_str("drx-RetransmissionTimer-v1130", "psf0-v1130"); } if (long_drx_cycle_start_offset_v1130_present) { j.write_fieldname("longDRX-CycleStartOffset-v1130"); long_drx_cycle_start_offset_v1130.to_json(j); } if (short_drx_cycle_v1130_present) { j.write_str("shortDRX-Cycle-v1130", "sf4-v1130"); } j.end_obj(); } void drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::destroy_() {} void drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::set(types::options e) { destroy_(); type_ = e; } drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::long_drx_cycle_start_offset_v1130_c_( const drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_& other) { type_ = other.type(); switch (type_) { case types::sf60_v1130: c.init(other.c.get()); break; case types::sf70_v1130: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_"); } } drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_& drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_:: operator=(const drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf60_v1130: c.set(other.c.get()); break; case types::sf70_v1130: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_"); } return *this; } void drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf60_v1130: j.write_int("sf60-v1130", c.get()); break; case types::sf70_v1130: j.write_int("sf70-v1130", c.get()); break; default: log_invalid_choice_id(type_, "drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_"); } j.end_obj(); } SRSASN_CODE drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf60_v1130: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)59)); break; case types::sf70_v1130: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)69)); break; default: log_invalid_choice_id(type_, "drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf60_v1130: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)59)); break; case types::sf70_v1130: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)69)); break; default: log_invalid_choice_id(type_, "drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DRX-Config-v1310 ::= SEQUENCE SRSASN_CODE drx_cfg_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(long_drx_cycle_start_offset_v1310_present, 1)); if (long_drx_cycle_start_offset_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, long_drx_cycle_start_offset_v1310.sf60_v1310, (uint8_t)0, (uint8_t)59)); } return SRSASN_SUCCESS; } SRSASN_CODE drx_cfg_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(long_drx_cycle_start_offset_v1310_present, 1)); if (long_drx_cycle_start_offset_v1310_present) { HANDLE_CODE(unpack_unalign_integer(long_drx_cycle_start_offset_v1310.sf60_v1310, bref, (uint8_t)0, (uint8_t)59)); } return SRSASN_SUCCESS; } void drx_cfg_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (long_drx_cycle_start_offset_v1310_present) { j.write_fieldname("longDRX-CycleStartOffset-v1310"); j.start_obj(); j.write_int("sf60-v1310", long_drx_cycle_start_offset_v1310.sf60_v1310); j.end_obj(); } j.end_obj(); } // EPDCCH-Config-r11 ::= SEQUENCE SRSASN_CODE epdcch_cfg_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(cfg_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE epdcch_cfg_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(cfg_r11.unpack(bref)); return SRSASN_SUCCESS; } void epdcch_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("config-r11"); cfg_r11.to_json(j); j.end_obj(); } void epdcch_cfg_r11_s::cfg_r11_c_::set(types::options e) { type_ = e; } void epdcch_cfg_r11_s::cfg_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.sf_pattern_cfg_r11_present) { j.write_fieldname("subframePatternConfig-r11"); c.sf_pattern_cfg_r11.to_json(j); } if (c.start_symbol_r11_present) { j.write_int("startSymbol-r11", c.start_symbol_r11); } if (c.set_cfg_to_release_list_r11_present) { j.start_array("setConfigToReleaseList-r11"); for (uint32_t i1 = 0; i1 < c.set_cfg_to_release_list_r11.size(); ++i1) { j.write_int(c.set_cfg_to_release_list_r11[i1]); } j.end_array(); } if (c.set_cfg_to_add_mod_list_r11_present) { j.start_array("setConfigToAddModList-r11"); for (uint32_t i1 = 0; i1 < c.set_cfg_to_add_mod_list_r11.size(); ++i1) { c.set_cfg_to_add_mod_list_r11[i1].to_json(j); } j.end_array(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "epdcch_cfg_r11_s::cfg_r11_c_"); } j.end_obj(); } SRSASN_CODE epdcch_cfg_r11_s::cfg_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.sf_pattern_cfg_r11_present, 1)); HANDLE_CODE(bref.pack(c.start_symbol_r11_present, 1)); HANDLE_CODE(bref.pack(c.set_cfg_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(c.set_cfg_to_add_mod_list_r11_present, 1)); if (c.sf_pattern_cfg_r11_present) { HANDLE_CODE(c.sf_pattern_cfg_r11.pack(bref)); } if (c.start_symbol_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, c.start_symbol_r11, (uint8_t)1, (uint8_t)4)); } if (c.set_cfg_to_release_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.set_cfg_to_release_list_r11, 1, 2, UnalignedIntegerPacker(0, 1))); } if (c.set_cfg_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.set_cfg_to_add_mod_list_r11, 1, 2)); } break; default: log_invalid_choice_id(type_, "epdcch_cfg_r11_s::cfg_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE epdcch_cfg_r11_s::cfg_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.sf_pattern_cfg_r11_present, 1)); HANDLE_CODE(bref.unpack(c.start_symbol_r11_present, 1)); HANDLE_CODE(bref.unpack(c.set_cfg_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(c.set_cfg_to_add_mod_list_r11_present, 1)); if (c.sf_pattern_cfg_r11_present) { HANDLE_CODE(c.sf_pattern_cfg_r11.unpack(bref)); } if (c.start_symbol_r11_present) { HANDLE_CODE(unpack_unalign_integer(c.start_symbol_r11, bref, (uint8_t)1, (uint8_t)4)); } if (c.set_cfg_to_release_list_r11_present) { HANDLE_CODE( unpack_dyn_seq_of(c.set_cfg_to_release_list_r11, bref, 1, 2, UnalignedIntegerPacker(0, 1))); } if (c.set_cfg_to_add_mod_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(c.set_cfg_to_add_mod_list_r11, bref, 1, 2)); } break; default: log_invalid_choice_id(type_, "epdcch_cfg_r11_s::cfg_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::set(types::options e) { type_ = e; } void epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("subframePattern-r11"); c.sf_pattern_r11.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_"); } j.end_obj(); } SRSASN_CODE epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.sf_pattern_r11.pack(bref)); break; default: log_invalid_choice_id(type_, "epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.sf_pattern_r11.unpack(bref)); break; default: log_invalid_choice_id(type_, "epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // FreqPriorityEUTRA ::= SEQUENCE SRSASN_CODE freq_prio_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE freq_prio_eutra_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(carrier_freq, bref, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void freq_prio_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq", carrier_freq); j.write_int("cellReselectionPriority", cell_resel_prio); j.end_obj(); } // FreqPriorityEUTRA-r12 ::= SEQUENCE SRSASN_CODE freq_prio_eutra_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio_r12, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE freq_prio_eutra_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(unpack_unalign_integer(cell_resel_prio_r12, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void freq_prio_eutra_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r12", carrier_freq_r12); j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); j.end_obj(); } // FreqPriorityEUTRA-v1310 ::= SEQUENCE SRSASN_CODE freq_prio_eutra_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_resel_sub_prio_r13_present, 1)); if (cell_resel_sub_prio_r13_present) { HANDLE_CODE(pack_enum(bref, cell_resel_sub_prio_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE freq_prio_eutra_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_resel_sub_prio_r13_present, 1)); if (cell_resel_sub_prio_r13_present) { HANDLE_CODE(unpack_enum(cell_resel_sub_prio_r13, bref)); } return SRSASN_SUCCESS; } void freq_prio_eutra_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (cell_resel_sub_prio_r13_present) { j.write_str("cellReselectionSubPriority-r13", cell_resel_sub_prio_r13.to_string()); } j.end_obj(); } // FreqPriorityNR-r15 ::= SEQUENCE SRSASN_CODE freq_prio_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_resel_sub_prio_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r15, (uint32_t)0, (uint32_t)3279165)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio_r15, (uint8_t)0, (uint8_t)7)); if (cell_resel_sub_prio_r15_present) { HANDLE_CODE(pack_enum(bref, cell_resel_sub_prio_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE freq_prio_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_resel_sub_prio_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r15, bref, (uint32_t)0, (uint32_t)3279165)); HANDLE_CODE(unpack_unalign_integer(cell_resel_prio_r15, bref, (uint8_t)0, (uint8_t)7)); if (cell_resel_sub_prio_r15_present) { HANDLE_CODE(unpack_enum(cell_resel_sub_prio_r15, bref)); } return SRSASN_SUCCESS; } void freq_prio_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r15", carrier_freq_r15); j.write_int("cellReselectionPriority-r15", cell_resel_prio_r15); if (cell_resel_sub_prio_r15_present) { j.write_str("cellReselectionSubPriority-r15", cell_resel_sub_prio_r15.to_string()); } j.end_obj(); } // FreqPriorityUTRA-FDD ::= SEQUENCE SRSASN_CODE freq_prio_utra_fdd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE freq_prio_utra_fdd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(carrier_freq, bref, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void freq_prio_utra_fdd_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq", carrier_freq); j.write_int("cellReselectionPriority", cell_resel_prio); j.end_obj(); } // FreqPriorityUTRA-TDD ::= SEQUENCE SRSASN_CODE freq_prio_utra_tdd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE freq_prio_utra_tdd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(carrier_freq, bref, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void freq_prio_utra_tdd_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq", carrier_freq); j.write_int("cellReselectionPriority", cell_resel_prio); j.end_obj(); } // FreqsPriorityGERAN ::= SEQUENCE SRSASN_CODE freqs_prio_geran_s::pack(bit_ref& bref) const { HANDLE_CODE(carrier_freqs.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_prio, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE freqs_prio_geran_s::unpack(bit_ref& bref) { HANDLE_CODE(carrier_freqs.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(cell_resel_prio, bref, (uint8_t)0, (uint8_t)7)); return SRSASN_SUCCESS; } void freqs_prio_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("carrierFreqs"); carrier_freqs.to_json(j); j.write_int("cellReselectionPriority", cell_resel_prio); j.end_obj(); } // PDCCH-CandidateReductions-r13 ::= CHOICE void pdcch_candidate_reductions_r13_c::set(types::options e) { type_ = e; } void pdcch_candidate_reductions_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("pdcch-candidateReductionAL1-r13", c.pdcch_candidate_reduction_al1_r13.to_string()); j.write_str("pdcch-candidateReductionAL2-r13", c.pdcch_candidate_reduction_al2_r13.to_string()); j.write_str("pdcch-candidateReductionAL3-r13", c.pdcch_candidate_reduction_al3_r13.to_string()); j.write_str("pdcch-candidateReductionAL4-r13", c.pdcch_candidate_reduction_al4_r13.to_string()); j.write_str("pdcch-candidateReductionAL5-r13", c.pdcch_candidate_reduction_al5_r13.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "pdcch_candidate_reductions_r13_c"); } j.end_obj(); } SRSASN_CODE pdcch_candidate_reductions_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al1_r13)); HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al2_r13)); HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al3_r13)); HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al4_r13)); HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al5_r13)); break; default: log_invalid_choice_id(type_, "pdcch_candidate_reductions_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdcch_candidate_reductions_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al1_r13, bref)); HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al2_r13, bref)); HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al3_r13, bref)); HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al4_r13, bref)); HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al5_r13, bref)); break; default: log_invalid_choice_id(type_, "pdcch_candidate_reductions_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PDSCH-ConfigDedicated ::= SEQUENCE SRSASN_CODE pdsch_cfg_ded_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, p_a)); return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_ded_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(p_a, bref)); return SRSASN_SUCCESS; } void pdsch_cfg_ded_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("p-a", p_a.to_string()); j.end_obj(); } // PDSCH-ConfigDedicated-v1130 ::= SEQUENCE SRSASN_CODE pdsch_cfg_ded_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dmrs_cfg_pdsch_r11_present, 1)); HANDLE_CODE(bref.pack(qcl_operation_present, 1)); HANDLE_CODE(bref.pack(re_map_qcl_cfg_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(re_map_qcl_cfg_to_add_mod_list_r11_present, 1)); if (dmrs_cfg_pdsch_r11_present) { HANDLE_CODE(dmrs_cfg_pdsch_r11.pack(bref)); } if (qcl_operation_present) { HANDLE_CODE(pack_enum(bref, qcl_operation)); } if (re_map_qcl_cfg_to_release_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, re_map_qcl_cfg_to_release_list_r11, 1, 4, UnalignedIntegerPacker(1, 4))); } if (re_map_qcl_cfg_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, re_map_qcl_cfg_to_add_mod_list_r11, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_ded_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dmrs_cfg_pdsch_r11_present, 1)); HANDLE_CODE(bref.unpack(qcl_operation_present, 1)); HANDLE_CODE(bref.unpack(re_map_qcl_cfg_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(re_map_qcl_cfg_to_add_mod_list_r11_present, 1)); if (dmrs_cfg_pdsch_r11_present) { HANDLE_CODE(dmrs_cfg_pdsch_r11.unpack(bref)); } if (qcl_operation_present) { HANDLE_CODE(unpack_enum(qcl_operation, bref)); } if (re_map_qcl_cfg_to_release_list_r11_present) { HANDLE_CODE( unpack_dyn_seq_of(re_map_qcl_cfg_to_release_list_r11, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (re_map_qcl_cfg_to_add_mod_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(re_map_qcl_cfg_to_add_mod_list_r11, bref, 1, 4)); } return SRSASN_SUCCESS; } void pdsch_cfg_ded_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (dmrs_cfg_pdsch_r11_present) { j.write_fieldname("dmrs-ConfigPDSCH-r11"); dmrs_cfg_pdsch_r11.to_json(j); } if (qcl_operation_present) { j.write_str("qcl-Operation", qcl_operation.to_string()); } if (re_map_qcl_cfg_to_release_list_r11_present) { j.start_array("re-MappingQCLConfigToReleaseList-r11"); for (uint32_t i1 = 0; i1 < re_map_qcl_cfg_to_release_list_r11.size(); ++i1) { j.write_int(re_map_qcl_cfg_to_release_list_r11[i1]); } j.end_array(); } if (re_map_qcl_cfg_to_add_mod_list_r11_present) { j.start_array("re-MappingQCLConfigToAddModList-r11"); for (uint32_t i1 = 0; i1 < re_map_qcl_cfg_to_add_mod_list_r11.size(); ++i1) { re_map_qcl_cfg_to_add_mod_list_r11[i1].to_json(j); } j.end_array(); } j.end_obj(); } // PDSCH-ConfigDedicated-v1280 ::= SEQUENCE SRSASN_CODE pdsch_cfg_ded_v1280_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tbs_idx_alt_r12_present, 1)); if (tbs_idx_alt_r12_present) { HANDLE_CODE(pack_enum(bref, tbs_idx_alt_r12)); } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_ded_v1280_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tbs_idx_alt_r12_present, 1)); if (tbs_idx_alt_r12_present) { HANDLE_CODE(unpack_enum(tbs_idx_alt_r12, bref)); } return SRSASN_SUCCESS; } void pdsch_cfg_ded_v1280_s::to_json(json_writer& j) const { j.start_obj(); if (tbs_idx_alt_r12_present) { j.write_str("tbsIndexAlt-r12", tbs_idx_alt_r12.to_string()); } j.end_obj(); } // PDSCH-ConfigDedicated-v1310 ::= SEQUENCE SRSASN_CODE pdsch_cfg_ded_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dmrs_cfg_pdsch_v1310_present, 1)); if (dmrs_cfg_pdsch_v1310_present) { HANDLE_CODE(dmrs_cfg_pdsch_v1310.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_ded_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dmrs_cfg_pdsch_v1310_present, 1)); if (dmrs_cfg_pdsch_v1310_present) { HANDLE_CODE(dmrs_cfg_pdsch_v1310.unpack(bref)); } return SRSASN_SUCCESS; } void pdsch_cfg_ded_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (dmrs_cfg_pdsch_v1310_present) { j.write_fieldname("dmrs-ConfigPDSCH-v1310"); dmrs_cfg_pdsch_v1310.to_json(j); } j.end_obj(); } // PDSCH-ConfigDedicated-v1430 ::= SEQUENCE SRSASN_CODE pdsch_cfg_ded_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_pdsch_max_bw_r14_present, 1)); HANDLE_CODE(bref.pack(ce_pdsch_ten_processes_r14_present, 1)); HANDLE_CODE(bref.pack(ce_harq_ack_bundling_r14_present, 1)); HANDLE_CODE(bref.pack(ce_sched_enhancement_r14_present, 1)); HANDLE_CODE(bref.pack(tbs_idx_alt2_r14_present, 1)); if (ce_pdsch_max_bw_r14_present) { HANDLE_CODE(pack_enum(bref, ce_pdsch_max_bw_r14)); } if (ce_sched_enhancement_r14_present) { HANDLE_CODE(pack_enum(bref, ce_sched_enhancement_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_ded_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_pdsch_max_bw_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_pdsch_ten_processes_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_harq_ack_bundling_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_sched_enhancement_r14_present, 1)); HANDLE_CODE(bref.unpack(tbs_idx_alt2_r14_present, 1)); if (ce_pdsch_max_bw_r14_present) { HANDLE_CODE(unpack_enum(ce_pdsch_max_bw_r14, bref)); } if (ce_sched_enhancement_r14_present) { HANDLE_CODE(unpack_enum(ce_sched_enhancement_r14, bref)); } return SRSASN_SUCCESS; } void pdsch_cfg_ded_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (ce_pdsch_max_bw_r14_present) { j.write_str("ce-PDSCH-MaxBandwidth-r14", ce_pdsch_max_bw_r14.to_string()); } if (ce_pdsch_ten_processes_r14_present) { j.write_str("ce-PDSCH-TenProcesses-r14", "on"); } if (ce_harq_ack_bundling_r14_present) { j.write_str("ce-HARQ-AckBundling-r14", "on"); } if (ce_sched_enhancement_r14_present) { j.write_str("ce-SchedulingEnhancement-r14", ce_sched_enhancement_r14.to_string()); } if (tbs_idx_alt2_r14_present) { j.write_str("tbsIndexAlt2-r14", "b33"); } j.end_obj(); } // PDSCH-ConfigDedicated-v1530 ::= SEQUENCE SRSASN_CODE pdsch_cfg_ded_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(qcl_operation_v1530_present, 1)); HANDLE_CODE(bref.pack(tbs_idx_alt3_r15_present, 1)); HANDLE_CODE(bref.pack(ce_cqi_alternative_table_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(ce_pdsch_minus64_qam_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(ce_pdsch_flex_start_prb_alloc_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(alt_mcs_table_scaling_cfg_r15_present, 1)); if (alt_mcs_table_scaling_cfg_r15_present) { HANDLE_CODE(pack_enum(bref, alt_mcs_table_scaling_cfg_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_ded_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(qcl_operation_v1530_present, 1)); HANDLE_CODE(bref.unpack(tbs_idx_alt3_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_cqi_alternative_table_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_pdsch_minus64_qam_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_pdsch_flex_start_prb_alloc_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(alt_mcs_table_scaling_cfg_r15_present, 1)); if (alt_mcs_table_scaling_cfg_r15_present) { HANDLE_CODE(unpack_enum(alt_mcs_table_scaling_cfg_r15, bref)); } return SRSASN_SUCCESS; } void pdsch_cfg_ded_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (qcl_operation_v1530_present) { j.write_str("qcl-Operation-v1530", "typeC"); } if (tbs_idx_alt3_r15_present) { j.write_str("tbs-IndexAlt3-r15", "a37"); } if (ce_cqi_alternative_table_cfg_r15_present) { j.write_str("ce-CQI-AlternativeTableConfig-r15", "on"); } if (ce_pdsch_minus64_qam_cfg_r15_present) { j.write_str("ce-PDSCH-64QAM-Config-r15", "on"); } if (ce_pdsch_flex_start_prb_alloc_cfg_r15_present) { j.write_str("ce-PDSCH-FlexibleStartPRB-AllocConfig-r15", "on"); } if (alt_mcs_table_scaling_cfg_r15_present) { j.write_str("altMCS-TableScalingConfig-r15", alt_mcs_table_scaling_cfg_r15.to_string()); } j.end_obj(); } // PUCCH-ConfigDedicated ::= SEQUENCE SRSASN_CODE pucch_cfg_ded_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tdd_ack_nack_feedback_mode_present, 1)); HANDLE_CODE(ack_nack_repeat.pack(bref)); if (tdd_ack_nack_feedback_mode_present) { HANDLE_CODE(pack_enum(bref, tdd_ack_nack_feedback_mode)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tdd_ack_nack_feedback_mode_present, 1)); HANDLE_CODE(ack_nack_repeat.unpack(bref)); if (tdd_ack_nack_feedback_mode_present) { HANDLE_CODE(unpack_enum(tdd_ack_nack_feedback_mode, bref)); } return SRSASN_SUCCESS; } void pucch_cfg_ded_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ackNackRepetition"); ack_nack_repeat.to_json(j); if (tdd_ack_nack_feedback_mode_present) { j.write_str("tdd-AckNackFeedbackMode", tdd_ack_nack_feedback_mode.to_string()); } j.end_obj(); } void pucch_cfg_ded_s::ack_nack_repeat_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_s::ack_nack_repeat_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("repetitionFactor", c.repeat_factor.to_string()); j.write_int("n1PUCCH-AN-Rep", c.n1_pucch_an_rep); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_s::ack_nack_repeat_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_s::ack_nack_repeat_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.repeat_factor)); HANDLE_CODE(pack_unalign_integer(bref, c.n1_pucch_an_rep, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_s::ack_nack_repeat_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_s::ack_nack_repeat_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.repeat_factor, bref)); HANDLE_CODE(unpack_unalign_integer(c.n1_pucch_an_rep, bref, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_s::ack_nack_repeat_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUCCH-ConfigDedicated-r13 ::= SEQUENCE SRSASN_CODE pucch_cfg_ded_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tdd_ack_nack_feedback_mode_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_format_r13_present, 1)); HANDLE_CODE(bref.pack(two_ant_port_activ_pucch_format1a1b_r13_present, 1)); HANDLE_CODE(bref.pack(simul_pucch_pusch_r13_present, 1)); HANDLE_CODE(bref.pack(n1_pucch_an_rep_p1_r13_present, 1)); HANDLE_CODE(bref.pack(n_pucch_param_r13_present, 1)); HANDLE_CODE(bref.pack(nka_pucch_param_r13_present, 1)); HANDLE_CODE(bref.pack(codebooksize_determination_r13_present, 1)); HANDLE_CODE(bref.pack(maximum_payload_coderate_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_num_repeat_ce_r13_present, 1)); HANDLE_CODE(ack_nack_repeat_r13.pack(bref)); if (tdd_ack_nack_feedback_mode_r13_present) { HANDLE_CODE(pack_enum(bref, tdd_ack_nack_feedback_mode_r13)); } if (pucch_format_r13_present) { HANDLE_CODE(pucch_format_r13.pack(bref)); } if (n1_pucch_an_rep_p1_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, n1_pucch_an_rep_p1_r13, (uint16_t)0, (uint16_t)2047)); } if (n_pucch_param_r13_present) { HANDLE_CODE(n_pucch_param_r13.pack(bref)); } if (nka_pucch_param_r13_present) { HANDLE_CODE(nka_pucch_param_r13.pack(bref)); } HANDLE_CODE(bref.pack(spatial_bundling_pucch_r13, 1)); HANDLE_CODE(bref.pack(spatial_bundling_pusch_r13, 1)); HANDLE_CODE(bref.pack(harq_timing_tdd_r13, 1)); if (codebooksize_determination_r13_present) { HANDLE_CODE(pack_enum(bref, codebooksize_determination_r13)); } if (maximum_payload_coderate_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, maximum_payload_coderate_r13, (uint8_t)0, (uint8_t)7)); } if (pucch_num_repeat_ce_r13_present) { HANDLE_CODE(pucch_num_repeat_ce_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tdd_ack_nack_feedback_mode_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_format_r13_present, 1)); HANDLE_CODE(bref.unpack(two_ant_port_activ_pucch_format1a1b_r13_present, 1)); HANDLE_CODE(bref.unpack(simul_pucch_pusch_r13_present, 1)); HANDLE_CODE(bref.unpack(n1_pucch_an_rep_p1_r13_present, 1)); HANDLE_CODE(bref.unpack(n_pucch_param_r13_present, 1)); HANDLE_CODE(bref.unpack(nka_pucch_param_r13_present, 1)); HANDLE_CODE(bref.unpack(codebooksize_determination_r13_present, 1)); HANDLE_CODE(bref.unpack(maximum_payload_coderate_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_num_repeat_ce_r13_present, 1)); HANDLE_CODE(ack_nack_repeat_r13.unpack(bref)); if (tdd_ack_nack_feedback_mode_r13_present) { HANDLE_CODE(unpack_enum(tdd_ack_nack_feedback_mode_r13, bref)); } if (pucch_format_r13_present) { HANDLE_CODE(pucch_format_r13.unpack(bref)); } if (n1_pucch_an_rep_p1_r13_present) { HANDLE_CODE(unpack_unalign_integer(n1_pucch_an_rep_p1_r13, bref, (uint16_t)0, (uint16_t)2047)); } if (n_pucch_param_r13_present) { HANDLE_CODE(n_pucch_param_r13.unpack(bref)); } if (nka_pucch_param_r13_present) { HANDLE_CODE(nka_pucch_param_r13.unpack(bref)); } HANDLE_CODE(bref.unpack(spatial_bundling_pucch_r13, 1)); HANDLE_CODE(bref.unpack(spatial_bundling_pusch_r13, 1)); HANDLE_CODE(bref.unpack(harq_timing_tdd_r13, 1)); if (codebooksize_determination_r13_present) { HANDLE_CODE(unpack_enum(codebooksize_determination_r13, bref)); } if (maximum_payload_coderate_r13_present) { HANDLE_CODE(unpack_unalign_integer(maximum_payload_coderate_r13, bref, (uint8_t)0, (uint8_t)7)); } if (pucch_num_repeat_ce_r13_present) { HANDLE_CODE(pucch_num_repeat_ce_r13.unpack(bref)); } return SRSASN_SUCCESS; } void pucch_cfg_ded_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ackNackRepetition-r13"); ack_nack_repeat_r13.to_json(j); if (tdd_ack_nack_feedback_mode_r13_present) { j.write_str("tdd-AckNackFeedbackMode-r13", tdd_ack_nack_feedback_mode_r13.to_string()); } if (pucch_format_r13_present) { j.write_fieldname("pucch-Format-r13"); pucch_format_r13.to_json(j); } if (two_ant_port_activ_pucch_format1a1b_r13_present) { j.write_str("twoAntennaPortActivatedPUCCH-Format1a1b-r13", "true"); } if (simul_pucch_pusch_r13_present) { j.write_str("simultaneousPUCCH-PUSCH-r13", "true"); } if (n1_pucch_an_rep_p1_r13_present) { j.write_int("n1PUCCH-AN-RepP1-r13", n1_pucch_an_rep_p1_r13); } if (n_pucch_param_r13_present) { j.write_fieldname("nPUCCH-Param-r13"); n_pucch_param_r13.to_json(j); } if (nka_pucch_param_r13_present) { j.write_fieldname("nkaPUCCH-Param-r13"); nka_pucch_param_r13.to_json(j); } j.write_bool("spatialBundlingPUCCH-r13", spatial_bundling_pucch_r13); j.write_bool("spatialBundlingPUSCH-r13", spatial_bundling_pusch_r13); j.write_bool("harq-TimingTDD-r13", harq_timing_tdd_r13); if (codebooksize_determination_r13_present) { j.write_str("codebooksizeDetermination-r13", codebooksize_determination_r13.to_string()); } if (maximum_payload_coderate_r13_present) { j.write_int("maximumPayloadCoderate-r13", maximum_payload_coderate_r13); } if (pucch_num_repeat_ce_r13_present) { j.write_fieldname("pucch-NumRepetitionCE-r13"); pucch_num_repeat_ce_r13.to_json(j); } j.end_obj(); } void pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("repetitionFactor-r13", c.repeat_factor_r13.to_string()); j.write_int("n1PUCCH-AN-Rep-r13", c.n1_pucch_an_rep_r13); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.repeat_factor_r13)); HANDLE_CODE(pack_unalign_integer(bref, c.n1_pucch_an_rep_r13, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.repeat_factor_r13, bref)); HANDLE_CODE(unpack_unalign_integer(c.n1_pucch_an_rep_r13, bref, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_r13_s::pucch_format_r13_c_::destroy_() { switch (type_) { case types::format3_r13: c.destroy(); break; case types::ch_sel_r13: c.destroy(); break; case types::format4_r13: c.destroy(); break; case types::format5_r13: c.destroy(); break; default: break; } } void pucch_cfg_ded_r13_s::pucch_format_r13_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::format3_r13: c.init(); break; case types::ch_sel_r13: c.init(); break; case types::format4_r13: c.init(); break; case types::format5_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_"); } } pucch_cfg_ded_r13_s::pucch_format_r13_c_::pucch_format_r13_c_(const pucch_cfg_ded_r13_s::pucch_format_r13_c_& other) { type_ = other.type(); switch (type_) { case types::format3_r13: c.init(other.c.get()); break; case types::ch_sel_r13: c.init(other.c.get()); break; case types::format4_r13: c.init(other.c.get()); break; case types::format5_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_"); } } pucch_cfg_ded_r13_s::pucch_format_r13_c_& pucch_cfg_ded_r13_s::pucch_format_r13_c_:: operator=(const pucch_cfg_ded_r13_s::pucch_format_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::format3_r13: c.set(other.c.get()); break; case types::ch_sel_r13: c.set(other.c.get()); break; case types::format4_r13: c.set(other.c.get()); break; case types::format5_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_"); } return *this; } void pucch_cfg_ded_r13_s::pucch_format_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::format3_r13: j.write_fieldname("format3-r13"); j.start_obj(); if (c.get().n3_pucch_an_list_r13_present) { j.start_array("n3PUCCH-AN-List-r13"); for (uint32_t i1 = 0; i1 < c.get().n3_pucch_an_list_r13.size(); ++i1) { j.write_int(c.get().n3_pucch_an_list_r13[i1]); } j.end_array(); } if (c.get().two_ant_port_activ_pucch_format3_r13_present) { j.write_fieldname("twoAntennaPortActivatedPUCCH-Format3-r13"); c.get().two_ant_port_activ_pucch_format3_r13.to_json(j); } j.end_obj(); break; case types::ch_sel_r13: j.write_fieldname("channelSelection-r13"); j.start_obj(); if (c.get().n1_pucch_an_cs_r13_present) { j.write_fieldname("n1PUCCH-AN-CS-r13"); c.get().n1_pucch_an_cs_r13.to_json(j); } j.end_obj(); break; case types::format4_r13: j.write_fieldname("format4-r13"); j.start_obj(); j.start_array("format4-resourceConfiguration-r13"); for (uint32_t i1 = 0; i1 < c.get().format4_res_cfg_r13.size(); ++i1) { c.get().format4_res_cfg_r13[i1].to_json(j); } j.end_array(); if (c.get().format4_multi_csi_res_cfg_r13_present) { j.start_array("format4-MultiCSI-resourceConfiguration-r13"); for (uint32_t i1 = 0; i1 < c.get().format4_multi_csi_res_cfg_r13.size(); ++i1) { c.get().format4_multi_csi_res_cfg_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); break; case types::format5_r13: j.write_fieldname("format5-r13"); j.start_obj(); j.start_array("format5-resourceConfiguration-r13"); for (uint32_t i1 = 0; i1 < c.get().format5_res_cfg_r13.size(); ++i1) { c.get().format5_res_cfg_r13[i1].to_json(j); } j.end_array(); if (c.get().format5_multi_csi_res_cfg_r13_present) { j.write_fieldname("format5-MultiCSI-resourceConfiguration-r13"); c.get().format5_multi_csi_res_cfg_r13.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_format_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::format3_r13: HANDLE_CODE(bref.pack(c.get().n3_pucch_an_list_r13_present, 1)); HANDLE_CODE(bref.pack(c.get().two_ant_port_activ_pucch_format3_r13_present, 1)); if (c.get().n3_pucch_an_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().n3_pucch_an_list_r13, 1, 4, UnalignedIntegerPacker(0, 549))); } if (c.get().two_ant_port_activ_pucch_format3_r13_present) { HANDLE_CODE(c.get().two_ant_port_activ_pucch_format3_r13.pack(bref)); } break; case types::ch_sel_r13: HANDLE_CODE(bref.pack(c.get().n1_pucch_an_cs_r13_present, 1)); if (c.get().n1_pucch_an_cs_r13_present) { HANDLE_CODE(c.get().n1_pucch_an_cs_r13.pack(bref)); } break; case types::format4_r13: HANDLE_CODE(bref.pack(c.get().format4_multi_csi_res_cfg_r13_present, 1)); HANDLE_CODE(pack_fixed_seq_of(bref, &(c.get().format4_res_cfg_r13)[0], c.get().format4_res_cfg_r13.size())); if (c.get().format4_multi_csi_res_cfg_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().format4_multi_csi_res_cfg_r13, 1, 2)); } break; case types::format5_r13: HANDLE_CODE(bref.pack(c.get().format5_multi_csi_res_cfg_r13_present, 1)); HANDLE_CODE(pack_fixed_seq_of(bref, &(c.get().format5_res_cfg_r13)[0], c.get().format5_res_cfg_r13.size())); if (c.get().format5_multi_csi_res_cfg_r13_present) { HANDLE_CODE(c.get().format5_multi_csi_res_cfg_r13.pack(bref)); } break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_format_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::format3_r13: HANDLE_CODE(bref.unpack(c.get().n3_pucch_an_list_r13_present, 1)); HANDLE_CODE(bref.unpack(c.get().two_ant_port_activ_pucch_format3_r13_present, 1)); if (c.get().n3_pucch_an_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().n3_pucch_an_list_r13, bref, 1, 4, UnalignedIntegerPacker(0, 549))); } if (c.get().two_ant_port_activ_pucch_format3_r13_present) { HANDLE_CODE(c.get().two_ant_port_activ_pucch_format3_r13.unpack(bref)); } break; case types::ch_sel_r13: HANDLE_CODE(bref.unpack(c.get().n1_pucch_an_cs_r13_present, 1)); if (c.get().n1_pucch_an_cs_r13_present) { HANDLE_CODE(c.get().n1_pucch_an_cs_r13.unpack(bref)); } break; case types::format4_r13: HANDLE_CODE(bref.unpack(c.get().format4_multi_csi_res_cfg_r13_present, 1)); HANDLE_CODE(unpack_fixed_seq_of(&(c.get().format4_res_cfg_r13)[0], bref, c.get().format4_res_cfg_r13.size())); if (c.get().format4_multi_csi_res_cfg_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().format4_multi_csi_res_cfg_r13, bref, 1, 2)); } break; case types::format5_r13: HANDLE_CODE(bref.unpack(c.get().format5_multi_csi_res_cfg_r13_present, 1)); HANDLE_CODE(unpack_fixed_seq_of(&(c.get().format5_res_cfg_r13)[0], bref, c.get().format5_res_cfg_r13.size())); if (c.get().format5_multi_csi_res_cfg_r13_present) { HANDLE_CODE(c.get().format5_multi_csi_res_cfg_r13.unpack(bref)); } break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_::set( types::options e) { type_ = e; } void pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_::to_json( json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("n3PUCCH-AN-ListP1-r13"); for (uint32_t i1 = 0; i1 < c.n3_pucch_an_list_p1_r13.size(); ++i1) { j.write_int(c.n3_pucch_an_list_p1_r13[i1]); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id( type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_::pack( bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.n3_pucch_an_list_p1_r13, 1, 4, UnalignedIntegerPacker(0, 549))); break; default: log_invalid_choice_id( type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.n3_pucch_an_list_p1_r13, bref, 1, 4, UnalignedIntegerPacker(0, 549))); break; default: log_invalid_choice_id( type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("n1PUCCH-AN-CS-List-r13"); for (uint32_t i1 = 0; i1 < c.n1_pucch_an_cs_list_r13.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < c.n1_pucch_an_cs_list_r13[i1].size(); ++i2) { j.write_int(c.n1_pucch_an_cs_list_r13[i1][i2]); } j.end_array(); } j.end_array(); j.start_array("n1PUCCH-AN-CS-ListP1-r13"); for (uint32_t i1 = 0; i1 < c.n1_pucch_an_cs_list_p1_r13.size(); ++i1) { j.write_int(c.n1_pucch_an_cs_list_p1_r13[i1]); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of( bref, c.n1_pucch_an_cs_list_r13, 1, 2, SeqOfPacker >(1, 4, UnalignedIntegerPacker(0, 2047)))); HANDLE_CODE(pack_dyn_seq_of(bref, c.n1_pucch_an_cs_list_p1_r13, 2, 4, UnalignedIntegerPacker(0, 2047))); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of( c.n1_pucch_an_cs_list_r13, bref, 1, 2, SeqOfPacker >(1, 4, UnalignedIntegerPacker(0, 2047)))); HANDLE_CODE( unpack_dyn_seq_of(c.n1_pucch_an_cs_list_p1_r13, bref, 2, 4, UnalignedIntegerPacker(0, 2047))); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_r13_s::n_pucch_param_r13_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_r13_s::n_pucch_param_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("nPUCCH-Identity-r13", c.n_pucch_id_r13); j.write_int("n1PUCCH-AN-r13", c.n1_pucch_an_r13); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::n_pucch_param_r13_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_r13_s::n_pucch_param_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.n_pucch_id_r13, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, c.n1_pucch_an_r13, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::n_pucch_param_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::n_pucch_param_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.n_pucch_id_r13, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(c.n1_pucch_an_r13, bref, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::n_pucch_param_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("nkaPUCCH-AN-r13", c.nka_pucch_an_r13); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.nka_pucch_an_r13, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.nka_pucch_an_r13, bref, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::destroy_() { switch (type_) { case types::mode_a: c.destroy(); break; case types::mode_b: c.destroy(); break; default: break; } } void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::mode_a: c.init(); break; case types::mode_b: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_"); } } pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::setup_c_( const pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::mode_a: c.init(other.c.get()); break; case types::mode_b: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_"); } } pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_& pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_:: operator=(const pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::mode_a: c.set(other.c.get()); break; case types::mode_b: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_"); } return *this; } void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::mode_a: j.write_fieldname("modeA"); j.start_obj(); j.write_str("pucch-NumRepetitionCE-format1-r13", c.get().pucch_num_repeat_ce_format1_r13.to_string()); j.write_str("pucch-NumRepetitionCE-format2-r13", c.get().pucch_num_repeat_ce_format2_r13.to_string()); j.end_obj(); break; case types::mode_b: j.write_fieldname("modeB"); j.start_obj(); j.write_str("pucch-NumRepetitionCE-format1-r13", c.get().pucch_num_repeat_ce_format1_r13.to_string()); j.write_str("pucch-NumRepetitionCE-format2-r13", c.get().pucch_num_repeat_ce_format2_r13.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::mode_a: HANDLE_CODE(pack_enum(bref, c.get().pucch_num_repeat_ce_format1_r13)); HANDLE_CODE(pack_enum(bref, c.get().pucch_num_repeat_ce_format2_r13)); break; case types::mode_b: HANDLE_CODE(pack_enum(bref, c.get().pucch_num_repeat_ce_format1_r13)); HANDLE_CODE(pack_enum(bref, c.get().pucch_num_repeat_ce_format2_r13)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::mode_a: HANDLE_CODE(unpack_enum(c.get().pucch_num_repeat_ce_format1_r13, bref)); HANDLE_CODE(unpack_enum(c.get().pucch_num_repeat_ce_format2_r13, bref)); break; case types::mode_b: HANDLE_CODE(unpack_enum(c.get().pucch_num_repeat_ce_format1_r13, bref)); HANDLE_CODE(unpack_enum(c.get().pucch_num_repeat_ce_format2_r13, bref)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUCCH-ConfigDedicated-v1020 ::= SEQUENCE SRSASN_CODE pucch_cfg_ded_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pucch_format_r10_present, 1)); HANDLE_CODE(bref.pack(two_ant_port_activ_pucch_format1a1b_r10_present, 1)); HANDLE_CODE(bref.pack(simul_pucch_pusch_r10_present, 1)); HANDLE_CODE(bref.pack(n1_pucch_an_rep_p1_r10_present, 1)); if (pucch_format_r10_present) { HANDLE_CODE(pucch_format_r10.pack(bref)); } if (n1_pucch_an_rep_p1_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, n1_pucch_an_rep_p1_r10, (uint16_t)0, (uint16_t)2047)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pucch_format_r10_present, 1)); HANDLE_CODE(bref.unpack(two_ant_port_activ_pucch_format1a1b_r10_present, 1)); HANDLE_CODE(bref.unpack(simul_pucch_pusch_r10_present, 1)); HANDLE_CODE(bref.unpack(n1_pucch_an_rep_p1_r10_present, 1)); if (pucch_format_r10_present) { HANDLE_CODE(pucch_format_r10.unpack(bref)); } if (n1_pucch_an_rep_p1_r10_present) { HANDLE_CODE(unpack_unalign_integer(n1_pucch_an_rep_p1_r10, bref, (uint16_t)0, (uint16_t)2047)); } return SRSASN_SUCCESS; } void pucch_cfg_ded_v1020_s::to_json(json_writer& j) const { j.start_obj(); if (pucch_format_r10_present) { j.write_fieldname("pucch-Format-r10"); pucch_format_r10.to_json(j); } if (two_ant_port_activ_pucch_format1a1b_r10_present) { j.write_str("twoAntennaPortActivatedPUCCH-Format1a1b-r10", "true"); } if (simul_pucch_pusch_r10_present) { j.write_str("simultaneousPUCCH-PUSCH-r10", "true"); } if (n1_pucch_an_rep_p1_r10_present) { j.write_int("n1PUCCH-AN-RepP1-r10", n1_pucch_an_rep_p1_r10); } j.end_obj(); } void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::destroy_() { switch (type_) { case types::format3_r10: c.destroy(); break; case types::ch_sel_r10: c.destroy(); break; default: break; } } void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::format3_r10: c.init(); break; case types::ch_sel_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_"); } } pucch_cfg_ded_v1020_s::pucch_format_r10_c_::pucch_format_r10_c_(const pucch_cfg_ded_v1020_s::pucch_format_r10_c_& other) { type_ = other.type(); switch (type_) { case types::format3_r10: c.init(other.c.get()); break; case types::ch_sel_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_"); } } pucch_cfg_ded_v1020_s::pucch_format_r10_c_& pucch_cfg_ded_v1020_s::pucch_format_r10_c_:: operator=(const pucch_cfg_ded_v1020_s::pucch_format_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::format3_r10: c.set(other.c.get()); break; case types::ch_sel_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_"); } return *this; } void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::format3_r10: j.write_fieldname("format3-r10"); c.get().to_json(j); break; case types::ch_sel_r10: j.write_fieldname("channelSelection-r10"); j.start_obj(); if (c.get().n1_pucch_an_cs_r10_present) { j.write_fieldname("n1PUCCH-AN-CS-r10"); c.get().n1_pucch_an_cs_r10.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_v1020_s::pucch_format_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::format3_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::ch_sel_r10: HANDLE_CODE(bref.pack(c.get().n1_pucch_an_cs_r10_present, 1)); if (c.get().n1_pucch_an_cs_r10_present) { HANDLE_CODE(c.get().n1_pucch_an_cs_r10.pack(bref)); } break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1020_s::pucch_format_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::format3_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::ch_sel_r10: HANDLE_CODE(bref.unpack(c.get().n1_pucch_an_cs_r10_present, 1)); if (c.get().n1_pucch_an_cs_r10_present) { HANDLE_CODE(c.get().n1_pucch_an_cs_r10.unpack(bref)); } break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("n1PUCCH-AN-CS-List-r10"); for (uint32_t i1 = 0; i1 < c.n1_pucch_an_cs_list_r10.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < c.n1_pucch_an_cs_list_r10[i1].size(); ++i2) { j.write_int(c.n1_pucch_an_cs_list_r10[i1][i2]); } j.end_array(); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of( bref, c.n1_pucch_an_cs_list_r10, 1, 2, SeqOfPacker >(1, 4, UnalignedIntegerPacker(0, 2047)))); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of( c.n1_pucch_an_cs_list_r10, bref, 1, 2, SeqOfPacker >(1, 4, UnalignedIntegerPacker(0, 2047)))); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUCCH-ConfigDedicated-v1130 ::= SEQUENCE SRSASN_CODE pucch_cfg_ded_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(n1_pucch_an_cs_v1130_present, 1)); HANDLE_CODE(bref.pack(n_pucch_param_r11_present, 1)); if (n1_pucch_an_cs_v1130_present) { HANDLE_CODE(n1_pucch_an_cs_v1130.pack(bref)); } if (n_pucch_param_r11_present) { HANDLE_CODE(n_pucch_param_r11.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(n1_pucch_an_cs_v1130_present, 1)); HANDLE_CODE(bref.unpack(n_pucch_param_r11_present, 1)); if (n1_pucch_an_cs_v1130_present) { HANDLE_CODE(n1_pucch_an_cs_v1130.unpack(bref)); } if (n_pucch_param_r11_present) { HANDLE_CODE(n_pucch_param_r11.unpack(bref)); } return SRSASN_SUCCESS; } void pucch_cfg_ded_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (n1_pucch_an_cs_v1130_present) { j.write_fieldname("n1PUCCH-AN-CS-v1130"); n1_pucch_an_cs_v1130.to_json(j); } if (n_pucch_param_r11_present) { j.write_fieldname("nPUCCH-Param-r11"); n_pucch_param_r11.to_json(j); } j.end_obj(); } void pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("n1PUCCH-AN-CS-ListP1-r11"); for (uint32_t i1 = 0; i1 < c.n1_pucch_an_cs_list_p1_r11.size(); ++i1) { j.write_int(c.n1_pucch_an_cs_list_p1_r11[i1]); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.n1_pucch_an_cs_list_p1_r11, 2, 4, UnalignedIntegerPacker(0, 2047))); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE( unpack_dyn_seq_of(c.n1_pucch_an_cs_list_p1_r11, bref, 2, 4, UnalignedIntegerPacker(0, 2047))); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pucch_cfg_ded_v1130_s::n_pucch_param_r11_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_v1130_s::n_pucch_param_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("nPUCCH-Identity-r11", c.n_pucch_id_r11); j.write_int("n1PUCCH-AN-r11", c.n1_pucch_an_r11); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1130_s::n_pucch_param_r11_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_v1130_s::n_pucch_param_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.n_pucch_id_r11, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, c.n1_pucch_an_r11, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1130_s::n_pucch_param_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1130_s::n_pucch_param_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.n_pucch_id_r11, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(c.n1_pucch_an_r11, bref, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1130_s::n_pucch_param_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUCCH-ConfigDedicated-v1250 ::= SEQUENCE SRSASN_CODE pucch_cfg_ded_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(nka_pucch_param_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(nka_pucch_param_r12.unpack(bref)); return SRSASN_SUCCESS; } void pucch_cfg_ded_v1250_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("nkaPUCCH-Param-r12"); nka_pucch_param_r12.to_json(j); j.end_obj(); } void pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("nkaPUCCH-AN-r12", c.nka_pucch_an_r12); j.end_obj(); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.nka_pucch_an_r12, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.nka_pucch_an_r12, bref, (uint16_t)0, (uint16_t)2047)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUCCH-ConfigDedicated-v1430 ::= SEQUENCE SRSASN_CODE pucch_cfg_ded_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pucch_num_repeat_ce_format1_r14_present, 1)); if (pucch_num_repeat_ce_format1_r14_present) { HANDLE_CODE(pack_enum(bref, pucch_num_repeat_ce_format1_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pucch_num_repeat_ce_format1_r14_present, 1)); if (pucch_num_repeat_ce_format1_r14_present) { HANDLE_CODE(unpack_enum(pucch_num_repeat_ce_format1_r14, bref)); } return SRSASN_SUCCESS; } void pucch_cfg_ded_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (pucch_num_repeat_ce_format1_r14_present) { j.write_str("pucch-NumRepetitionCE-format1-r14", pucch_num_repeat_ce_format1_r14.to_string()); } j.end_obj(); } // PUSCH-ConfigDedicated ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, beta_offset_ack_idx, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, beta_offset_ri_idx, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, beta_offset_cqi_idx, (uint8_t)0, (uint8_t)15)); return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(beta_offset_ack_idx, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(beta_offset_ri_idx, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(beta_offset_cqi_idx, bref, (uint8_t)0, (uint8_t)15)); return SRSASN_SUCCESS; } void pusch_cfg_ded_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("betaOffset-ACK-Index", beta_offset_ack_idx); j.write_int("betaOffset-RI-Index", beta_offset_ri_idx); j.write_int("betaOffset-CQI-Index", beta_offset_cqi_idx); j.end_obj(); } // PUSCH-ConfigDedicated-r13 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(beta_offset2_ack_idx_r13_present, 1)); HANDLE_CODE(bref.pack(beta_offset_mc_r13_present, 1)); HANDLE_CODE(bref.pack(group_hop_disabled_r13_present, 1)); HANDLE_CODE(bref.pack(dmrs_with_occ_activ_r13_present, 1)); HANDLE_CODE(bref.pack(pusch_dmrs_r11_present, 1)); HANDLE_CODE(bref.pack(uci_on_pusch_present, 1)); HANDLE_CODE(bref.pack(pusch_hop_cfg_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, beta_offset_ack_idx_r13, (uint8_t)0, (uint8_t)15)); if (beta_offset2_ack_idx_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, beta_offset2_ack_idx_r13, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(pack_unalign_integer(bref, beta_offset_ri_idx_r13, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, beta_offset_cqi_idx_r13, (uint8_t)0, (uint8_t)15)); if (beta_offset_mc_r13_present) { HANDLE_CODE(bref.pack(beta_offset_mc_r13.beta_offset2_ack_idx_mc_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, beta_offset_mc_r13.beta_offset_ack_idx_mc_r13, (uint8_t)0, (uint8_t)15)); if (beta_offset_mc_r13.beta_offset2_ack_idx_mc_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, beta_offset_mc_r13.beta_offset2_ack_idx_mc_r13, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(pack_unalign_integer(bref, beta_offset_mc_r13.beta_offset_ri_idx_mc_r13, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, beta_offset_mc_r13.beta_offset_cqi_idx_mc_r13, (uint8_t)0, (uint8_t)15)); } if (pusch_dmrs_r11_present) { HANDLE_CODE(pusch_dmrs_r11.pack(bref)); } if (uci_on_pusch_present) { HANDLE_CODE(uci_on_pusch.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(beta_offset2_ack_idx_r13_present, 1)); HANDLE_CODE(bref.unpack(beta_offset_mc_r13_present, 1)); HANDLE_CODE(bref.unpack(group_hop_disabled_r13_present, 1)); HANDLE_CODE(bref.unpack(dmrs_with_occ_activ_r13_present, 1)); HANDLE_CODE(bref.unpack(pusch_dmrs_r11_present, 1)); HANDLE_CODE(bref.unpack(uci_on_pusch_present, 1)); HANDLE_CODE(bref.unpack(pusch_hop_cfg_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(beta_offset_ack_idx_r13, bref, (uint8_t)0, (uint8_t)15)); if (beta_offset2_ack_idx_r13_present) { HANDLE_CODE(unpack_unalign_integer(beta_offset2_ack_idx_r13, bref, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(unpack_unalign_integer(beta_offset_ri_idx_r13, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(beta_offset_cqi_idx_r13, bref, (uint8_t)0, (uint8_t)15)); if (beta_offset_mc_r13_present) { HANDLE_CODE(bref.unpack(beta_offset_mc_r13.beta_offset2_ack_idx_mc_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(beta_offset_mc_r13.beta_offset_ack_idx_mc_r13, bref, (uint8_t)0, (uint8_t)15)); if (beta_offset_mc_r13.beta_offset2_ack_idx_mc_r13_present) { HANDLE_CODE( unpack_unalign_integer(beta_offset_mc_r13.beta_offset2_ack_idx_mc_r13, bref, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(unpack_unalign_integer(beta_offset_mc_r13.beta_offset_ri_idx_mc_r13, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(beta_offset_mc_r13.beta_offset_cqi_idx_mc_r13, bref, (uint8_t)0, (uint8_t)15)); } if (pusch_dmrs_r11_present) { HANDLE_CODE(pusch_dmrs_r11.unpack(bref)); } if (uci_on_pusch_present) { HANDLE_CODE(uci_on_pusch.unpack(bref)); } return SRSASN_SUCCESS; } void pusch_cfg_ded_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("betaOffset-ACK-Index-r13", beta_offset_ack_idx_r13); if (beta_offset2_ack_idx_r13_present) { j.write_int("betaOffset2-ACK-Index-r13", beta_offset2_ack_idx_r13); } j.write_int("betaOffset-RI-Index-r13", beta_offset_ri_idx_r13); j.write_int("betaOffset-CQI-Index-r13", beta_offset_cqi_idx_r13); if (beta_offset_mc_r13_present) { j.write_fieldname("betaOffsetMC-r13"); j.start_obj(); j.write_int("betaOffset-ACK-Index-MC-r13", beta_offset_mc_r13.beta_offset_ack_idx_mc_r13); if (beta_offset_mc_r13.beta_offset2_ack_idx_mc_r13_present) { j.write_int("betaOffset2-ACK-Index-MC-r13", beta_offset_mc_r13.beta_offset2_ack_idx_mc_r13); } j.write_int("betaOffset-RI-Index-MC-r13", beta_offset_mc_r13.beta_offset_ri_idx_mc_r13); j.write_int("betaOffset-CQI-Index-MC-r13", beta_offset_mc_r13.beta_offset_cqi_idx_mc_r13); j.end_obj(); } if (group_hop_disabled_r13_present) { j.write_str("groupHoppingDisabled-r13", "true"); } if (dmrs_with_occ_activ_r13_present) { j.write_str("dmrs-WithOCC-Activated-r13", "true"); } if (pusch_dmrs_r11_present) { j.write_fieldname("pusch-DMRS-r11"); pusch_dmrs_r11.to_json(j); } if (uci_on_pusch_present) { j.write_fieldname("uciOnPUSCH"); uci_on_pusch.to_json(j); } if (pusch_hop_cfg_r13_present) { j.write_str("pusch-HoppingConfig-r13", "on"); } j.end_obj(); } void pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::set(types::options e) { type_ = e; } void pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("nPUSCH-Identity-r13", c.n_pusch_id_r13); j.write_int("nDMRS-CSH-Identity-r13", c.n_dmrs_csh_id_r13); j.end_obj(); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_"); } j.end_obj(); } SRSASN_CODE pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.n_pusch_id_r13, (uint16_t)0, (uint16_t)509)); HANDLE_CODE(pack_unalign_integer(bref, c.n_dmrs_csh_id_r13, (uint16_t)0, (uint16_t)509)); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.n_pusch_id_r13, bref, (uint16_t)0, (uint16_t)509)); HANDLE_CODE(unpack_unalign_integer(c.n_dmrs_csh_id_r13, bref, (uint16_t)0, (uint16_t)509)); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pusch_cfg_ded_r13_s::uci_on_pusch_c_::set(types::options e) { type_ = e; } void pusch_cfg_ded_r13_s::uci_on_pusch_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("betaOffset-ACK-Index-SubframeSet2-r13", c.beta_offset_ack_idx_sf_set2_r13); if (c.beta_offset2_ack_idx_sf_set2_r13_present) { j.write_int("betaOffset2-ACK-Index-SubframeSet2-r13", c.beta_offset2_ack_idx_sf_set2_r13); } j.write_int("betaOffset-RI-Index-SubframeSet2-r13", c.beta_offset_ri_idx_sf_set2_r13); j.write_int("betaOffset-CQI-Index-SubframeSet2-r13", c.beta_offset_cqi_idx_sf_set2_r13); if (c.beta_offset_mc_r12_present) { j.write_fieldname("betaOffsetMC-r12"); j.start_obj(); j.write_int("betaOffset-ACK-Index-MC-SubframeSet2-r13", c.beta_offset_mc_r12.beta_offset_ack_idx_mc_sf_set2_r13); if (c.beta_offset_mc_r12.beta_offset2_ack_idx_mc_sf_set2_r13_present) { j.write_int("betaOffset2-ACK-Index-MC-SubframeSet2-r13", c.beta_offset_mc_r12.beta_offset2_ack_idx_mc_sf_set2_r13); } j.write_int("betaOffset-RI-Index-MC-SubframeSet2-r13", c.beta_offset_mc_r12.beta_offset_ri_idx_mc_sf_set2_r13); j.write_int("betaOffset-CQI-Index-MC-SubframeSet2-r13", c.beta_offset_mc_r12.beta_offset_cqi_idx_mc_sf_set2_r13); j.end_obj(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_r13_s::uci_on_pusch_c_"); } j.end_obj(); } SRSASN_CODE pusch_cfg_ded_r13_s::uci_on_pusch_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.beta_offset2_ack_idx_sf_set2_r13_present, 1)); HANDLE_CODE(bref.pack(c.beta_offset_mc_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_ack_idx_sf_set2_r13, (uint8_t)0, (uint8_t)15)); if (c.beta_offset2_ack_idx_sf_set2_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset2_ack_idx_sf_set2_r13, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_ri_idx_sf_set2_r13, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_cqi_idx_sf_set2_r13, (uint8_t)0, (uint8_t)15)); if (c.beta_offset_mc_r12_present) { HANDLE_CODE(bref.pack(c.beta_offset_mc_r12.beta_offset2_ack_idx_mc_sf_set2_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_mc_r12.beta_offset_ack_idx_mc_sf_set2_r13, (uint8_t)0, (uint8_t)15)); if (c.beta_offset_mc_r12.beta_offset2_ack_idx_mc_sf_set2_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_mc_r12.beta_offset2_ack_idx_mc_sf_set2_r13, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_mc_r12.beta_offset_ri_idx_mc_sf_set2_r13, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_mc_r12.beta_offset_cqi_idx_mc_sf_set2_r13, (uint8_t)0, (uint8_t)15)); } break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_r13_s::uci_on_pusch_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_r13_s::uci_on_pusch_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.beta_offset2_ack_idx_sf_set2_r13_present, 1)); HANDLE_CODE(bref.unpack(c.beta_offset_mc_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_ack_idx_sf_set2_r13, bref, (uint8_t)0, (uint8_t)15)); if (c.beta_offset2_ack_idx_sf_set2_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.beta_offset2_ack_idx_sf_set2_r13, bref, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(unpack_unalign_integer(c.beta_offset_ri_idx_sf_set2_r13, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_cqi_idx_sf_set2_r13, bref, (uint8_t)0, (uint8_t)15)); if (c.beta_offset_mc_r12_present) { HANDLE_CODE(bref.unpack(c.beta_offset_mc_r12.beta_offset2_ack_idx_mc_sf_set2_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_mc_r12.beta_offset_ack_idx_mc_sf_set2_r13, bref, (uint8_t)0, (uint8_t)15)); if (c.beta_offset_mc_r12.beta_offset2_ack_idx_mc_sf_set2_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.beta_offset_mc_r12.beta_offset2_ack_idx_mc_sf_set2_r13, bref, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(unpack_unalign_integer(c.beta_offset_mc_r12.beta_offset_ri_idx_mc_sf_set2_r13, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_mc_r12.beta_offset_cqi_idx_mc_sf_set2_r13, bref, (uint8_t)0, (uint8_t)15)); } break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_r13_s::uci_on_pusch_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUSCH-ConfigDedicated-v1020 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(beta_offset_mc_r10_present, 1)); HANDLE_CODE(bref.pack(group_hop_disabled_r10_present, 1)); HANDLE_CODE(bref.pack(dmrs_with_occ_activ_r10_present, 1)); if (beta_offset_mc_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, beta_offset_mc_r10.beta_offset_ack_idx_mc_r10, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, beta_offset_mc_r10.beta_offset_ri_idx_mc_r10, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, beta_offset_mc_r10.beta_offset_cqi_idx_mc_r10, (uint8_t)0, (uint8_t)15)); } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(beta_offset_mc_r10_present, 1)); HANDLE_CODE(bref.unpack(group_hop_disabled_r10_present, 1)); HANDLE_CODE(bref.unpack(dmrs_with_occ_activ_r10_present, 1)); if (beta_offset_mc_r10_present) { HANDLE_CODE(unpack_unalign_integer(beta_offset_mc_r10.beta_offset_ack_idx_mc_r10, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(beta_offset_mc_r10.beta_offset_ri_idx_mc_r10, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(beta_offset_mc_r10.beta_offset_cqi_idx_mc_r10, bref, (uint8_t)0, (uint8_t)15)); } return SRSASN_SUCCESS; } void pusch_cfg_ded_v1020_s::to_json(json_writer& j) const { j.start_obj(); if (beta_offset_mc_r10_present) { j.write_fieldname("betaOffsetMC-r10"); j.start_obj(); j.write_int("betaOffset-ACK-Index-MC-r10", beta_offset_mc_r10.beta_offset_ack_idx_mc_r10); j.write_int("betaOffset-RI-Index-MC-r10", beta_offset_mc_r10.beta_offset_ri_idx_mc_r10); j.write_int("betaOffset-CQI-Index-MC-r10", beta_offset_mc_r10.beta_offset_cqi_idx_mc_r10); j.end_obj(); } if (group_hop_disabled_r10_present) { j.write_str("groupHoppingDisabled-r10", "true"); } if (dmrs_with_occ_activ_r10_present) { j.write_str("dmrs-WithOCC-Activated-r10", "true"); } j.end_obj(); } // PUSCH-ConfigDedicated-v1130 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(pusch_dmrs_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(pusch_dmrs_r11.unpack(bref)); return SRSASN_SUCCESS; } void pusch_cfg_ded_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("pusch-DMRS-r11"); pusch_dmrs_r11.to_json(j); j.end_obj(); } void pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::set(types::options e) { type_ = e; } void pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("nPUSCH-Identity-r11", c.n_pusch_id_r11); j.write_int("nDMRS-CSH-Identity-r11", c.n_dmrs_csh_id_r11); j.end_obj(); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_"); } j.end_obj(); } SRSASN_CODE pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.n_pusch_id_r11, (uint16_t)0, (uint16_t)509)); HANDLE_CODE(pack_unalign_integer(bref, c.n_dmrs_csh_id_r11, (uint16_t)0, (uint16_t)509)); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.n_pusch_id_r11, bref, (uint16_t)0, (uint16_t)509)); HANDLE_CODE(unpack_unalign_integer(c.n_dmrs_csh_id_r11, bref, (uint16_t)0, (uint16_t)509)); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUSCH-ConfigDedicated-v1250 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(uci_on_pusch.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(uci_on_pusch.unpack(bref)); return SRSASN_SUCCESS; } void pusch_cfg_ded_v1250_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("uciOnPUSCH"); uci_on_pusch.to_json(j); j.end_obj(); } void pusch_cfg_ded_v1250_s::uci_on_pusch_c_::set(types::options e) { type_ = e; } void pusch_cfg_ded_v1250_s::uci_on_pusch_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("betaOffset-ACK-Index-SubframeSet2-r12", c.beta_offset_ack_idx_sf_set2_r12); j.write_int("betaOffset-RI-Index-SubframeSet2-r12", c.beta_offset_ri_idx_sf_set2_r12); j.write_int("betaOffset-CQI-Index-SubframeSet2-r12", c.beta_offset_cqi_idx_sf_set2_r12); if (c.beta_offset_mc_r12_present) { j.write_fieldname("betaOffsetMC-r12"); j.start_obj(); j.write_int("betaOffset-ACK-Index-MC-SubframeSet2-r12", c.beta_offset_mc_r12.beta_offset_ack_idx_mc_sf_set2_r12); j.write_int("betaOffset-RI-Index-MC-SubframeSet2-r12", c.beta_offset_mc_r12.beta_offset_ri_idx_mc_sf_set2_r12); j.write_int("betaOffset-CQI-Index-MC-SubframeSet2-r12", c.beta_offset_mc_r12.beta_offset_cqi_idx_mc_sf_set2_r12); j.end_obj(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1250_s::uci_on_pusch_c_"); } j.end_obj(); } SRSASN_CODE pusch_cfg_ded_v1250_s::uci_on_pusch_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.beta_offset_mc_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_ack_idx_sf_set2_r12, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_ri_idx_sf_set2_r12, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_cqi_idx_sf_set2_r12, (uint8_t)0, (uint8_t)15)); if (c.beta_offset_mc_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_mc_r12.beta_offset_ack_idx_mc_sf_set2_r12, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_mc_r12.beta_offset_ri_idx_mc_sf_set2_r12, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_mc_r12.beta_offset_cqi_idx_mc_sf_set2_r12, (uint8_t)0, (uint8_t)15)); } break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1250_s::uci_on_pusch_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1250_s::uci_on_pusch_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.beta_offset_mc_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_ack_idx_sf_set2_r12, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_ri_idx_sf_set2_r12, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_cqi_idx_sf_set2_r12, bref, (uint8_t)0, (uint8_t)15)); if (c.beta_offset_mc_r12_present) { HANDLE_CODE(unpack_unalign_integer(c.beta_offset_mc_r12.beta_offset_ack_idx_mc_sf_set2_r12, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_mc_r12.beta_offset_ri_idx_mc_sf_set2_r12, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(c.beta_offset_mc_r12.beta_offset_cqi_idx_mc_sf_set2_r12, bref, (uint8_t)0, (uint8_t)15)); } break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1250_s::uci_on_pusch_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUSCH-ConfigDedicated-v1430 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_pusch_nb_max_tbs_r14_present, 1)); HANDLE_CODE(bref.pack(ce_pusch_max_bw_r14_present, 1)); HANDLE_CODE(bref.pack(tdd_pusch_up_pts_r14_present, 1)); HANDLE_CODE(bref.pack(enable256_qam_r14_present, 1)); if (tdd_pusch_up_pts_r14_present) { HANDLE_CODE(tdd_pusch_up_pts_r14.pack(bref)); } HANDLE_CODE(bref.pack(ul_dmrs_ifdma_r14, 1)); if (enable256_qam_r14_present) { HANDLE_CODE(enable256_qam_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_pusch_nb_max_tbs_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_pusch_max_bw_r14_present, 1)); HANDLE_CODE(bref.unpack(tdd_pusch_up_pts_r14_present, 1)); HANDLE_CODE(bref.unpack(enable256_qam_r14_present, 1)); if (tdd_pusch_up_pts_r14_present) { HANDLE_CODE(tdd_pusch_up_pts_r14.unpack(bref)); } HANDLE_CODE(bref.unpack(ul_dmrs_ifdma_r14, 1)); if (enable256_qam_r14_present) { HANDLE_CODE(enable256_qam_r14.unpack(bref)); } return SRSASN_SUCCESS; } void pusch_cfg_ded_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (ce_pusch_nb_max_tbs_r14_present) { j.write_str("ce-PUSCH-NB-MaxTBS-r14", "on"); } if (ce_pusch_max_bw_r14_present) { j.write_str("ce-PUSCH-MaxBandwidth-r14", "bw5"); } if (tdd_pusch_up_pts_r14_present) { j.write_fieldname("tdd-PUSCH-UpPTS-r14"); tdd_pusch_up_pts_r14.to_json(j); } j.write_bool("ul-DMRS-IFDMA-r14", ul_dmrs_ifdma_r14); if (enable256_qam_r14_present) { j.write_fieldname("enable256QAM-r14"); enable256_qam_r14.to_json(j); } j.end_obj(); } // PUSCH-ConfigDedicated-v1530 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_pusch_sub_prb_cfg_r15_present, 1)); HANDLE_CODE(ce_pusch_flex_start_prb_alloc_cfg_r15.pack(bref)); if (ce_pusch_sub_prb_cfg_r15_present) { HANDLE_CODE(ce_pusch_sub_prb_cfg_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_pusch_sub_prb_cfg_r15_present, 1)); HANDLE_CODE(ce_pusch_flex_start_prb_alloc_cfg_r15.unpack(bref)); if (ce_pusch_sub_prb_cfg_r15_present) { HANDLE_CODE(ce_pusch_sub_prb_cfg_r15.unpack(bref)); } return SRSASN_SUCCESS; } void pusch_cfg_ded_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ce-PUSCH-FlexibleStartPRB-AllocConfig-r15"); ce_pusch_flex_start_prb_alloc_cfg_r15.to_json(j); if (ce_pusch_sub_prb_cfg_r15_present) { j.write_fieldname("ce-PUSCH-SubPRB-Config-r15"); ce_pusch_sub_prb_cfg_r15.to_json(j); } j.end_obj(); } void pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::set(types::options e) { type_ = e; } void pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.offset_ce_mode_b_r15_present) { j.write_int("offsetCE-ModeB-r15", c.offset_ce_mode_b_r15); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.offset_ce_mode_b_r15_present, 1)); if (c.offset_ce_mode_b_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.offset_ce_mode_b_r15, (int8_t)-1, (int8_t)3)); } break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.offset_ce_mode_b_r15_present, 1)); if (c.offset_ce_mode_b_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.offset_ce_mode_b_r15, bref, (int8_t)-1, (int8_t)3)); } break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::set(types::options e) { type_ = e; } void pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.location_ce_mode_b_r15_present) { j.write_int("locationCE-ModeB-r15", c.location_ce_mode_b_r15); } j.write_int("sixToneCyclicShift-r15", c.six_tone_cyclic_shift_r15); j.write_int("threeToneCyclicShift-r15", c.three_tone_cyclic_shift_r15); j.end_obj(); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.location_ce_mode_b_r15_present, 1)); if (c.location_ce_mode_b_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.location_ce_mode_b_r15, (uint8_t)0, (uint8_t)5)); } HANDLE_CODE(pack_unalign_integer(bref, c.six_tone_cyclic_shift_r15, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_unalign_integer(bref, c.three_tone_cyclic_shift_r15, (uint8_t)0, (uint8_t)2)); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.location_ce_mode_b_r15_present, 1)); if (c.location_ce_mode_b_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.location_ce_mode_b_r15, bref, (uint8_t)0, (uint8_t)5)); } HANDLE_CODE(unpack_unalign_integer(c.six_tone_cyclic_shift_r15, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_unalign_integer(c.three_tone_cyclic_shift_r15, bref, (uint8_t)0, (uint8_t)2)); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUSCH-EnhancementsConfig-r14 ::= CHOICE void pusch_enhance_cfg_r14_c::set(types::options e) { type_ = e; } void pusch_enhance_cfg_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.pusch_hop_offset_pusch_enh_r14_present) { j.write_int("pusch-HoppingOffsetPUSCH-Enh-r14", c.pusch_hop_offset_pusch_enh_r14); } if (c.interv_ul_hop_pusch_enh_r14_present) { j.write_fieldname("interval-ULHoppingPUSCH-Enh-r14"); c.interv_ul_hop_pusch_enh_r14.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "pusch_enhance_cfg_r14_c"); } j.end_obj(); } SRSASN_CODE pusch_enhance_cfg_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.pusch_hop_offset_pusch_enh_r14_present, 1)); HANDLE_CODE(bref.pack(c.interv_ul_hop_pusch_enh_r14_present, 1)); if (c.pusch_hop_offset_pusch_enh_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, c.pusch_hop_offset_pusch_enh_r14, (uint8_t)1, (uint8_t)100)); } if (c.interv_ul_hop_pusch_enh_r14_present) { HANDLE_CODE(c.interv_ul_hop_pusch_enh_r14.pack(bref)); } break; default: log_invalid_choice_id(type_, "pusch_enhance_cfg_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_enhance_cfg_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.pusch_hop_offset_pusch_enh_r14_present, 1)); HANDLE_CODE(bref.unpack(c.interv_ul_hop_pusch_enh_r14_present, 1)); if (c.pusch_hop_offset_pusch_enh_r14_present) { HANDLE_CODE(unpack_unalign_integer(c.pusch_hop_offset_pusch_enh_r14, bref, (uint8_t)1, (uint8_t)100)); } if (c.interv_ul_hop_pusch_enh_r14_present) { HANDLE_CODE(c.interv_ul_hop_pusch_enh_r14.unpack(bref)); } break; default: log_invalid_choice_id(type_, "pusch_enhance_cfg_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::destroy_() {} void pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::set(types::options e) { destroy_(); type_ = e; } pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::interv_ul_hop_pusch_enh_r14_c_( const pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_& other) { type_ = other.type(); switch (type_) { case types::interv_fdd_pusch_enh_r14: c.init(other.c.get()); break; case types::interv_tdd_pusch_enh_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_"); } } pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_& pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_:: operator=(const pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::interv_fdd_pusch_enh_r14: c.set(other.c.get()); break; case types::interv_tdd_pusch_enh_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_"); } return *this; } void pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::interv_fdd_pusch_enh_r14: j.write_str("interval-FDD-PUSCH-Enh-r14", c.get().to_string()); break; case types::interv_tdd_pusch_enh_r14: j.write_str("interval-TDD-PUSCH-Enh-r14", c.get().to_string()); break; default: log_invalid_choice_id(type_, "pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_"); } j.end_obj(); } SRSASN_CODE pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interv_fdd_pusch_enh_r14: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::interv_tdd_pusch_enh_r14: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interv_fdd_pusch_enh_r14: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::interv_tdd_pusch_enh_r14: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PhysicalConfigDedicatedSTTI-r15 ::= CHOICE void phys_cfg_ded_stti_r15_c::set(types::options e) { type_ = e; } void phys_cfg_ded_stti_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.ant_info_ded_stti_r15_present) { j.write_fieldname("antennaInfoDedicatedSTTI-r15"); c.ant_info_ded_stti_r15.to_json(j); } if (c.ant_info_ul_stti_r15_present) { j.write_fieldname("antennaInfoUL-STTI-r15"); c.ant_info_ul_stti_r15.to_json(j); } if (c.pucch_cfg_ded_v1530_present) { j.write_fieldname("pucch-ConfigDedicated-v1530"); c.pucch_cfg_ded_v1530.to_json(j); } if (c.sched_request_cfg_v1530_present) { j.write_fieldname("schedulingRequestConfig-v1530"); c.sched_request_cfg_v1530.to_json(j); } if (c.ul_pwr_ctrl_ded_stti_r15_present) { j.write_fieldname("uplinkPowerControlDedicatedSTTI-r15"); c.ul_pwr_ctrl_ded_stti_r15.to_json(j); } if (c.cqi_report_cfg_r15_present) { j.write_fieldname("cqi-ReportConfig-r15"); c.cqi_report_cfg_r15.to_json(j); } if (c.csi_rs_cfg_r15_present) { j.write_fieldname("csi-RS-Config-r15"); c.csi_rs_cfg_r15.to_json(j); } if (c.csi_rs_cfg_nzp_to_release_list_r15_present) { j.start_array("csi-RS-ConfigNZPToReleaseList-r15"); for (uint32_t i1 = 0; i1 < c.csi_rs_cfg_nzp_to_release_list_r15.size(); ++i1) { j.write_int(c.csi_rs_cfg_nzp_to_release_list_r15[i1]); } j.end_array(); } if (c.csi_rs_cfg_nzp_to_add_mod_list_r15_present) { j.start_array("csi-RS-ConfigNZPToAddModList-r15"); for (uint32_t i1 = 0; i1 < c.csi_rs_cfg_nzp_to_add_mod_list_r15.size(); ++i1) { c.csi_rs_cfg_nzp_to_add_mod_list_r15[i1].to_json(j); } j.end_array(); } if (c.csi_rs_cfg_zp_to_release_list_r15_present) { j.start_array("csi-RS-ConfigZPToReleaseList-r15"); for (uint32_t i1 = 0; i1 < c.csi_rs_cfg_zp_to_release_list_r15.size(); ++i1) { j.write_int(c.csi_rs_cfg_zp_to_release_list_r15[i1]); } j.end_array(); } if (c.csi_rs_cfg_zp_to_add_mod_list_r11_present) { j.start_array("csi-RS-ConfigZPToAddModList-r11"); for (uint32_t i1 = 0; i1 < c.csi_rs_cfg_zp_to_add_mod_list_r11.size(); ++i1) { c.csi_rs_cfg_zp_to_add_mod_list_r11[i1].to_json(j); } j.end_array(); } if (c.csi_rs_cfg_zp_ap_list_r15_present) { j.write_fieldname("csi-RS-ConfigZP-ApList-r15"); c.csi_rs_cfg_zp_ap_list_r15.to_json(j); } if (c.eimta_main_cfg_r12_present) { j.write_fieldname("eimta-MainConfig-r12"); c.eimta_main_cfg_r12.to_json(j); } if (c.eimta_main_cfg_serv_cell_r15_present) { j.write_fieldname("eimta-MainConfigServCell-r15"); c.eimta_main_cfg_serv_cell_r15.to_json(j); } j.write_bool("semiOpenLoopSTTI-r15", c.semi_open_loop_stti_r15); if (c.slot_or_subslot_pdsch_cfg_r15_present) { j.write_fieldname("slotOrSubslotPDSCH-Config-r15"); c.slot_or_subslot_pdsch_cfg_r15.to_json(j); } if (c.slot_or_subslot_pusch_cfg_r15_present) { j.write_fieldname("slotOrSubslotPUSCH-Config-r15"); c.slot_or_subslot_pusch_cfg_r15.to_json(j); } if (c.spdcch_cfg_r15_present) { j.write_fieldname("spdcch-Config-r15"); c.spdcch_cfg_r15.to_json(j); } if (c.spucch_cfg_r15_present) { j.write_fieldname("spucch-Config-r15"); c.spucch_cfg_r15.to_json(j); } j.write_bool("srs-DCI7-TriggeringConfig-r15", c.srs_dci7_triggering_cfg_r15); j.write_bool("shortProcessingTime-r15", c.short_processing_time_r15); if (c.short_tti_r15_present) { j.write_fieldname("shortTTI-r15"); c.short_tti_r15.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_stti_r15_c"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_stti_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.ant_info_ded_stti_r15_present, 1)); HANDLE_CODE(bref.pack(c.ant_info_ul_stti_r15_present, 1)); HANDLE_CODE(bref.pack(c.pucch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.pack(c.sched_request_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(c.ul_pwr_ctrl_ded_stti_r15_present, 1)); HANDLE_CODE(bref.pack(c.cqi_report_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_nzp_to_release_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_nzp_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_zp_to_release_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_zp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.pack(c.csi_rs_cfg_zp_ap_list_r15_present, 1)); HANDLE_CODE(bref.pack(c.eimta_main_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(c.eimta_main_cfg_serv_cell_r15_present, 1)); HANDLE_CODE(bref.pack(c.slot_or_subslot_pdsch_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.slot_or_subslot_pusch_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.spdcch_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.spucch_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.short_tti_r15_present, 1)); if (c.ant_info_ded_stti_r15_present) { HANDLE_CODE(c.ant_info_ded_stti_r15.pack(bref)); } if (c.ant_info_ul_stti_r15_present) { HANDLE_CODE(c.ant_info_ul_stti_r15.pack(bref)); } if (c.pucch_cfg_ded_v1530_present) { HANDLE_CODE(c.pucch_cfg_ded_v1530.pack(bref)); } if (c.sched_request_cfg_v1530_present) { HANDLE_CODE(c.sched_request_cfg_v1530.pack(bref)); } if (c.ul_pwr_ctrl_ded_stti_r15_present) { HANDLE_CODE(c.ul_pwr_ctrl_ded_stti_r15.pack(bref)); } if (c.cqi_report_cfg_r15_present) { HANDLE_CODE(c.cqi_report_cfg_r15.pack(bref)); } if (c.csi_rs_cfg_r15_present) { HANDLE_CODE(c.csi_rs_cfg_r15.pack(bref)); } if (c.csi_rs_cfg_nzp_to_release_list_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.csi_rs_cfg_nzp_to_release_list_r15, 1, 24, UnalignedIntegerPacker(1, 24))); } if (c.csi_rs_cfg_nzp_to_add_mod_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.csi_rs_cfg_nzp_to_add_mod_list_r15, 1, 24)); } if (c.csi_rs_cfg_zp_to_release_list_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.csi_rs_cfg_zp_to_release_list_r15, 1, 4, UnalignedIntegerPacker(1, 4))); } if (c.csi_rs_cfg_zp_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.csi_rs_cfg_zp_to_add_mod_list_r11, 1, 4)); } if (c.csi_rs_cfg_zp_ap_list_r15_present) { HANDLE_CODE(c.csi_rs_cfg_zp_ap_list_r15.pack(bref)); } if (c.eimta_main_cfg_r12_present) { HANDLE_CODE(c.eimta_main_cfg_r12.pack(bref)); } if (c.eimta_main_cfg_serv_cell_r15_present) { HANDLE_CODE(c.eimta_main_cfg_serv_cell_r15.pack(bref)); } HANDLE_CODE(bref.pack(c.semi_open_loop_stti_r15, 1)); if (c.slot_or_subslot_pdsch_cfg_r15_present) { HANDLE_CODE(c.slot_or_subslot_pdsch_cfg_r15.pack(bref)); } if (c.slot_or_subslot_pusch_cfg_r15_present) { HANDLE_CODE(c.slot_or_subslot_pusch_cfg_r15.pack(bref)); } if (c.spdcch_cfg_r15_present) { HANDLE_CODE(c.spdcch_cfg_r15.pack(bref)); } if (c.spucch_cfg_r15_present) { HANDLE_CODE(c.spucch_cfg_r15.pack(bref)); } HANDLE_CODE(bref.pack(c.srs_dci7_triggering_cfg_r15, 1)); HANDLE_CODE(bref.pack(c.short_processing_time_r15, 1)); if (c.short_tti_r15_present) { HANDLE_CODE(c.short_tti_r15.pack(bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_stti_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_stti_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.ant_info_ded_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.ant_info_ul_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.pucch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.unpack(c.sched_request_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(c.ul_pwr_ctrl_ded_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_report_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_nzp_to_release_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_nzp_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_zp_to_release_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_zp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.unpack(c.csi_rs_cfg_zp_ap_list_r15_present, 1)); HANDLE_CODE(bref.unpack(c.eimta_main_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(c.eimta_main_cfg_serv_cell_r15_present, 1)); HANDLE_CODE(bref.unpack(c.slot_or_subslot_pdsch_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.slot_or_subslot_pusch_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.spdcch_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.spucch_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.short_tti_r15_present, 1)); if (c.ant_info_ded_stti_r15_present) { HANDLE_CODE(c.ant_info_ded_stti_r15.unpack(bref)); } if (c.ant_info_ul_stti_r15_present) { HANDLE_CODE(c.ant_info_ul_stti_r15.unpack(bref)); } if (c.pucch_cfg_ded_v1530_present) { HANDLE_CODE(c.pucch_cfg_ded_v1530.unpack(bref)); } if (c.sched_request_cfg_v1530_present) { HANDLE_CODE(c.sched_request_cfg_v1530.unpack(bref)); } if (c.ul_pwr_ctrl_ded_stti_r15_present) { HANDLE_CODE(c.ul_pwr_ctrl_ded_stti_r15.unpack(bref)); } if (c.cqi_report_cfg_r15_present) { HANDLE_CODE(c.cqi_report_cfg_r15.unpack(bref)); } if (c.csi_rs_cfg_r15_present) { HANDLE_CODE(c.csi_rs_cfg_r15.unpack(bref)); } if (c.csi_rs_cfg_nzp_to_release_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.csi_rs_cfg_nzp_to_release_list_r15, bref, 1, 24, UnalignedIntegerPacker(1, 24))); } if (c.csi_rs_cfg_nzp_to_add_mod_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.csi_rs_cfg_nzp_to_add_mod_list_r15, bref, 1, 24)); } if (c.csi_rs_cfg_zp_to_release_list_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(c.csi_rs_cfg_zp_to_release_list_r15, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (c.csi_rs_cfg_zp_to_add_mod_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(c.csi_rs_cfg_zp_to_add_mod_list_r11, bref, 1, 4)); } if (c.csi_rs_cfg_zp_ap_list_r15_present) { HANDLE_CODE(c.csi_rs_cfg_zp_ap_list_r15.unpack(bref)); } if (c.eimta_main_cfg_r12_present) { HANDLE_CODE(c.eimta_main_cfg_r12.unpack(bref)); } if (c.eimta_main_cfg_serv_cell_r15_present) { HANDLE_CODE(c.eimta_main_cfg_serv_cell_r15.unpack(bref)); } HANDLE_CODE(bref.unpack(c.semi_open_loop_stti_r15, 1)); if (c.slot_or_subslot_pdsch_cfg_r15_present) { HANDLE_CODE(c.slot_or_subslot_pdsch_cfg_r15.unpack(bref)); } if (c.slot_or_subslot_pusch_cfg_r15_present) { HANDLE_CODE(c.slot_or_subslot_pusch_cfg_r15.unpack(bref)); } if (c.spdcch_cfg_r15_present) { HANDLE_CODE(c.spdcch_cfg_r15.unpack(bref)); } if (c.spucch_cfg_r15_present) { HANDLE_CODE(c.spucch_cfg_r15.unpack(bref)); } HANDLE_CODE(bref.unpack(c.srs_dci7_triggering_cfg_r15, 1)); HANDLE_CODE(bref.unpack(c.short_processing_time_r15, 1)); if (c.short_tti_r15_present) { HANDLE_CODE(c.short_tti_r15.unpack(bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_stti_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReject-v1130-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reject_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(depriorit_req_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (depriorit_req_r11_present) { HANDLE_CODE(pack_enum(bref, depriorit_req_r11.depriorit_type_r11)); HANDLE_CODE(pack_enum(bref, depriorit_req_r11.depriorit_timer_r11)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reject_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(depriorit_req_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (depriorit_req_r11_present) { HANDLE_CODE(unpack_enum(depriorit_req_r11.depriorit_type_r11, bref)); HANDLE_CODE(unpack_enum(depriorit_req_r11.depriorit_timer_r11, bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reject_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (depriorit_req_r11_present) { j.write_fieldname("deprioritisationReq-r11"); j.start_obj(); j.write_str("deprioritisationType-r11", depriorit_req_r11.depriorit_type_r11.to_string()); j.write_str("deprioritisationTimer-r11", depriorit_req_r11.depriorit_timer_r11.to_string()); j.end_obj(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SPS-ConfigDL ::= CHOICE void sps_cfg_dl_c::set(types::options e) { type_ = e; } void sps_cfg_dl_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_c"); } j.end_obj(); } SRSASN_CODE sps_cfg_dl_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_dl_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_dl_c::setup_s_::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, semi_persist_sched_interv_dl)); HANDLE_CODE(pack_unalign_integer(bref, nof_conf_sps_processes, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pack_dyn_seq_of(bref, n1_pucch_an_persistent_list, 1, 4, UnalignedIntegerPacker(0, 2047))); if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(two_ant_port_activ_r10_present != (two_ant_port_activ_r10.get() != NULL), __FILE__, __LINE__); group_flags[0] |= two_ant_port_activ_r10_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(two_ant_port_activ_r10_present, 1)); if (two_ant_port_activ_r10_present) { HANDLE_CODE(two_ant_port_activ_r10->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_dl_c::setup_s_::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(semi_persist_sched_interv_dl, bref)); HANDLE_CODE(unpack_unalign_integer(nof_conf_sps_processes, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_dyn_seq_of(n1_pucch_an_persistent_list, bref, 1, 4, UnalignedIntegerPacker(0, 2047))); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(two_ant_port_activ_r10_present, 1)); if (two_ant_port_activ_r10_present) { two_ant_port_activ_r10 = make_copy_ptr(two_ant_port_activ_r10_c_()); HANDLE_CODE(two_ant_port_activ_r10->unpack(bref)); } } } return SRSASN_SUCCESS; } void sps_cfg_dl_c::setup_s_::to_json(json_writer& j) const { j.start_obj(); j.write_str("semiPersistSchedIntervalDL", semi_persist_sched_interv_dl.to_string()); j.write_int("numberOfConfSPS-Processes", nof_conf_sps_processes); j.start_array("n1PUCCH-AN-PersistentList"); for (uint32_t i1 = 0; i1 < n1_pucch_an_persistent_list.size(); ++i1) { j.write_int(n1_pucch_an_persistent_list[i1]); } j.end_array(); if (ext) { rrc_asn1_warn_assert(two_ant_port_activ_r10_present != (two_ant_port_activ_r10.get() != NULL), __FILE__, __LINE__); if (two_ant_port_activ_r10_present) { j.write_fieldname("twoAntennaPortActivated-r10"); two_ant_port_activ_r10->to_json(j); } } j.end_obj(); } void sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::set(types::options e) { type_ = e; } void sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("n1PUCCH-AN-PersistentListP1-r10"); for (uint32_t i1 = 0; i1 < c.n1_pucch_an_persistent_list_p1_r10.size(); ++i1) { j.write_int(c.n1_pucch_an_persistent_list_p1_r10[i1]); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_"); } j.end_obj(); } SRSASN_CODE sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE( pack_dyn_seq_of(bref, c.n1_pucch_an_persistent_list_p1_r10, 1, 4, UnalignedIntegerPacker(0, 2047))); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.n1_pucch_an_persistent_list_p1_r10, bref, 1, 4, UnalignedIntegerPacker(0, 2047))); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SRB-ToAddMod ::= SEQUENCE SRSASN_CODE srb_to_add_mod_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rlc_cfg_present, 1)); HANDLE_CODE(bref.pack(lc_ch_cfg_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, srb_id, (uint8_t)1, (uint8_t)2)); if (rlc_cfg_present) { HANDLE_CODE(rlc_cfg.pack(bref)); } if (lc_ch_cfg_present) { HANDLE_CODE(lc_ch_cfg.pack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= pdcp_ver_change_r15_present; rrc_asn1_warn_assert(rlc_cfg_v1530_present != (rlc_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[0] |= rlc_cfg_v1530_present; rrc_asn1_warn_assert(rlc_bearer_cfg_dupl_r15_present != (rlc_bearer_cfg_dupl_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= rlc_bearer_cfg_dupl_r15_present; group_flags[0] |= srb_id_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pdcp_ver_change_r15_present, 1)); HANDLE_CODE(bref.pack(rlc_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(rlc_bearer_cfg_dupl_r15_present, 1)); HANDLE_CODE(bref.pack(srb_id_v1530_present, 1)); if (rlc_cfg_v1530_present) { HANDLE_CODE(rlc_cfg_v1530->pack(bref)); } if (rlc_bearer_cfg_dupl_r15_present) { HANDLE_CODE(rlc_bearer_cfg_dupl_r15->pack(bref)); } if (srb_id_v1530_present) { HANDLE_CODE(pack_unalign_integer(bref, srb_id_v1530, (uint8_t)4, (uint8_t)4)); } } } return SRSASN_SUCCESS; } SRSASN_CODE srb_to_add_mod_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rlc_cfg_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_cfg_present, 1)); HANDLE_CODE(unpack_unalign_integer(srb_id, bref, (uint8_t)1, (uint8_t)2)); if (rlc_cfg_present) { HANDLE_CODE(rlc_cfg.unpack(bref)); } if (lc_ch_cfg_present) { HANDLE_CODE(lc_ch_cfg.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pdcp_ver_change_r15_present, 1)); HANDLE_CODE(bref.unpack(rlc_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(rlc_bearer_cfg_dupl_r15_present, 1)); HANDLE_CODE(bref.unpack(srb_id_v1530_present, 1)); if (rlc_cfg_v1530_present) { rlc_cfg_v1530 = make_copy_ptr(rlc_cfg_v1530_c()); HANDLE_CODE(rlc_cfg_v1530->unpack(bref)); } if (rlc_bearer_cfg_dupl_r15_present) { rlc_bearer_cfg_dupl_r15 = make_copy_ptr(rlc_bearer_cfg_r15_c()); HANDLE_CODE(rlc_bearer_cfg_dupl_r15->unpack(bref)); } if (srb_id_v1530_present) { HANDLE_CODE(unpack_unalign_integer(srb_id_v1530, bref, (uint8_t)4, (uint8_t)4)); } } } return SRSASN_SUCCESS; } void srb_to_add_mod_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("srb-Identity", srb_id); if (rlc_cfg_present) { j.write_fieldname("rlc-Config"); rlc_cfg.to_json(j); } if (lc_ch_cfg_present) { j.write_fieldname("logicalChannelConfig"); lc_ch_cfg.to_json(j); } if (ext) { if (pdcp_ver_change_r15_present) { j.write_str("pdcp-verChange-r15", "true"); } rrc_asn1_warn_assert(rlc_cfg_v1530_present != (rlc_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (rlc_cfg_v1530_present) { j.write_fieldname("rlc-Config-v1530"); rlc_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(rlc_bearer_cfg_dupl_r15_present != (rlc_bearer_cfg_dupl_r15.get() != NULL), __FILE__, __LINE__); if (rlc_bearer_cfg_dupl_r15_present) { j.write_fieldname("rlc-BearerConfigDupl-r15"); rlc_bearer_cfg_dupl_r15->to_json(j); } if (srb_id_v1530_present) { j.write_int("srb-Identity-v1530", srb_id_v1530); } } j.end_obj(); } void srb_to_add_mod_s::rlc_cfg_c_::set(types::options e) { type_ = e; } void srb_to_add_mod_s::rlc_cfg_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::explicit_value: j.write_fieldname("explicitValue"); c.to_json(j); break; case types::default_value: break; default: log_invalid_choice_id(type_, "srb_to_add_mod_s::rlc_cfg_c_"); } j.end_obj(); } SRSASN_CODE srb_to_add_mod_s::rlc_cfg_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::explicit_value: HANDLE_CODE(c.pack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "srb_to_add_mod_s::rlc_cfg_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srb_to_add_mod_s::rlc_cfg_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::explicit_value: HANDLE_CODE(c.unpack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "srb_to_add_mod_s::rlc_cfg_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void srb_to_add_mod_s::lc_ch_cfg_c_::set(types::options e) { type_ = e; } void srb_to_add_mod_s::lc_ch_cfg_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::explicit_value: j.write_fieldname("explicitValue"); c.to_json(j); break; case types::default_value: break; default: log_invalid_choice_id(type_, "srb_to_add_mod_s::lc_ch_cfg_c_"); } j.end_obj(); } SRSASN_CODE srb_to_add_mod_s::lc_ch_cfg_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::explicit_value: HANDLE_CODE(c.pack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "srb_to_add_mod_s::lc_ch_cfg_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srb_to_add_mod_s::lc_ch_cfg_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::explicit_value: HANDLE_CODE(c.unpack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "srb_to_add_mod_s::lc_ch_cfg_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SRS-TPC-PDCCH-Config-r14 ::= CHOICE void srs_tpc_pdcch_cfg_r14_c::set(types::options e) { type_ = e; } void srs_tpc_pdcch_cfg_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("srs-TPC-RNTI-r14", c.srs_tpc_rnti_r14.to_string()); j.write_int("startingBitOfFormat3B-r14", c.start_bit_of_format3_b_r14); j.write_int("fieldTypeFormat3B-r14", c.field_type_format3_b_r14); if (c.srs_cc_set_idxlist_r14_present) { j.start_array("srs-CC-SetIndexlist-r14"); for (uint32_t i1 = 0; i1 < c.srs_cc_set_idxlist_r14.size(); ++i1) { c.srs_cc_set_idxlist_r14[i1].to_json(j); } j.end_array(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_tpc_pdcch_cfg_r14_c"); } j.end_obj(); } SRSASN_CODE srs_tpc_pdcch_cfg_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.srs_cc_set_idxlist_r14_present, 1)); HANDLE_CODE(c.srs_tpc_rnti_r14.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, c.start_bit_of_format3_b_r14, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, c.field_type_format3_b_r14, (uint8_t)1, (uint8_t)4)); if (c.srs_cc_set_idxlist_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.srs_cc_set_idxlist_r14, 1, 4)); } break; default: log_invalid_choice_id(type_, "srs_tpc_pdcch_cfg_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_tpc_pdcch_cfg_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.srs_cc_set_idxlist_r14_present, 1)); HANDLE_CODE(c.srs_tpc_rnti_r14.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(c.start_bit_of_format3_b_r14, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(c.field_type_format3_b_r14, bref, (uint8_t)1, (uint8_t)4)); if (c.srs_cc_set_idxlist_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(c.srs_cc_set_idxlist_r14, bref, 1, 4)); } break; default: log_invalid_choice_id(type_, "srs_tpc_pdcch_cfg_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SchedulingRequestConfig ::= CHOICE void sched_request_cfg_c::set(types::options e) { type_ = e; } void sched_request_cfg_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("sr-PUCCH-ResourceIndex", c.sr_pucch_res_idx); j.write_int("sr-ConfigIndex", c.sr_cfg_idx); j.write_str("dsr-TransMax", c.dsr_trans_max.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "sched_request_cfg_c"); } j.end_obj(); } SRSASN_CODE sched_request_cfg_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.sr_pucch_res_idx, (uint16_t)0, (uint16_t)2047)); HANDLE_CODE(pack_unalign_integer(bref, c.sr_cfg_idx, (uint8_t)0, (uint8_t)157)); HANDLE_CODE(pack_enum(bref, c.dsr_trans_max)); break; default: log_invalid_choice_id(type_, "sched_request_cfg_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sched_request_cfg_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.sr_pucch_res_idx, bref, (uint16_t)0, (uint16_t)2047)); HANDLE_CODE(unpack_unalign_integer(c.sr_cfg_idx, bref, (uint8_t)0, (uint8_t)157)); HANDLE_CODE(unpack_enum(c.dsr_trans_max, bref)); break; default: log_invalid_choice_id(type_, "sched_request_cfg_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SchedulingRequestConfig-v1020 ::= SEQUENCE SRSASN_CODE sched_request_cfg_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(sr_pucch_res_idx_p1_r10_present, 1)); if (sr_pucch_res_idx_p1_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, sr_pucch_res_idx_p1_r10, (uint16_t)0, (uint16_t)2047)); } return SRSASN_SUCCESS; } SRSASN_CODE sched_request_cfg_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(sr_pucch_res_idx_p1_r10_present, 1)); if (sr_pucch_res_idx_p1_r10_present) { HANDLE_CODE(unpack_unalign_integer(sr_pucch_res_idx_p1_r10, bref, (uint16_t)0, (uint16_t)2047)); } return SRSASN_SUCCESS; } void sched_request_cfg_v1020_s::to_json(json_writer& j) const { j.start_obj(); if (sr_pucch_res_idx_p1_r10_present) { j.write_int("sr-PUCCH-ResourceIndexP1-r10", sr_pucch_res_idx_p1_r10); } j.end_obj(); } // SoundingRS-UL-ConfigDedicated ::= CHOICE void srs_ul_cfg_ded_c::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("srs-Bandwidth", c.srs_bw.to_string()); j.write_str("srs-HoppingBandwidth", c.srs_hop_bw.to_string()); j.write_int("freqDomainPosition", c.freq_domain_position); j.write_bool("duration", c.dur); j.write_int("srs-ConfigIndex", c.srs_cfg_idx); j.write_int("transmissionComb", c.tx_comb); j.write_str("cyclicShift", c.cyclic_shift.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_c"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.srs_bw)); HANDLE_CODE(pack_enum(bref, c.srs_hop_bw)); HANDLE_CODE(pack_unalign_integer(bref, c.freq_domain_position, (uint8_t)0, (uint8_t)23)); HANDLE_CODE(bref.pack(c.dur, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.srs_cfg_idx, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(pack_unalign_integer(bref, c.tx_comb, (uint8_t)0, (uint8_t)1)); HANDLE_CODE(pack_enum(bref, c.cyclic_shift)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.srs_bw, bref)); HANDLE_CODE(unpack_enum(c.srs_hop_bw, bref)); HANDLE_CODE(unpack_unalign_integer(c.freq_domain_position, bref, (uint8_t)0, (uint8_t)23)); HANDLE_CODE(bref.unpack(c.dur, 1)); HANDLE_CODE(unpack_unalign_integer(c.srs_cfg_idx, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(unpack_unalign_integer(c.tx_comb, bref, (uint8_t)0, (uint8_t)1)); HANDLE_CODE(unpack_enum(c.cyclic_shift, bref)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE SRSASN_CODE srs_ul_cfg_ded_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, srs_ant_port_r10)); return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(srs_ant_port_r10, bref)); return SRSASN_SUCCESS; } void srs_ul_cfg_ded_v1020_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("srs-AntennaPort-r10", srs_ant_port_r10.to_string()); j.end_obj(); } // SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE void srs_ul_cfg_ded_v1310_c::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_v1310_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.tx_comb_v1310_present) { j.write_int("transmissionComb-v1310", c.tx_comb_v1310); } if (c.cyclic_shift_v1310_present) { j.write_str("cyclicShift-v1310", c.cyclic_shift_v1310.to_string()); } if (c.tx_comb_num_r13_present) { j.write_str("transmissionCombNum-r13", c.tx_comb_num_r13.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_v1310_c"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_v1310_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.tx_comb_v1310_present, 1)); HANDLE_CODE(bref.pack(c.cyclic_shift_v1310_present, 1)); HANDLE_CODE(bref.pack(c.tx_comb_num_r13_present, 1)); if (c.tx_comb_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, c.tx_comb_v1310, (uint8_t)2, (uint8_t)3)); } if (c.cyclic_shift_v1310_present) { HANDLE_CODE(pack_enum(bref, c.cyclic_shift_v1310)); } if (c.tx_comb_num_r13_present) { HANDLE_CODE(pack_enum(bref, c.tx_comb_num_r13)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_v1310_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_v1310_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.tx_comb_v1310_present, 1)); HANDLE_CODE(bref.unpack(c.cyclic_shift_v1310_present, 1)); HANDLE_CODE(bref.unpack(c.tx_comb_num_r13_present, 1)); if (c.tx_comb_v1310_present) { HANDLE_CODE(unpack_unalign_integer(c.tx_comb_v1310, bref, (uint8_t)2, (uint8_t)3)); } if (c.cyclic_shift_v1310_present) { HANDLE_CODE(unpack_enum(c.cyclic_shift_v1310, bref)); } if (c.tx_comb_num_r13_present) { HANDLE_CODE(unpack_enum(c.tx_comb_num_r13, bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_v1310_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE void srs_ul_cfg_ded_aperiodic_r10_c::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_aperiodic_r10_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("srs-ConfigIndexAp-r10", c.srs_cfg_idx_ap_r10); if (c.srs_cfg_ap_dci_format4_r10_present) { j.start_array("srs-ConfigApDCI-Format4-r10"); for (uint32_t i1 = 0; i1 < c.srs_cfg_ap_dci_format4_r10.size(); ++i1) { c.srs_cfg_ap_dci_format4_r10[i1].to_json(j); } j.end_array(); } if (c.srs_activ_ap_r10_present) { j.write_fieldname("srs-ActivateAp-r10"); c.srs_activ_ap_r10.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_r10_c"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_aperiodic_r10_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.srs_cfg_ap_dci_format4_r10_present, 1)); HANDLE_CODE(bref.pack(c.srs_activ_ap_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.srs_cfg_idx_ap_r10, (uint8_t)0, (uint8_t)31)); if (c.srs_cfg_ap_dci_format4_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.srs_cfg_ap_dci_format4_r10, 1, 3)); } if (c.srs_activ_ap_r10_present) { HANDLE_CODE(c.srs_activ_ap_r10.pack(bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_r10_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_aperiodic_r10_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.srs_cfg_ap_dci_format4_r10_present, 1)); HANDLE_CODE(bref.unpack(c.srs_activ_ap_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.srs_cfg_idx_ap_r10, bref, (uint8_t)0, (uint8_t)31)); if (c.srs_cfg_ap_dci_format4_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(c.srs_cfg_ap_dci_format4_r10, bref, 1, 3)); } if (c.srs_activ_ap_r10_present) { HANDLE_CODE(c.srs_activ_ap_r10.unpack(bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_r10_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("srs-ConfigApDCI-Format0-r10"); c.srs_cfg_ap_dci_format0_r10.to_json(j); j.write_fieldname("srs-ConfigApDCI-Format1a2b2c-r10"); c.srs_cfg_ap_dci_format1a2b2c_r10.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(c.srs_cfg_ap_dci_format0_r10.pack(bref)); HANDLE_CODE(c.srs_cfg_ap_dci_format1a2b2c_r10.pack(bref)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(c.srs_cfg_ap_dci_format0_r10.unpack(bref)); HANDLE_CODE(c.srs_cfg_ap_dci_format1a2b2c_r10.unpack(bref)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE void srs_ul_cfg_ded_aperiodic_v1310_c::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_aperiodic_v1310_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.srs_cfg_ap_dci_format4_v1310_present) { j.start_array("srs-ConfigApDCI-Format4-v1310"); for (uint32_t i1 = 0; i1 < c.srs_cfg_ap_dci_format4_v1310.size(); ++i1) { c.srs_cfg_ap_dci_format4_v1310[i1].to_json(j); } j.end_array(); } if (c.srs_activ_ap_v1310_present) { j.write_fieldname("srs-ActivateAp-v1310"); c.srs_activ_ap_v1310.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1310_c"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_aperiodic_v1310_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.srs_cfg_ap_dci_format4_v1310_present, 1)); HANDLE_CODE(bref.pack(c.srs_activ_ap_v1310_present, 1)); if (c.srs_cfg_ap_dci_format4_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.srs_cfg_ap_dci_format4_v1310, 1, 3)); } if (c.srs_activ_ap_v1310_present) { HANDLE_CODE(c.srs_activ_ap_v1310.pack(bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1310_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_aperiodic_v1310_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.srs_cfg_ap_dci_format4_v1310_present, 1)); HANDLE_CODE(bref.unpack(c.srs_activ_ap_v1310_present, 1)); if (c.srs_cfg_ap_dci_format4_v1310_present) { HANDLE_CODE(unpack_dyn_seq_of(c.srs_cfg_ap_dci_format4_v1310, bref, 1, 3)); } if (c.srs_activ_ap_v1310_present) { HANDLE_CODE(c.srs_activ_ap_v1310.unpack(bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1310_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.srs_cfg_ap_dci_format0_v1310_present) { j.write_fieldname("srs-ConfigApDCI-Format0-v1310"); c.srs_cfg_ap_dci_format0_v1310.to_json(j); } if (c.srs_cfg_ap_dci_format1a2b2c_v1310_present) { j.write_fieldname("srs-ConfigApDCI-Format1a2b2c-v1310"); c.srs_cfg_ap_dci_format1a2b2c_v1310.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.srs_cfg_ap_dci_format0_v1310_present, 1)); HANDLE_CODE(bref.pack(c.srs_cfg_ap_dci_format1a2b2c_v1310_present, 1)); if (c.srs_cfg_ap_dci_format0_v1310_present) { HANDLE_CODE(c.srs_cfg_ap_dci_format0_v1310.pack(bref)); } if (c.srs_cfg_ap_dci_format1a2b2c_v1310_present) { HANDLE_CODE(c.srs_cfg_ap_dci_format1a2b2c_v1310.pack(bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.srs_cfg_ap_dci_format0_v1310_present, 1)); HANDLE_CODE(bref.unpack(c.srs_cfg_ap_dci_format1a2b2c_v1310_present, 1)); if (c.srs_cfg_ap_dci_format0_v1310_present) { HANDLE_CODE(c.srs_cfg_ap_dci_format0_v1310.unpack(bref)); } if (c.srs_cfg_ap_dci_format1a2b2c_v1310_present) { HANDLE_CODE(c.srs_cfg_ap_dci_format1a2b2c_v1310.unpack(bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("srs-UpPtsAdd-r13", c.srs_up_pts_add_r13.to_string()); j.write_int("srs-ConfigIndexAp-r13", c.srs_cfg_idx_ap_r13); if (c.srs_cfg_ap_dci_format4_r13_present) { j.start_array("srs-ConfigApDCI-Format4-r13"); for (uint32_t i1 = 0; i1 < c.srs_cfg_ap_dci_format4_r13.size(); ++i1) { c.srs_cfg_ap_dci_format4_r13[i1].to_json(j); } j.end_array(); } if (c.srs_activ_ap_r13_present) { j.write_fieldname("srs-ActivateAp-r13"); c.srs_activ_ap_r13.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.srs_cfg_ap_dci_format4_r13_present, 1)); HANDLE_CODE(bref.pack(c.srs_activ_ap_r13_present, 1)); HANDLE_CODE(pack_enum(bref, c.srs_up_pts_add_r13)); HANDLE_CODE(pack_unalign_integer(bref, c.srs_cfg_idx_ap_r13, (uint8_t)0, (uint8_t)31)); if (c.srs_cfg_ap_dci_format4_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.srs_cfg_ap_dci_format4_r13, 1, 3)); } if (c.srs_activ_ap_r13_present) { HANDLE_CODE(c.srs_activ_ap_r13.pack(bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.srs_cfg_ap_dci_format4_r13_present, 1)); HANDLE_CODE(bref.unpack(c.srs_activ_ap_r13_present, 1)); HANDLE_CODE(unpack_enum(c.srs_up_pts_add_r13, bref)); HANDLE_CODE(unpack_unalign_integer(c.srs_cfg_idx_ap_r13, bref, (uint8_t)0, (uint8_t)31)); if (c.srs_cfg_ap_dci_format4_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(c.srs_cfg_ap_dci_format4_r13, bref, 1, 3)); } if (c.srs_activ_ap_r13_present) { HANDLE_CODE(c.srs_activ_ap_r13.unpack(bref)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("srs-ConfigApDCI-Format0-r13"); c.srs_cfg_ap_dci_format0_r13.to_json(j); j.write_fieldname("srs-ConfigApDCI-Format1a2b2c-r13"); c.srs_cfg_ap_dci_format1a2b2c_r13.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.srs_cfg_ap_dci_format0_r13.pack(bref)); HANDLE_CODE(c.srs_cfg_ap_dci_format1a2b2c_r13.pack(bref)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.srs_cfg_ap_dci_format0_r13.unpack(bref)); HANDLE_CODE(c.srs_cfg_ap_dci_format1a2b2c_r13.unpack(bref)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE void srs_ul_cfg_ded_up_pts_ext_r13_c::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_up_pts_ext_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("srs-UpPtsAdd-r13", c.srs_up_pts_add_r13.to_string()); j.write_str("srs-Bandwidth-r13", c.srs_bw_r13.to_string()); j.write_str("srs-HoppingBandwidth-r13", c.srs_hop_bw_r13.to_string()); j.write_int("freqDomainPosition-r13", c.freq_domain_position_r13); j.write_bool("duration-r13", c.dur_r13); j.write_int("srs-ConfigIndex-r13", c.srs_cfg_idx_r13); j.write_int("transmissionComb-r13", c.tx_comb_r13); j.write_str("cyclicShift-r13", c.cyclic_shift_r13.to_string()); j.write_str("srs-AntennaPort-r13", c.srs_ant_port_r13.to_string()); j.write_str("transmissionCombNum-r13", c.tx_comb_num_r13.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_up_pts_ext_r13_c"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_up_pts_ext_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.srs_up_pts_add_r13)); HANDLE_CODE(pack_enum(bref, c.srs_bw_r13)); HANDLE_CODE(pack_enum(bref, c.srs_hop_bw_r13)); HANDLE_CODE(pack_unalign_integer(bref, c.freq_domain_position_r13, (uint8_t)0, (uint8_t)23)); HANDLE_CODE(bref.pack(c.dur_r13, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.srs_cfg_idx_r13, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(pack_unalign_integer(bref, c.tx_comb_r13, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_enum(bref, c.cyclic_shift_r13)); HANDLE_CODE(pack_enum(bref, c.srs_ant_port_r13)); HANDLE_CODE(pack_enum(bref, c.tx_comb_num_r13)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_up_pts_ext_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_up_pts_ext_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.srs_up_pts_add_r13, bref)); HANDLE_CODE(unpack_enum(c.srs_bw_r13, bref)); HANDLE_CODE(unpack_enum(c.srs_hop_bw_r13, bref)); HANDLE_CODE(unpack_unalign_integer(c.freq_domain_position_r13, bref, (uint8_t)0, (uint8_t)23)); HANDLE_CODE(bref.unpack(c.dur_r13, 1)); HANDLE_CODE(unpack_unalign_integer(c.srs_cfg_idx_r13, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(unpack_unalign_integer(c.tx_comb_r13, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_enum(c.cyclic_shift_r13, bref)); HANDLE_CODE(unpack_enum(c.srs_ant_port_r13, bref)); HANDLE_CODE(unpack_enum(c.tx_comb_num_r13, bref)); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_up_pts_ext_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UplinkPowerControlDedicated ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_ded_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coef_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, p0_ue_pusch, (int8_t)-8, (int8_t)7)); HANDLE_CODE(pack_enum(bref, delta_mcs_enabled)); HANDLE_CODE(bref.pack(accumulation_enabled, 1)); HANDLE_CODE(pack_unalign_integer(bref, p0_ue_pucch, (int8_t)-8, (int8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, p_srs_offset, (uint8_t)0, (uint8_t)15)); if (filt_coef_present) { HANDLE_CODE(pack_enum(bref, filt_coef)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coef_present, 1)); HANDLE_CODE(unpack_unalign_integer(p0_ue_pusch, bref, (int8_t)-8, (int8_t)7)); HANDLE_CODE(unpack_enum(delta_mcs_enabled, bref)); HANDLE_CODE(bref.unpack(accumulation_enabled, 1)); HANDLE_CODE(unpack_unalign_integer(p0_ue_pucch, bref, (int8_t)-8, (int8_t)7)); HANDLE_CODE(unpack_unalign_integer(p_srs_offset, bref, (uint8_t)0, (uint8_t)15)); if (filt_coef_present) { HANDLE_CODE(unpack_enum(filt_coef, bref)); } return SRSASN_SUCCESS; } void ul_pwr_ctrl_ded_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p0-UE-PUSCH", p0_ue_pusch); j.write_str("deltaMCS-Enabled", delta_mcs_enabled.to_string()); j.write_bool("accumulationEnabled", accumulation_enabled); j.write_int("p0-UE-PUCCH", p0_ue_pucch); j.write_int("pSRS-Offset", p_srs_offset); if (filt_coef_present) { j.write_str("filterCoefficient", filt_coef.to_string()); } j.end_obj(); } // UplinkPowerControlDedicated-v1020 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_ded_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(delta_tx_d_offset_list_pucch_r10_present, 1)); HANDLE_CODE(bref.pack(p_srs_offset_ap_r10_present, 1)); if (delta_tx_d_offset_list_pucch_r10_present) { HANDLE_CODE(delta_tx_d_offset_list_pucch_r10.pack(bref)); } if (p_srs_offset_ap_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, p_srs_offset_ap_r10, (uint8_t)0, (uint8_t)15)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(delta_tx_d_offset_list_pucch_r10_present, 1)); HANDLE_CODE(bref.unpack(p_srs_offset_ap_r10_present, 1)); if (delta_tx_d_offset_list_pucch_r10_present) { HANDLE_CODE(delta_tx_d_offset_list_pucch_r10.unpack(bref)); } if (p_srs_offset_ap_r10_present) { HANDLE_CODE(unpack_unalign_integer(p_srs_offset_ap_r10, bref, (uint8_t)0, (uint8_t)15)); } return SRSASN_SUCCESS; } void ul_pwr_ctrl_ded_v1020_s::to_json(json_writer& j) const { j.start_obj(); if (delta_tx_d_offset_list_pucch_r10_present) { j.write_fieldname("deltaTxD-OffsetListPUCCH-r10"); delta_tx_d_offset_list_pucch_r10.to_json(j); } if (p_srs_offset_ap_r10_present) { j.write_int("pSRS-OffsetAp-r10", p_srs_offset_ap_r10); } j.end_obj(); } // UplinkPowerControlDedicated-v1130 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_ded_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p_srs_offset_v1130_present, 1)); HANDLE_CODE(bref.pack(p_srs_offset_ap_v1130_present, 1)); HANDLE_CODE(bref.pack(delta_tx_d_offset_list_pucch_v1130_present, 1)); if (p_srs_offset_v1130_present) { HANDLE_CODE(pack_unalign_integer(bref, p_srs_offset_v1130, (uint8_t)16, (uint8_t)31)); } if (p_srs_offset_ap_v1130_present) { HANDLE_CODE(pack_unalign_integer(bref, p_srs_offset_ap_v1130, (uint8_t)16, (uint8_t)31)); } if (delta_tx_d_offset_list_pucch_v1130_present) { HANDLE_CODE(delta_tx_d_offset_list_pucch_v1130.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p_srs_offset_v1130_present, 1)); HANDLE_CODE(bref.unpack(p_srs_offset_ap_v1130_present, 1)); HANDLE_CODE(bref.unpack(delta_tx_d_offset_list_pucch_v1130_present, 1)); if (p_srs_offset_v1130_present) { HANDLE_CODE(unpack_unalign_integer(p_srs_offset_v1130, bref, (uint8_t)16, (uint8_t)31)); } if (p_srs_offset_ap_v1130_present) { HANDLE_CODE(unpack_unalign_integer(p_srs_offset_ap_v1130, bref, (uint8_t)16, (uint8_t)31)); } if (delta_tx_d_offset_list_pucch_v1130_present) { HANDLE_CODE(delta_tx_d_offset_list_pucch_v1130.unpack(bref)); } return SRSASN_SUCCESS; } void ul_pwr_ctrl_ded_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (p_srs_offset_v1130_present) { j.write_int("pSRS-Offset-v1130", p_srs_offset_v1130); } if (p_srs_offset_ap_v1130_present) { j.write_int("pSRS-OffsetAp-v1130", p_srs_offset_ap_v1130); } if (delta_tx_d_offset_list_pucch_v1130_present) { j.write_fieldname("deltaTxD-OffsetListPUCCH-v1130"); delta_tx_d_offset_list_pucch_v1130.to_json(j); } j.end_obj(); } // UplinkPowerControlDedicated-v1250 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_ded_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(set2_pwr_ctrl_param.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(set2_pwr_ctrl_param.unpack(bref)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_ded_v1250_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("set2PowerControlParameter"); set2_pwr_ctrl_param.to_json(j); j.end_obj(); } void ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::set(types::options e) { type_ = e; } void ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("tpc-SubframeSet-r12", c.tpc_sf_set_r12.to_string()); j.write_int("p0-NominalPUSCH-SubframeSet2-r12", c.p0_nominal_pusch_sf_set2_r12); j.write_str("alpha-SubframeSet2-r12", c.alpha_sf_set2_r12.to_string()); j.write_int("p0-UE-PUSCH-SubframeSet2-r12", c.p0_ue_pusch_sf_set2_r12); j.end_obj(); break; default: log_invalid_choice_id(type_, "ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_"); } j.end_obj(); } SRSASN_CODE ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.tpc_sf_set_r12.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, c.p0_nominal_pusch_sf_set2_r12, (int8_t)-126, (int8_t)24)); HANDLE_CODE(pack_enum(bref, c.alpha_sf_set2_r12)); HANDLE_CODE(pack_unalign_integer(bref, c.p0_ue_pusch_sf_set2_r12, (int8_t)-8, (int8_t)7)); break; default: log_invalid_choice_id(type_, "ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.tpc_sf_set_r12.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(c.p0_nominal_pusch_sf_set2_r12, bref, (int8_t)-126, (int8_t)24)); HANDLE_CODE(unpack_enum(c.alpha_sf_set2_r12, bref)); HANDLE_CODE(unpack_unalign_integer(c.p0_ue_pusch_sf_set2_r12, bref, (int8_t)-8, (int8_t)7)); break; default: log_invalid_choice_id(type_, "ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UplinkPowerControlDedicated-v1530 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_ded_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(alpha_ue_r15_present, 1)); HANDLE_CODE(bref.pack(p0_ue_pusch_r15_present, 1)); if (alpha_ue_r15_present) { HANDLE_CODE(pack_enum(bref, alpha_ue_r15)); } if (p0_ue_pusch_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, p0_ue_pusch_r15, (int8_t)-16, (int8_t)15)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(alpha_ue_r15_present, 1)); HANDLE_CODE(bref.unpack(p0_ue_pusch_r15_present, 1)); if (alpha_ue_r15_present) { HANDLE_CODE(unpack_enum(alpha_ue_r15, bref)); } if (p0_ue_pusch_r15_present) { HANDLE_CODE(unpack_unalign_integer(p0_ue_pusch_r15, bref, (int8_t)-16, (int8_t)15)); } return SRSASN_SUCCESS; } void ul_pwr_ctrl_ded_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (alpha_ue_r15_present) { j.write_str("alpha-UE-r15", alpha_ue_r15.to_string()); } if (p0_ue_pusch_r15_present) { j.write_int("p0-UE-PUSCH-r15", p0_ue_pusch_r15); } j.end_obj(); } // CarrierFreqCDMA2000 ::= SEQUENCE SRSASN_CODE carrier_freq_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, band_class)); HANDLE_CODE(pack_unalign_integer(bref, arfcn, (uint16_t)0, (uint16_t)2047)); return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(band_class, bref)); HANDLE_CODE(unpack_unalign_integer(arfcn, bref, (uint16_t)0, (uint16_t)2047)); return SRSASN_SUCCESS; } void carrier_freq_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("bandClass", band_class.to_string()); j.write_int("arfcn", arfcn); j.end_obj(); } // FreqPriorityEUTRA-v9e0 ::= SEQUENCE SRSASN_CODE freq_prio_eutra_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_v9e0_present, 1)); if (carrier_freq_v9e0_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_v9e0, (uint32_t)65536, (uint32_t)262143)); } return SRSASN_SUCCESS; } SRSASN_CODE freq_prio_eutra_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_v9e0_present, 1)); if (carrier_freq_v9e0_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_v9e0, bref, (uint32_t)65536, (uint32_t)262143)); } return SRSASN_SUCCESS; } void freq_prio_eutra_v9e0_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_v9e0_present) { j.write_int("carrierFreq-v9e0", carrier_freq_v9e0); } j.end_obj(); } // MAC-MainConfig ::= SEQUENCE SRSASN_CODE mac_main_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ul_sch_cfg_present, 1)); HANDLE_CODE(bref.pack(drx_cfg_present, 1)); HANDLE_CODE(bref.pack(phr_cfg_present, 1)); if (ul_sch_cfg_present) { HANDLE_CODE(bref.pack(ul_sch_cfg.max_harq_tx_present, 1)); HANDLE_CODE(bref.pack(ul_sch_cfg.periodic_bsr_timer_present, 1)); if (ul_sch_cfg.max_harq_tx_present) { HANDLE_CODE(pack_enum(bref, ul_sch_cfg.max_harq_tx)); } if (ul_sch_cfg.periodic_bsr_timer_present) { HANDLE_CODE(pack_enum(bref, ul_sch_cfg.periodic_bsr_timer)); } HANDLE_CODE(pack_enum(bref, ul_sch_cfg.retx_bsr_timer)); HANDLE_CODE(bref.pack(ul_sch_cfg.tti_bundling, 1)); } if (drx_cfg_present) { HANDLE_CODE(drx_cfg.pack(bref)); } HANDLE_CODE(pack_enum(bref, time_align_timer_ded)); if (phr_cfg_present) { HANDLE_CODE(phr_cfg.pack(bref)); } if (ext) { ext_groups_header group_flags(9); group_flags[0] |= sr_prohibit_timer_r9_present; rrc_asn1_warn_assert(mac_main_cfg_v1020_present != (mac_main_cfg_v1020.get() != NULL), __FILE__, __LINE__); group_flags[1] |= mac_main_cfg_v1020_present; rrc_asn1_warn_assert(stag_to_release_list_r11_present != (stag_to_release_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[2] |= stag_to_release_list_r11_present; rrc_asn1_warn_assert(stag_to_add_mod_list_r11_present != (stag_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[2] |= stag_to_add_mod_list_r11_present; rrc_asn1_warn_assert(drx_cfg_v1130_present != (drx_cfg_v1130.get() != NULL), __FILE__, __LINE__); group_flags[2] |= drx_cfg_v1130_present; group_flags[3] |= e_harq_pattern_r12_present; rrc_asn1_warn_assert(dual_connect_phr_present != (dual_connect_phr.get() != NULL), __FILE__, __LINE__); group_flags[3] |= dual_connect_phr_present; rrc_asn1_warn_assert(lc_ch_sr_cfg_r12_present != (lc_ch_sr_cfg_r12.get() != NULL), __FILE__, __LINE__); group_flags[3] |= lc_ch_sr_cfg_r12_present; rrc_asn1_warn_assert(drx_cfg_v1310_present != (drx_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[4] |= drx_cfg_v1310_present; group_flags[4] |= extended_phr2_r13_present; rrc_asn1_warn_assert(e_drx_cfg_cycle_start_offset_r13_present != (e_drx_cfg_cycle_start_offset_r13.get() != NULL), __FILE__, __LINE__); group_flags[4] |= e_drx_cfg_cycle_start_offset_r13_present; rrc_asn1_warn_assert(drx_cfg_r13_present != (drx_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[5] |= drx_cfg_r13_present; rrc_asn1_warn_assert(skip_ul_tx_r14_present != (skip_ul_tx_r14.get() != NULL), __FILE__, __LINE__); group_flags[6] |= skip_ul_tx_r14_present; rrc_asn1_warn_assert(data_inactivity_timer_cfg_r14_present != (data_inactivity_timer_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[6] |= data_inactivity_timer_cfg_r14_present; group_flags[7] |= rai_activation_r14_present; rrc_asn1_warn_assert(short_tti_and_spt_r15_present != (short_tti_and_spt_r15.get() != NULL), __FILE__, __LINE__); group_flags[8] |= short_tti_and_spt_r15_present; group_flags[8] |= mpdcch_ul_harq_ack_feedback_cfg_r15_present; rrc_asn1_warn_assert(dormant_state_timers_r15_present != (dormant_state_timers_r15.get() != NULL), __FILE__, __LINE__); group_flags[8] |= dormant_state_timers_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sr_prohibit_timer_r9_present, 1)); if (sr_prohibit_timer_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, sr_prohibit_timer_r9, (uint8_t)0, (uint8_t)7)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mac_main_cfg_v1020_present, 1)); if (mac_main_cfg_v1020_present) { HANDLE_CODE(bref.pack(mac_main_cfg_v1020->s_cell_deactivation_timer_r10_present, 1)); HANDLE_CODE(bref.pack(mac_main_cfg_v1020->extended_bsr_sizes_r10_present, 1)); HANDLE_CODE(bref.pack(mac_main_cfg_v1020->extended_phr_r10_present, 1)); if (mac_main_cfg_v1020->s_cell_deactivation_timer_r10_present) { HANDLE_CODE(pack_enum(bref, mac_main_cfg_v1020->s_cell_deactivation_timer_r10)); } } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(stag_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(stag_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.pack(drx_cfg_v1130_present, 1)); if (stag_to_release_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *stag_to_release_list_r11, 1, 3, UnalignedIntegerPacker(1, 3))); } if (stag_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *stag_to_add_mod_list_r11, 1, 3)); } if (drx_cfg_v1130_present) { HANDLE_CODE(drx_cfg_v1130->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(e_harq_pattern_r12_present, 1)); HANDLE_CODE(bref.pack(dual_connect_phr_present, 1)); HANDLE_CODE(bref.pack(lc_ch_sr_cfg_r12_present, 1)); if (e_harq_pattern_r12_present) { HANDLE_CODE(bref.pack(e_harq_pattern_r12, 1)); } if (dual_connect_phr_present) { HANDLE_CODE(dual_connect_phr->pack(bref)); } if (lc_ch_sr_cfg_r12_present) { HANDLE_CODE(lc_ch_sr_cfg_r12->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(drx_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(extended_phr2_r13_present, 1)); HANDLE_CODE(bref.pack(e_drx_cfg_cycle_start_offset_r13_present, 1)); if (drx_cfg_v1310_present) { HANDLE_CODE(drx_cfg_v1310->pack(bref)); } if (extended_phr2_r13_present) { HANDLE_CODE(bref.pack(extended_phr2_r13, 1)); } if (e_drx_cfg_cycle_start_offset_r13_present) { HANDLE_CODE(e_drx_cfg_cycle_start_offset_r13->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(drx_cfg_r13_present, 1)); if (drx_cfg_r13_present) { HANDLE_CODE(drx_cfg_r13->pack(bref)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(skip_ul_tx_r14_present, 1)); HANDLE_CODE(bref.pack(data_inactivity_timer_cfg_r14_present, 1)); if (skip_ul_tx_r14_present) { HANDLE_CODE(skip_ul_tx_r14->pack(bref)); } if (data_inactivity_timer_cfg_r14_present) { HANDLE_CODE(data_inactivity_timer_cfg_r14->pack(bref)); } } if (group_flags[7]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rai_activation_r14_present, 1)); } if (group_flags[8]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(short_tti_and_spt_r15_present, 1)); HANDLE_CODE(bref.pack(mpdcch_ul_harq_ack_feedback_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(dormant_state_timers_r15_present, 1)); if (short_tti_and_spt_r15_present) { HANDLE_CODE(short_tti_and_spt_r15->pack(bref)); } if (mpdcch_ul_harq_ack_feedback_cfg_r15_present) { HANDLE_CODE(bref.pack(mpdcch_ul_harq_ack_feedback_cfg_r15, 1)); } if (dormant_state_timers_r15_present) { HANDLE_CODE(dormant_state_timers_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ul_sch_cfg_present, 1)); HANDLE_CODE(bref.unpack(drx_cfg_present, 1)); HANDLE_CODE(bref.unpack(phr_cfg_present, 1)); if (ul_sch_cfg_present) { HANDLE_CODE(bref.unpack(ul_sch_cfg.max_harq_tx_present, 1)); HANDLE_CODE(bref.unpack(ul_sch_cfg.periodic_bsr_timer_present, 1)); if (ul_sch_cfg.max_harq_tx_present) { HANDLE_CODE(unpack_enum(ul_sch_cfg.max_harq_tx, bref)); } if (ul_sch_cfg.periodic_bsr_timer_present) { HANDLE_CODE(unpack_enum(ul_sch_cfg.periodic_bsr_timer, bref)); } HANDLE_CODE(unpack_enum(ul_sch_cfg.retx_bsr_timer, bref)); HANDLE_CODE(bref.unpack(ul_sch_cfg.tti_bundling, 1)); } if (drx_cfg_present) { HANDLE_CODE(drx_cfg.unpack(bref)); } HANDLE_CODE(unpack_enum(time_align_timer_ded, bref)); if (phr_cfg_present) { HANDLE_CODE(phr_cfg.unpack(bref)); } if (ext) { ext_groups_header group_flags(9); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sr_prohibit_timer_r9_present, 1)); if (sr_prohibit_timer_r9_present) { HANDLE_CODE(unpack_unalign_integer(sr_prohibit_timer_r9, bref, (uint8_t)0, (uint8_t)7)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mac_main_cfg_v1020_present, 1)); if (mac_main_cfg_v1020_present) { mac_main_cfg_v1020 = make_copy_ptr(mac_main_cfg_v1020_s_()); HANDLE_CODE(bref.unpack(mac_main_cfg_v1020->s_cell_deactivation_timer_r10_present, 1)); HANDLE_CODE(bref.unpack(mac_main_cfg_v1020->extended_bsr_sizes_r10_present, 1)); HANDLE_CODE(bref.unpack(mac_main_cfg_v1020->extended_phr_r10_present, 1)); if (mac_main_cfg_v1020->s_cell_deactivation_timer_r10_present) { HANDLE_CODE(unpack_enum(mac_main_cfg_v1020->s_cell_deactivation_timer_r10, bref)); } } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(stag_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(stag_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.unpack(drx_cfg_v1130_present, 1)); if (stag_to_release_list_r11_present) { stag_to_release_list_r11 = make_copy_ptr(stag_to_release_list_r11_l()); HANDLE_CODE(unpack_dyn_seq_of(*stag_to_release_list_r11, bref, 1, 3, UnalignedIntegerPacker(1, 3))); } if (stag_to_add_mod_list_r11_present) { stag_to_add_mod_list_r11 = make_copy_ptr(stag_to_add_mod_list_r11_l()); HANDLE_CODE(unpack_dyn_seq_of(*stag_to_add_mod_list_r11, bref, 1, 3)); } if (drx_cfg_v1130_present) { drx_cfg_v1130 = make_copy_ptr(drx_cfg_v1130_s()); HANDLE_CODE(drx_cfg_v1130->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(e_harq_pattern_r12_present, 1)); HANDLE_CODE(bref.unpack(dual_connect_phr_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_sr_cfg_r12_present, 1)); if (e_harq_pattern_r12_present) { HANDLE_CODE(bref.unpack(e_harq_pattern_r12, 1)); } if (dual_connect_phr_present) { dual_connect_phr = make_copy_ptr(dual_connect_phr_c_()); HANDLE_CODE(dual_connect_phr->unpack(bref)); } if (lc_ch_sr_cfg_r12_present) { lc_ch_sr_cfg_r12 = make_copy_ptr(lc_ch_sr_cfg_r12_c_()); HANDLE_CODE(lc_ch_sr_cfg_r12->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(drx_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(extended_phr2_r13_present, 1)); HANDLE_CODE(bref.unpack(e_drx_cfg_cycle_start_offset_r13_present, 1)); if (drx_cfg_v1310_present) { drx_cfg_v1310 = make_copy_ptr(drx_cfg_v1310_s()); HANDLE_CODE(drx_cfg_v1310->unpack(bref)); } if (extended_phr2_r13_present) { HANDLE_CODE(bref.unpack(extended_phr2_r13, 1)); } if (e_drx_cfg_cycle_start_offset_r13_present) { e_drx_cfg_cycle_start_offset_r13 = make_copy_ptr(e_drx_cfg_cycle_start_offset_r13_c_()); HANDLE_CODE(e_drx_cfg_cycle_start_offset_r13->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(drx_cfg_r13_present, 1)); if (drx_cfg_r13_present) { drx_cfg_r13 = make_copy_ptr(drx_cfg_r13_c_()); HANDLE_CODE(drx_cfg_r13->unpack(bref)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(skip_ul_tx_r14_present, 1)); HANDLE_CODE(bref.unpack(data_inactivity_timer_cfg_r14_present, 1)); if (skip_ul_tx_r14_present) { skip_ul_tx_r14 = make_copy_ptr(skip_ul_tx_r14_c_()); HANDLE_CODE(skip_ul_tx_r14->unpack(bref)); } if (data_inactivity_timer_cfg_r14_present) { data_inactivity_timer_cfg_r14 = make_copy_ptr(data_inactivity_timer_cfg_r14_c_()); HANDLE_CODE(data_inactivity_timer_cfg_r14->unpack(bref)); } } if (group_flags[7]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rai_activation_r14_present, 1)); } if (group_flags[8]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(short_tti_and_spt_r15_present, 1)); HANDLE_CODE(bref.unpack(mpdcch_ul_harq_ack_feedback_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(dormant_state_timers_r15_present, 1)); if (short_tti_and_spt_r15_present) { short_tti_and_spt_r15 = make_copy_ptr(short_tti_and_spt_r15_c_()); HANDLE_CODE(short_tti_and_spt_r15->unpack(bref)); } if (mpdcch_ul_harq_ack_feedback_cfg_r15_present) { HANDLE_CODE(bref.unpack(mpdcch_ul_harq_ack_feedback_cfg_r15, 1)); } if (dormant_state_timers_r15_present) { dormant_state_timers_r15 = make_copy_ptr(dormant_state_timers_r15_c_()); HANDLE_CODE(dormant_state_timers_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void mac_main_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (ul_sch_cfg_present) { j.write_fieldname("ul-SCH-Config"); j.start_obj(); if (ul_sch_cfg.max_harq_tx_present) { j.write_str("maxHARQ-Tx", ul_sch_cfg.max_harq_tx.to_string()); } if (ul_sch_cfg.periodic_bsr_timer_present) { j.write_str("periodicBSR-Timer", ul_sch_cfg.periodic_bsr_timer.to_string()); } j.write_str("retxBSR-Timer", ul_sch_cfg.retx_bsr_timer.to_string()); j.write_bool("ttiBundling", ul_sch_cfg.tti_bundling); j.end_obj(); } if (drx_cfg_present) { j.write_fieldname("drx-Config"); drx_cfg.to_json(j); } j.write_str("timeAlignmentTimerDedicated", time_align_timer_ded.to_string()); if (phr_cfg_present) { j.write_fieldname("phr-Config"); phr_cfg.to_json(j); } if (ext) { if (sr_prohibit_timer_r9_present) { j.write_int("sr-ProhibitTimer-r9", sr_prohibit_timer_r9); } rrc_asn1_warn_assert(mac_main_cfg_v1020_present != (mac_main_cfg_v1020.get() != NULL), __FILE__, __LINE__); if (mac_main_cfg_v1020_present) { j.write_fieldname("mac-MainConfig-v1020"); j.start_obj(); if (mac_main_cfg_v1020->s_cell_deactivation_timer_r10_present) { j.write_str("sCellDeactivationTimer-r10", mac_main_cfg_v1020->s_cell_deactivation_timer_r10.to_string()); } if (mac_main_cfg_v1020->extended_bsr_sizes_r10_present) { j.write_str("extendedBSR-Sizes-r10", "setup"); } if (mac_main_cfg_v1020->extended_phr_r10_present) { j.write_str("extendedPHR-r10", "setup"); } j.end_obj(); } rrc_asn1_warn_assert(stag_to_release_list_r11_present != (stag_to_release_list_r11.get() != NULL), __FILE__, __LINE__); if (stag_to_release_list_r11_present) { j.start_array("stag-ToReleaseList-r11"); for (uint32_t i1 = 0; i1 < stag_to_release_list_r11->size(); ++i1) { j.write_int(((*stag_to_release_list_r11)[i1])); } j.end_array(); } rrc_asn1_warn_assert(stag_to_add_mod_list_r11_present != (stag_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); if (stag_to_add_mod_list_r11_present) { j.start_array("stag-ToAddModList-r11"); for (uint32_t i1 = 0; i1 < stag_to_add_mod_list_r11->size(); ++i1) { ((*stag_to_add_mod_list_r11)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(drx_cfg_v1130_present != (drx_cfg_v1130.get() != NULL), __FILE__, __LINE__); if (drx_cfg_v1130_present) { j.write_fieldname("drx-Config-v1130"); drx_cfg_v1130->to_json(j); } if (e_harq_pattern_r12_present) { j.write_bool("e-HARQ-Pattern-r12", e_harq_pattern_r12); } rrc_asn1_warn_assert(dual_connect_phr_present != (dual_connect_phr.get() != NULL), __FILE__, __LINE__); if (dual_connect_phr_present) { j.write_fieldname("dualConnectivityPHR"); dual_connect_phr->to_json(j); } rrc_asn1_warn_assert(lc_ch_sr_cfg_r12_present != (lc_ch_sr_cfg_r12.get() != NULL), __FILE__, __LINE__); if (lc_ch_sr_cfg_r12_present) { j.write_fieldname("logicalChannelSR-Config-r12"); lc_ch_sr_cfg_r12->to_json(j); } rrc_asn1_warn_assert(drx_cfg_v1310_present != (drx_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (drx_cfg_v1310_present) { j.write_fieldname("drx-Config-v1310"); drx_cfg_v1310->to_json(j); } if (extended_phr2_r13_present) { j.write_bool("extendedPHR2-r13", extended_phr2_r13); } rrc_asn1_warn_assert(e_drx_cfg_cycle_start_offset_r13_present != (e_drx_cfg_cycle_start_offset_r13.get() != NULL), __FILE__, __LINE__); if (e_drx_cfg_cycle_start_offset_r13_present) { j.write_fieldname("eDRX-Config-CycleStartOffset-r13"); e_drx_cfg_cycle_start_offset_r13->to_json(j); } rrc_asn1_warn_assert(drx_cfg_r13_present != (drx_cfg_r13.get() != NULL), __FILE__, __LINE__); if (drx_cfg_r13_present) { j.write_fieldname("drx-Config-r13"); drx_cfg_r13->to_json(j); } rrc_asn1_warn_assert(skip_ul_tx_r14_present != (skip_ul_tx_r14.get() != NULL), __FILE__, __LINE__); if (skip_ul_tx_r14_present) { j.write_fieldname("skipUplinkTx-r14"); skip_ul_tx_r14->to_json(j); } rrc_asn1_warn_assert(data_inactivity_timer_cfg_r14_present != (data_inactivity_timer_cfg_r14.get() != NULL), __FILE__, __LINE__); if (data_inactivity_timer_cfg_r14_present) { j.write_fieldname("dataInactivityTimerConfig-r14"); data_inactivity_timer_cfg_r14->to_json(j); } if (rai_activation_r14_present) { j.write_str("rai-Activation-r14", "true"); } rrc_asn1_warn_assert(short_tti_and_spt_r15_present != (short_tti_and_spt_r15.get() != NULL), __FILE__, __LINE__); if (short_tti_and_spt_r15_present) { j.write_fieldname("shortTTI-AndSPT-r15"); short_tti_and_spt_r15->to_json(j); } if (mpdcch_ul_harq_ack_feedback_cfg_r15_present) { j.write_bool("mpdcch-UL-HARQ-ACK-FeedbackConfig-r15", mpdcch_ul_harq_ack_feedback_cfg_r15); } rrc_asn1_warn_assert(dormant_state_timers_r15_present != (dormant_state_timers_r15.get() != NULL), __FILE__, __LINE__); if (dormant_state_timers_r15_present) { j.write_fieldname("dormantStateTimers-r15"); dormant_state_timers_r15->to_json(j); } } j.end_obj(); } void mac_main_cfg_s::phr_cfg_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::phr_cfg_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("periodicPHR-Timer", c.periodic_phr_timer.to_string()); j.write_str("prohibitPHR-Timer", c.prohibit_phr_timer.to_string()); j.write_str("dl-PathlossChange", c.dl_pathloss_change.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::phr_cfg_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::phr_cfg_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.periodic_phr_timer)); HANDLE_CODE(pack_enum(bref, c.prohibit_phr_timer)); HANDLE_CODE(pack_enum(bref, c.dl_pathloss_change)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::phr_cfg_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::phr_cfg_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.periodic_phr_timer, bref)); HANDLE_CODE(unpack_enum(c.prohibit_phr_timer, bref)); HANDLE_CODE(unpack_enum(c.dl_pathloss_change, bref)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::phr_cfg_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::dual_connect_phr_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::dual_connect_phr_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("phr-ModeOtherCG-r12", c.phr_mode_other_cg_r12.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::dual_connect_phr_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::dual_connect_phr_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.phr_mode_other_cg_r12)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::dual_connect_phr_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::dual_connect_phr_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.phr_mode_other_cg_r12, bref)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::dual_connect_phr_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("logicalChannelSR-ProhibitTimer-r12", c.lc_ch_sr_prohibit_timer_r12.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::lc_ch_sr_cfg_r12_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.lc_ch_sr_prohibit_timer_r12)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::lc_ch_sr_cfg_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.lc_ch_sr_prohibit_timer_r12, bref)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::lc_ch_sr_cfg_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::destroy_() {} void mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; } mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::setup_c_( const mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::sf5120: c.init(other.c.get()); break; case types::sf10240: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_"); } } mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_& mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_:: operator=(const mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf5120: c.set(other.c.get()); break; case types::sf10240: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_"); } return *this; } void mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf5120: j.write_int("sf5120", c.get()); break; case types::sf10240: j.write_int("sf10240", c.get()); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf5120: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)1)); break; case types::sf10240: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)3)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf5120: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)1)); break; case types::sf10240: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)3)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::drx_cfg_r13_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::drx_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::drx_cfg_r13_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::drx_cfg_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::drx_cfg_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::drx_cfg_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::drx_cfg_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::skip_ul_tx_r14_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::skip_ul_tx_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.skip_ul_tx_sps_r14_present) { j.write_str("skipUplinkTxSPS-r14", "true"); } if (c.skip_ul_tx_dynamic_r14_present) { j.write_str("skipUplinkTxDynamic-r14", "true"); } j.end_obj(); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::skip_ul_tx_r14_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::skip_ul_tx_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.skip_ul_tx_sps_r14_present, 1)); HANDLE_CODE(bref.pack(c.skip_ul_tx_dynamic_r14_present, 1)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::skip_ul_tx_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::skip_ul_tx_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.skip_ul_tx_sps_r14_present, 1)); HANDLE_CODE(bref.unpack(c.skip_ul_tx_dynamic_r14_present, 1)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::skip_ul_tx_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("dataInactivityTimer-r14", c.data_inactivity_timer_r14.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.data_inactivity_timer_r14)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.data_inactivity_timer_r14, bref)); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::short_tti_and_spt_r15_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::short_tti_and_spt_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.drx_cfg_r15_present) { j.write_fieldname("drx-Config-r15"); c.drx_cfg_r15.to_json(j); } if (c.periodic_bsr_timer_r15_present) { j.write_str("periodicBSR-Timer-r15", c.periodic_bsr_timer_r15.to_string()); } if (c.proc_timeline_r15_present) { j.write_str("proc-Timeline-r15", c.proc_timeline_r15.to_string()); } if (c.ssr_prohibit_timer_r15_present) { j.write_int("ssr-ProhibitTimer-r15", c.ssr_prohibit_timer_r15); } j.end_obj(); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::short_tti_and_spt_r15_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::short_tti_and_spt_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.drx_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.periodic_bsr_timer_r15_present, 1)); HANDLE_CODE(bref.pack(c.proc_timeline_r15_present, 1)); HANDLE_CODE(bref.pack(c.ssr_prohibit_timer_r15_present, 1)); if (c.drx_cfg_r15_present) { HANDLE_CODE(c.drx_cfg_r15.pack(bref)); } if (c.periodic_bsr_timer_r15_present) { HANDLE_CODE(pack_enum(bref, c.periodic_bsr_timer_r15)); } if (c.proc_timeline_r15_present) { HANDLE_CODE(pack_enum(bref, c.proc_timeline_r15)); } if (c.ssr_prohibit_timer_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.ssr_prohibit_timer_r15, (uint8_t)0, (uint8_t)7)); } break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::short_tti_and_spt_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::short_tti_and_spt_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.drx_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.periodic_bsr_timer_r15_present, 1)); HANDLE_CODE(bref.unpack(c.proc_timeline_r15_present, 1)); HANDLE_CODE(bref.unpack(c.ssr_prohibit_timer_r15_present, 1)); if (c.drx_cfg_r15_present) { HANDLE_CODE(c.drx_cfg_r15.unpack(bref)); } if (c.periodic_bsr_timer_r15_present) { HANDLE_CODE(unpack_enum(c.periodic_bsr_timer_r15, bref)); } if (c.proc_timeline_r15_present) { HANDLE_CODE(unpack_enum(c.proc_timeline_r15, bref)); } if (c.ssr_prohibit_timer_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.ssr_prohibit_timer_r15, bref, (uint8_t)0, (uint8_t)7)); } break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::short_tti_and_spt_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mac_main_cfg_s::dormant_state_timers_r15_c_::set(types::options e) { type_ = e; } void mac_main_cfg_s::dormant_state_timers_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.s_cell_hibernation_timer_r15_present) { j.write_str("sCellHibernationTimer-r15", c.s_cell_hibernation_timer_r15.to_string()); } if (c.dormant_scell_deactivation_timer_r15_present) { j.write_str("dormantSCellDeactivationTimer-r15", c.dormant_scell_deactivation_timer_r15.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::dormant_state_timers_r15_c_"); } j.end_obj(); } SRSASN_CODE mac_main_cfg_s::dormant_state_timers_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.s_cell_hibernation_timer_r15_present, 1)); HANDLE_CODE(bref.pack(c.dormant_scell_deactivation_timer_r15_present, 1)); if (c.s_cell_hibernation_timer_r15_present) { HANDLE_CODE(pack_enum(bref, c.s_cell_hibernation_timer_r15)); } if (c.dormant_scell_deactivation_timer_r15_present) { HANDLE_CODE(pack_enum(bref, c.dormant_scell_deactivation_timer_r15)); } break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::dormant_state_timers_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_s::dormant_state_timers_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.s_cell_hibernation_timer_r15_present, 1)); HANDLE_CODE(bref.unpack(c.dormant_scell_deactivation_timer_r15_present, 1)); if (c.s_cell_hibernation_timer_r15_present) { HANDLE_CODE(unpack_enum(c.s_cell_hibernation_timer_r15, bref)); } if (c.dormant_scell_deactivation_timer_r15_present) { HANDLE_CODE(unpack_enum(c.dormant_scell_deactivation_timer_r15, bref)); } break; default: log_invalid_choice_id(type_, "mac_main_cfg_s::dormant_state_timers_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasSubframePatternPCell-r10 ::= CHOICE void meas_sf_pattern_pcell_r10_c::set(types::options e) { type_ = e; } void meas_sf_pattern_pcell_r10_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_pcell_r10_c"); } j.end_obj(); } SRSASN_CODE meas_sf_pattern_pcell_r10_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_pcell_r10_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_sf_pattern_pcell_r10_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_pcell_r10_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // NAICS-AssistanceInfo-r12 ::= CHOICE void naics_assist_info_r12_c::set(types::options e) { type_ = e; } void naics_assist_info_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.neigh_cells_to_release_list_r12_present) { j.start_array("neighCellsToReleaseList-r12"); for (uint32_t i1 = 0; i1 < c.neigh_cells_to_release_list_r12.size(); ++i1) { j.write_int(c.neigh_cells_to_release_list_r12[i1]); } j.end_array(); } if (c.neigh_cells_to_add_mod_list_r12_present) { j.start_array("neighCellsToAddModList-r12"); for (uint32_t i1 = 0; i1 < c.neigh_cells_to_add_mod_list_r12.size(); ++i1) { c.neigh_cells_to_add_mod_list_r12[i1].to_json(j); } j.end_array(); } if (c.serv_cellp_a_r12_present) { j.write_str("servCellp-a-r12", c.serv_cellp_a_r12.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "naics_assist_info_r12_c"); } j.end_obj(); } SRSASN_CODE naics_assist_info_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.neigh_cells_to_release_list_r12_present, 1)); HANDLE_CODE(bref.pack(c.neigh_cells_to_add_mod_list_r12_present, 1)); HANDLE_CODE(bref.pack(c.serv_cellp_a_r12_present, 1)); if (c.neigh_cells_to_release_list_r12_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.neigh_cells_to_release_list_r12, 1, 8, UnalignedIntegerPacker(0, 503))); } if (c.neigh_cells_to_add_mod_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.neigh_cells_to_add_mod_list_r12, 1, 8)); } if (c.serv_cellp_a_r12_present) { HANDLE_CODE(pack_enum(bref, c.serv_cellp_a_r12)); } break; default: log_invalid_choice_id(type_, "naics_assist_info_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE naics_assist_info_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.neigh_cells_to_release_list_r12_present, 1)); HANDLE_CODE(bref.unpack(c.neigh_cells_to_add_mod_list_r12_present, 1)); HANDLE_CODE(bref.unpack(c.serv_cellp_a_r12_present, 1)); if (c.neigh_cells_to_release_list_r12_present) { HANDLE_CODE( unpack_dyn_seq_of(c.neigh_cells_to_release_list_r12, bref, 1, 8, UnalignedIntegerPacker(0, 503))); } if (c.neigh_cells_to_add_mod_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(c.neigh_cells_to_add_mod_list_r12, bref, 1, 8)); } if (c.serv_cellp_a_r12_present) { HANDLE_CODE(unpack_enum(c.serv_cellp_a_r12, bref)); } break; default: log_invalid_choice_id(type_, "naics_assist_info_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // NeighCellsCRS-Info-r11 ::= CHOICE void neigh_cells_crs_info_r11_c::set(types::options e) { type_ = e; } void neigh_cells_crs_info_r11_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { c[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r11_c"); } j.end_obj(); } SRSASN_CODE neigh_cells_crs_info_r11_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 8)); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r11_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE neigh_cells_crs_info_r11_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 8)); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r11_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // NeighCellsCRS-Info-r13 ::= CHOICE void neigh_cells_crs_info_r13_c::set(types::options e) { type_ = e; } void neigh_cells_crs_info_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { c[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r13_c"); } j.end_obj(); } SRSASN_CODE neigh_cells_crs_info_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 8)); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE neigh_cells_crs_info_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 8)); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // NeighCellsCRS-Info-r15 ::= CHOICE void neigh_cells_crs_info_r15_c::set(types::options e) { type_ = e; } void neigh_cells_crs_info_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { c[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r15_c"); } j.end_obj(); } SRSASN_CODE neigh_cells_crs_info_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 8)); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE neigh_cells_crs_info_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 8)); break; default: log_invalid_choice_id(type_, "neigh_cells_crs_info_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PhysicalConfigDedicated ::= SEQUENCE SRSASN_CODE phys_cfg_ded_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(pdsch_cfg_ded_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_ded_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_ded_present, 1)); HANDLE_CODE(bref.pack(tpc_pdcch_cfg_pucch_present, 1)); HANDLE_CODE(bref.pack(tpc_pdcch_cfg_pusch_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_present, 1)); HANDLE_CODE(bref.pack(ant_info_present, 1)); HANDLE_CODE(bref.pack(sched_request_cfg_present, 1)); if (pdsch_cfg_ded_present) { HANDLE_CODE(pdsch_cfg_ded.pack(bref)); } if (pucch_cfg_ded_present) { HANDLE_CODE(pucch_cfg_ded.pack(bref)); } if (pusch_cfg_ded_present) { HANDLE_CODE(pusch_cfg_ded.pack(bref)); } if (ul_pwr_ctrl_ded_present) { HANDLE_CODE(ul_pwr_ctrl_ded.pack(bref)); } if (tpc_pdcch_cfg_pucch_present) { HANDLE_CODE(tpc_pdcch_cfg_pucch.pack(bref)); } if (tpc_pdcch_cfg_pusch_present) { HANDLE_CODE(tpc_pdcch_cfg_pusch.pack(bref)); } if (cqi_report_cfg_present) { HANDLE_CODE(cqi_report_cfg.pack(bref)); } if (srs_ul_cfg_ded_present) { HANDLE_CODE(srs_ul_cfg_ded.pack(bref)); } if (ant_info_present) { HANDLE_CODE(ant_info.pack(bref)); } if (sched_request_cfg_present) { HANDLE_CODE(sched_request_cfg.pack(bref)); } if (ext) { ext_groups_header group_flags(11); rrc_asn1_warn_assert(cqi_report_cfg_v920_present != (cqi_report_cfg_v920.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cqi_report_cfg_v920_present; rrc_asn1_warn_assert(ant_info_v920_present != (ant_info_v920.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ant_info_v920_present; rrc_asn1_warn_assert(ant_info_r10_present != (ant_info_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ant_info_r10_present; rrc_asn1_warn_assert(ant_info_ul_r10_present != (ant_info_ul_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ant_info_ul_r10_present; group_flags[1] |= cif_presence_r10_present; rrc_asn1_warn_assert(cqi_report_cfg_r10_present != (cqi_report_cfg_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= cqi_report_cfg_r10_present; rrc_asn1_warn_assert(csi_rs_cfg_r10_present != (csi_rs_cfg_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= csi_rs_cfg_r10_present; rrc_asn1_warn_assert(pucch_cfg_ded_v1020_present != (pucch_cfg_ded_v1020.get() != NULL), __FILE__, __LINE__); group_flags[1] |= pucch_cfg_ded_v1020_present; rrc_asn1_warn_assert(pusch_cfg_ded_v1020_present != (pusch_cfg_ded_v1020.get() != NULL), __FILE__, __LINE__); group_flags[1] |= pusch_cfg_ded_v1020_present; rrc_asn1_warn_assert(sched_request_cfg_v1020_present != (sched_request_cfg_v1020.get() != NULL), __FILE__, __LINE__); group_flags[1] |= sched_request_cfg_v1020_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_v1020_present != (srs_ul_cfg_ded_v1020.get() != NULL), __FILE__, __LINE__); group_flags[1] |= srs_ul_cfg_ded_v1020_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_r10_present != (srs_ul_cfg_ded_aperiodic_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= srs_ul_cfg_ded_aperiodic_r10_present; rrc_asn1_warn_assert(ul_pwr_ctrl_ded_v1020_present != (ul_pwr_ctrl_ded_v1020.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ul_pwr_ctrl_ded_v1020_present; rrc_asn1_warn_assert(add_spec_emission_ca_r10_present != (add_spec_emission_ca_r10.get() != NULL), __FILE__, __LINE__); group_flags[2] |= add_spec_emission_ca_r10_present; rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_release_list_r11_present != (csi_rs_cfg_nzp_to_release_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[3] |= csi_rs_cfg_nzp_to_release_list_r11_present; rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_add_mod_list_r11_present != (csi_rs_cfg_nzp_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[3] |= csi_rs_cfg_nzp_to_add_mod_list_r11_present; rrc_asn1_warn_assert(csi_rs_cfg_zp_to_release_list_r11_present != (csi_rs_cfg_zp_to_release_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[3] |= csi_rs_cfg_zp_to_release_list_r11_present; rrc_asn1_warn_assert(csi_rs_cfg_zp_to_add_mod_list_r11_present != (csi_rs_cfg_zp_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[3] |= csi_rs_cfg_zp_to_add_mod_list_r11_present; rrc_asn1_warn_assert(epdcch_cfg_r11_present != (epdcch_cfg_r11.get() != NULL), __FILE__, __LINE__); group_flags[3] |= epdcch_cfg_r11_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1130_present != (pdsch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pdsch_cfg_ded_v1130_present; rrc_asn1_warn_assert(cqi_report_cfg_v1130_present != (cqi_report_cfg_v1130.get() != NULL), __FILE__, __LINE__); group_flags[3] |= cqi_report_cfg_v1130_present; rrc_asn1_warn_assert(pucch_cfg_ded_v1130_present != (pucch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pucch_cfg_ded_v1130_present; rrc_asn1_warn_assert(pusch_cfg_ded_v1130_present != (pusch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pusch_cfg_ded_v1130_present; rrc_asn1_warn_assert(ul_pwr_ctrl_ded_v1130_present != (ul_pwr_ctrl_ded_v1130.get() != NULL), __FILE__, __LINE__); group_flags[3] |= ul_pwr_ctrl_ded_v1130_present; rrc_asn1_warn_assert(ant_info_v1250_present != (ant_info_v1250.get() != NULL), __FILE__, __LINE__); group_flags[4] |= ant_info_v1250_present; rrc_asn1_warn_assert(eimta_main_cfg_r12_present != (eimta_main_cfg_r12.get() != NULL), __FILE__, __LINE__); group_flags[4] |= eimta_main_cfg_r12_present; rrc_asn1_warn_assert(eimta_main_cfg_pcell_r12_present != (eimta_main_cfg_pcell_r12.get() != NULL), __FILE__, __LINE__); group_flags[4] |= eimta_main_cfg_pcell_r12_present; rrc_asn1_warn_assert(pucch_cfg_ded_v1250_present != (pucch_cfg_ded_v1250.get() != NULL), __FILE__, __LINE__); group_flags[4] |= pucch_cfg_ded_v1250_present; rrc_asn1_warn_assert(cqi_report_cfg_pcell_v1250_present != (cqi_report_cfg_pcell_v1250.get() != NULL), __FILE__, __LINE__); group_flags[4] |= cqi_report_cfg_pcell_v1250_present; rrc_asn1_warn_assert(ul_pwr_ctrl_ded_v1250_present != (ul_pwr_ctrl_ded_v1250.get() != NULL), __FILE__, __LINE__); group_flags[4] |= ul_pwr_ctrl_ded_v1250_present; rrc_asn1_warn_assert(pusch_cfg_ded_v1250_present != (pusch_cfg_ded_v1250.get() != NULL), __FILE__, __LINE__); group_flags[4] |= pusch_cfg_ded_v1250_present; rrc_asn1_warn_assert(csi_rs_cfg_v1250_present != (csi_rs_cfg_v1250.get() != NULL), __FILE__, __LINE__); group_flags[4] |= csi_rs_cfg_v1250_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1280_present != (pdsch_cfg_ded_v1280.get() != NULL), __FILE__, __LINE__); group_flags[5] |= pdsch_cfg_ded_v1280_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1310_present != (pdsch_cfg_ded_v1310.get() != NULL), __FILE__, __LINE__); group_flags[6] |= pdsch_cfg_ded_v1310_present; rrc_asn1_warn_assert(pucch_cfg_ded_r13_present != (pucch_cfg_ded_r13.get() != NULL), __FILE__, __LINE__); group_flags[6] |= pucch_cfg_ded_r13_present; rrc_asn1_warn_assert(pusch_cfg_ded_r13_present != (pusch_cfg_ded_r13.get() != NULL), __FILE__, __LINE__); group_flags[6] |= pusch_cfg_ded_r13_present; rrc_asn1_warn_assert(pdcch_candidate_reductions_r13_present != (pdcch_candidate_reductions_r13.get() != NULL), __FILE__, __LINE__); group_flags[6] |= pdcch_candidate_reductions_r13_present; rrc_asn1_warn_assert(cqi_report_cfg_v1310_present != (cqi_report_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[6] |= cqi_report_cfg_v1310_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_v1310_present != (srs_ul_cfg_ded_v1310.get() != NULL), __FILE__, __LINE__); group_flags[6] |= srs_ul_cfg_ded_v1310_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_up_pts_ext_r13_present != (srs_ul_cfg_ded_up_pts_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[6] |= srs_ul_cfg_ded_up_pts_ext_r13_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_v1310_present != (srs_ul_cfg_ded_aperiodic_v1310.get() != NULL), __FILE__, __LINE__); group_flags[6] |= srs_ul_cfg_ded_aperiodic_v1310_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present != (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[6] |= srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present; rrc_asn1_warn_assert(csi_rs_cfg_v1310_present != (csi_rs_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[6] |= csi_rs_cfg_v1310_present; rrc_asn1_warn_assert(ce_mode_r13_present != (ce_mode_r13.get() != NULL), __FILE__, __LINE__); group_flags[6] |= ce_mode_r13_present; rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present != (csi_rs_cfg_nzp_to_add_mod_list_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[6] |= csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present; rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_release_list_ext_r13_present != (csi_rs_cfg_nzp_to_release_list_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[6] |= csi_rs_cfg_nzp_to_release_list_ext_r13_present; rrc_asn1_warn_assert(cqi_report_cfg_v1320_present != (cqi_report_cfg_v1320.get() != NULL), __FILE__, __LINE__); group_flags[7] |= cqi_report_cfg_v1320_present; rrc_asn1_warn_assert(type_a_srs_tpc_pdcch_group_r14_present != (type_a_srs_tpc_pdcch_group_r14.get() != NULL), __FILE__, __LINE__); group_flags[8] |= type_a_srs_tpc_pdcch_group_r14_present; rrc_asn1_warn_assert(must_cfg_r14_present != (must_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[8] |= must_cfg_r14_present; rrc_asn1_warn_assert(pusch_enhance_cfg_r14_present != (pusch_enhance_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[8] |= pusch_enhance_cfg_r14_present; group_flags[8] |= ce_pdsch_pusch_enhancement_cfg_r14_present; rrc_asn1_warn_assert(ant_info_v1430_present != (ant_info_v1430.get() != NULL), __FILE__, __LINE__); group_flags[8] |= ant_info_v1430_present; rrc_asn1_warn_assert(pucch_cfg_ded_v1430_present != (pucch_cfg_ded_v1430.get() != NULL), __FILE__, __LINE__); group_flags[8] |= pucch_cfg_ded_v1430_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1430_present != (pdsch_cfg_ded_v1430.get() != NULL), __FILE__, __LINE__); group_flags[8] |= pdsch_cfg_ded_v1430_present; rrc_asn1_warn_assert(pusch_cfg_ded_v1430_present != (pusch_cfg_ded_v1430.get() != NULL), __FILE__, __LINE__); group_flags[8] |= pusch_cfg_ded_v1430_present; rrc_asn1_warn_assert(srs_ul_periodic_cfg_ded_list_r14_present != (srs_ul_periodic_cfg_ded_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[8] |= srs_ul_periodic_cfg_ded_list_r14_present; rrc_asn1_warn_assert(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present != (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[8] |= srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present; rrc_asn1_warn_assert(srs_ul_aperiodic_cfg_ded_list_r14_present != (srs_ul_aperiodic_cfg_ded_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[8] |= srs_ul_aperiodic_cfg_ded_list_r14_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present != (srs_ul_cfg_ded_ap_up_pts_ext_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[8] |= srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present; rrc_asn1_warn_assert(csi_rs_cfg_v1430_present != (csi_rs_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[8] |= csi_rs_cfg_v1430_present; rrc_asn1_warn_assert(csi_rs_cfg_zp_ap_list_r14_present != (csi_rs_cfg_zp_ap_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[8] |= csi_rs_cfg_zp_ap_list_r14_present; rrc_asn1_warn_assert(cqi_report_cfg_v1430_present != (cqi_report_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[8] |= cqi_report_cfg_v1430_present; group_flags[8] |= semi_open_loop_r14_present; rrc_asn1_warn_assert(csi_rs_cfg_v1480_present != (csi_rs_cfg_v1480.get() != NULL), __FILE__, __LINE__); group_flags[9] |= csi_rs_cfg_v1480_present; rrc_asn1_warn_assert(phys_cfg_ded_stti_r15_present != (phys_cfg_ded_stti_r15.get() != NULL), __FILE__, __LINE__); group_flags[10] |= phys_cfg_ded_stti_r15_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1530_present != (pdsch_cfg_ded_v1530.get() != NULL), __FILE__, __LINE__); group_flags[10] |= pdsch_cfg_ded_v1530_present; rrc_asn1_warn_assert(pusch_cfg_ded_v1530_present != (pusch_cfg_ded_v1530.get() != NULL), __FILE__, __LINE__); group_flags[10] |= pusch_cfg_ded_v1530_present; rrc_asn1_warn_assert(cqi_report_cfg_v1530_present != (cqi_report_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[10] |= cqi_report_cfg_v1530_present; rrc_asn1_warn_assert(ant_info_v1530_present != (ant_info_v1530.get() != NULL), __FILE__, __LINE__); group_flags[10] |= ant_info_v1530_present; rrc_asn1_warn_assert(csi_rs_cfg_v1530_present != (csi_rs_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[10] |= csi_rs_cfg_v1530_present; rrc_asn1_warn_assert(ul_pwr_ctrl_ded_v1530_present != (ul_pwr_ctrl_ded_v1530.get() != NULL), __FILE__, __LINE__); group_flags[10] |= ul_pwr_ctrl_ded_v1530_present; rrc_asn1_warn_assert(semi_static_cfi_cfg_r15_present != (semi_static_cfi_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[10] |= semi_static_cfi_cfg_r15_present; rrc_asn1_warn_assert(blind_pdsch_repeat_cfg_r15_present != (blind_pdsch_repeat_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[10] |= blind_pdsch_repeat_cfg_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cqi_report_cfg_v920_present, 1)); HANDLE_CODE(bref.pack(ant_info_v920_present, 1)); if (cqi_report_cfg_v920_present) { HANDLE_CODE(cqi_report_cfg_v920->pack(bref)); } if (ant_info_v920_present) { HANDLE_CODE(ant_info_v920->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ant_info_r10_present, 1)); HANDLE_CODE(bref.pack(ant_info_ul_r10_present, 1)); HANDLE_CODE(bref.pack(cif_presence_r10_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_ded_v1020_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_v1020_present, 1)); HANDLE_CODE(bref.pack(sched_request_cfg_v1020_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_v1020_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_aperiodic_r10_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_ded_v1020_present, 1)); if (ant_info_r10_present) { HANDLE_CODE(ant_info_r10->pack(bref)); } if (ant_info_ul_r10_present) { HANDLE_CODE(ant_info_ul_r10->pack(bref)); } if (cif_presence_r10_present) { HANDLE_CODE(bref.pack(cif_presence_r10, 1)); } if (cqi_report_cfg_r10_present) { HANDLE_CODE(cqi_report_cfg_r10->pack(bref)); } if (csi_rs_cfg_r10_present) { HANDLE_CODE(csi_rs_cfg_r10->pack(bref)); } if (pucch_cfg_ded_v1020_present) { HANDLE_CODE(pucch_cfg_ded_v1020->pack(bref)); } if (pusch_cfg_ded_v1020_present) { HANDLE_CODE(pusch_cfg_ded_v1020->pack(bref)); } if (sched_request_cfg_v1020_present) { HANDLE_CODE(sched_request_cfg_v1020->pack(bref)); } if (srs_ul_cfg_ded_v1020_present) { HANDLE_CODE(srs_ul_cfg_ded_v1020->pack(bref)); } if (srs_ul_cfg_ded_aperiodic_r10_present) { HANDLE_CODE(srs_ul_cfg_ded_aperiodic_r10->pack(bref)); } if (ul_pwr_ctrl_ded_v1020_present) { HANDLE_CODE(ul_pwr_ctrl_ded_v1020->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(add_spec_emission_ca_r10_present, 1)); if (add_spec_emission_ca_r10_present) { HANDLE_CODE(add_spec_emission_ca_r10->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_zp_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_zp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.pack(epdcch_cfg_r11_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_ded_v1130_present, 1)); if (csi_rs_cfg_nzp_to_release_list_r11_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *csi_rs_cfg_nzp_to_release_list_r11, 1, 3, UnalignedIntegerPacker(1, 3))); } if (csi_rs_cfg_nzp_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *csi_rs_cfg_nzp_to_add_mod_list_r11, 1, 3)); } if (csi_rs_cfg_zp_to_release_list_r11_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *csi_rs_cfg_zp_to_release_list_r11, 1, 4, UnalignedIntegerPacker(1, 4))); } if (csi_rs_cfg_zp_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *csi_rs_cfg_zp_to_add_mod_list_r11, 1, 4)); } if (epdcch_cfg_r11_present) { HANDLE_CODE(epdcch_cfg_r11->pack(bref)); } if (pdsch_cfg_ded_v1130_present) { HANDLE_CODE(pdsch_cfg_ded_v1130->pack(bref)); } if (cqi_report_cfg_v1130_present) { HANDLE_CODE(cqi_report_cfg_v1130->pack(bref)); } if (pucch_cfg_ded_v1130_present) { HANDLE_CODE(pucch_cfg_ded_v1130->pack(bref)); } if (pusch_cfg_ded_v1130_present) { HANDLE_CODE(pusch_cfg_ded_v1130->pack(bref)); } if (ul_pwr_ctrl_ded_v1130_present) { HANDLE_CODE(ul_pwr_ctrl_ded_v1130->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ant_info_v1250_present, 1)); HANDLE_CODE(bref.pack(eimta_main_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(eimta_main_cfg_pcell_r12_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_ded_v1250_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_pcell_v1250_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_ded_v1250_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_v1250_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_v1250_present, 1)); if (ant_info_v1250_present) { HANDLE_CODE(ant_info_v1250->pack(bref)); } if (eimta_main_cfg_r12_present) { HANDLE_CODE(eimta_main_cfg_r12->pack(bref)); } if (eimta_main_cfg_pcell_r12_present) { HANDLE_CODE(eimta_main_cfg_pcell_r12->pack(bref)); } if (pucch_cfg_ded_v1250_present) { HANDLE_CODE(pucch_cfg_ded_v1250->pack(bref)); } if (cqi_report_cfg_pcell_v1250_present) { HANDLE_CODE(cqi_report_cfg_pcell_v1250->pack(bref)); } if (ul_pwr_ctrl_ded_v1250_present) { HANDLE_CODE(ul_pwr_ctrl_ded_v1250->pack(bref)); } if (pusch_cfg_ded_v1250_present) { HANDLE_CODE(pusch_cfg_ded_v1250->pack(bref)); } if (csi_rs_cfg_v1250_present) { HANDLE_CODE(csi_rs_cfg_v1250->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1280_present, 1)); if (pdsch_cfg_ded_v1280_present) { HANDLE_CODE(pdsch_cfg_ded_v1280->pack(bref)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1310_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.pack(pdcch_candidate_reductions_r13_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_v1310_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_up_pts_ext_r13_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_aperiodic_v1310_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(ce_mode_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_to_release_list_ext_r13_present, 1)); if (pdsch_cfg_ded_v1310_present) { HANDLE_CODE(pdsch_cfg_ded_v1310->pack(bref)); } if (pucch_cfg_ded_r13_present) { HANDLE_CODE(pucch_cfg_ded_r13->pack(bref)); } if (pusch_cfg_ded_r13_present) { HANDLE_CODE(pusch_cfg_ded_r13->pack(bref)); } if (pdcch_candidate_reductions_r13_present) { HANDLE_CODE(pdcch_candidate_reductions_r13->pack(bref)); } if (cqi_report_cfg_v1310_present) { HANDLE_CODE(cqi_report_cfg_v1310->pack(bref)); } if (srs_ul_cfg_ded_v1310_present) { HANDLE_CODE(srs_ul_cfg_ded_v1310->pack(bref)); } if (srs_ul_cfg_ded_up_pts_ext_r13_present) { HANDLE_CODE(srs_ul_cfg_ded_up_pts_ext_r13->pack(bref)); } if (srs_ul_cfg_ded_aperiodic_v1310_present) { HANDLE_CODE(srs_ul_cfg_ded_aperiodic_v1310->pack(bref)); } if (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present) { HANDLE_CODE(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13->pack(bref)); } if (csi_rs_cfg_v1310_present) { HANDLE_CODE(csi_rs_cfg_v1310->pack(bref)); } if (ce_mode_r13_present) { HANDLE_CODE(ce_mode_r13->pack(bref)); } if (csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *csi_rs_cfg_nzp_to_add_mod_list_ext_r13, 1, 21)); } if (csi_rs_cfg_nzp_to_release_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *csi_rs_cfg_nzp_to_release_list_ext_r13, 1, 21, UnalignedIntegerPacker(4, 24))); } } if (group_flags[7]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cqi_report_cfg_v1320_present, 1)); if (cqi_report_cfg_v1320_present) { HANDLE_CODE(cqi_report_cfg_v1320->pack(bref)); } } if (group_flags[8]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(type_a_srs_tpc_pdcch_group_r14_present, 1)); HANDLE_CODE(bref.pack(must_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(pusch_enhance_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(ce_pdsch_pusch_enhancement_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(ant_info_v1430_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_ded_v1430_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1430_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_v1430_present, 1)); HANDLE_CODE(bref.pack(srs_ul_periodic_cfg_ded_list_r14_present, 1)); HANDLE_CODE(bref.pack(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present, 1)); HANDLE_CODE(bref.pack(srs_ul_aperiodic_cfg_ded_list_r14_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_zp_ap_list_r14_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(semi_open_loop_r14_present, 1)); if (type_a_srs_tpc_pdcch_group_r14_present) { HANDLE_CODE(type_a_srs_tpc_pdcch_group_r14->pack(bref)); } if (must_cfg_r14_present) { HANDLE_CODE(must_cfg_r14->pack(bref)); } if (pusch_enhance_cfg_r14_present) { HANDLE_CODE(pusch_enhance_cfg_r14->pack(bref)); } if (ant_info_v1430_present) { HANDLE_CODE(ant_info_v1430->pack(bref)); } if (pucch_cfg_ded_v1430_present) { HANDLE_CODE(pucch_cfg_ded_v1430->pack(bref)); } if (pdsch_cfg_ded_v1430_present) { HANDLE_CODE(pdsch_cfg_ded_v1430->pack(bref)); } if (pusch_cfg_ded_v1430_present) { HANDLE_CODE(pusch_cfg_ded_v1430->pack(bref)); } if (srs_ul_periodic_cfg_ded_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srs_ul_periodic_cfg_ded_list_r14, 1, 2)); } if (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srs_ul_periodic_cfg_ded_up_pts_ext_list_r14, 1, 4)); } if (srs_ul_aperiodic_cfg_ded_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srs_ul_aperiodic_cfg_ded_list_r14, 1, 2)); } if (srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srs_ul_cfg_ded_ap_up_pts_ext_list_r14, 1, 4)); } if (csi_rs_cfg_v1430_present) { HANDLE_CODE(csi_rs_cfg_v1430->pack(bref)); } if (csi_rs_cfg_zp_ap_list_r14_present) { HANDLE_CODE(csi_rs_cfg_zp_ap_list_r14->pack(bref)); } if (cqi_report_cfg_v1430_present) { HANDLE_CODE(cqi_report_cfg_v1430->pack(bref)); } if (semi_open_loop_r14_present) { HANDLE_CODE(bref.pack(semi_open_loop_r14, 1)); } } if (group_flags[9]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csi_rs_cfg_v1480_present, 1)); if (csi_rs_cfg_v1480_present) { HANDLE_CODE(csi_rs_cfg_v1480->pack(bref)); } } if (group_flags[10]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(phys_cfg_ded_stti_r15_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(ant_info_v1530_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_ded_v1530_present, 1)); HANDLE_CODE(bref.pack(semi_static_cfi_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(blind_pdsch_repeat_cfg_r15_present, 1)); if (phys_cfg_ded_stti_r15_present) { HANDLE_CODE(phys_cfg_ded_stti_r15->pack(bref)); } if (pdsch_cfg_ded_v1530_present) { HANDLE_CODE(pdsch_cfg_ded_v1530->pack(bref)); } if (pusch_cfg_ded_v1530_present) { HANDLE_CODE(pusch_cfg_ded_v1530->pack(bref)); } if (cqi_report_cfg_v1530_present) { HANDLE_CODE(cqi_report_cfg_v1530->pack(bref)); } if (ant_info_v1530_present) { HANDLE_CODE(ant_info_v1530->pack(bref)); } if (csi_rs_cfg_v1530_present) { HANDLE_CODE(csi_rs_cfg_v1530->pack(bref)); } if (ul_pwr_ctrl_ded_v1530_present) { HANDLE_CODE(ul_pwr_ctrl_ded_v1530->pack(bref)); } if (semi_static_cfi_cfg_r15_present) { HANDLE_CODE(semi_static_cfi_cfg_r15->pack(bref)); } if (blind_pdsch_repeat_cfg_r15_present) { HANDLE_CODE(blind_pdsch_repeat_cfg_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_ded_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_ded_present, 1)); HANDLE_CODE(bref.unpack(tpc_pdcch_cfg_pucch_present, 1)); HANDLE_CODE(bref.unpack(tpc_pdcch_cfg_pusch_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_present, 1)); HANDLE_CODE(bref.unpack(ant_info_present, 1)); HANDLE_CODE(bref.unpack(sched_request_cfg_present, 1)); if (pdsch_cfg_ded_present) { HANDLE_CODE(pdsch_cfg_ded.unpack(bref)); } if (pucch_cfg_ded_present) { HANDLE_CODE(pucch_cfg_ded.unpack(bref)); } if (pusch_cfg_ded_present) { HANDLE_CODE(pusch_cfg_ded.unpack(bref)); } if (ul_pwr_ctrl_ded_present) { HANDLE_CODE(ul_pwr_ctrl_ded.unpack(bref)); } if (tpc_pdcch_cfg_pucch_present) { HANDLE_CODE(tpc_pdcch_cfg_pucch.unpack(bref)); } if (tpc_pdcch_cfg_pusch_present) { HANDLE_CODE(tpc_pdcch_cfg_pusch.unpack(bref)); } if (cqi_report_cfg_present) { HANDLE_CODE(cqi_report_cfg.unpack(bref)); } if (srs_ul_cfg_ded_present) { HANDLE_CODE(srs_ul_cfg_ded.unpack(bref)); } if (ant_info_present) { HANDLE_CODE(ant_info.unpack(bref)); } if (sched_request_cfg_present) { HANDLE_CODE(sched_request_cfg.unpack(bref)); } if (ext) { ext_groups_header group_flags(11); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cqi_report_cfg_v920_present, 1)); HANDLE_CODE(bref.unpack(ant_info_v920_present, 1)); if (cqi_report_cfg_v920_present) { cqi_report_cfg_v920 = make_copy_ptr(cqi_report_cfg_v920_s()); HANDLE_CODE(cqi_report_cfg_v920->unpack(bref)); } if (ant_info_v920_present) { ant_info_v920 = make_copy_ptr(ant_info_ded_v920_s()); HANDLE_CODE(ant_info_v920->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ant_info_r10_present, 1)); HANDLE_CODE(bref.unpack(ant_info_ul_r10_present, 1)); HANDLE_CODE(bref.unpack(cif_presence_r10_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_ded_v1020_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_v1020_present, 1)); HANDLE_CODE(bref.unpack(sched_request_cfg_v1020_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_v1020_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_aperiodic_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_ded_v1020_present, 1)); if (ant_info_r10_present) { ant_info_r10 = make_copy_ptr(ant_info_r10_c_()); HANDLE_CODE(ant_info_r10->unpack(bref)); } if (ant_info_ul_r10_present) { ant_info_ul_r10 = make_copy_ptr(ant_info_ul_r10_s()); HANDLE_CODE(ant_info_ul_r10->unpack(bref)); } if (cif_presence_r10_present) { HANDLE_CODE(bref.unpack(cif_presence_r10, 1)); } if (cqi_report_cfg_r10_present) { cqi_report_cfg_r10 = make_copy_ptr(cqi_report_cfg_r10_s()); HANDLE_CODE(cqi_report_cfg_r10->unpack(bref)); } if (csi_rs_cfg_r10_present) { csi_rs_cfg_r10 = make_copy_ptr(csi_rs_cfg_r10_s()); HANDLE_CODE(csi_rs_cfg_r10->unpack(bref)); } if (pucch_cfg_ded_v1020_present) { pucch_cfg_ded_v1020 = make_copy_ptr(pucch_cfg_ded_v1020_s()); HANDLE_CODE(pucch_cfg_ded_v1020->unpack(bref)); } if (pusch_cfg_ded_v1020_present) { pusch_cfg_ded_v1020 = make_copy_ptr(pusch_cfg_ded_v1020_s()); HANDLE_CODE(pusch_cfg_ded_v1020->unpack(bref)); } if (sched_request_cfg_v1020_present) { sched_request_cfg_v1020 = make_copy_ptr(sched_request_cfg_v1020_s()); HANDLE_CODE(sched_request_cfg_v1020->unpack(bref)); } if (srs_ul_cfg_ded_v1020_present) { srs_ul_cfg_ded_v1020 = make_copy_ptr(srs_ul_cfg_ded_v1020_s()); HANDLE_CODE(srs_ul_cfg_ded_v1020->unpack(bref)); } if (srs_ul_cfg_ded_aperiodic_r10_present) { srs_ul_cfg_ded_aperiodic_r10 = make_copy_ptr(srs_ul_cfg_ded_aperiodic_r10_c()); HANDLE_CODE(srs_ul_cfg_ded_aperiodic_r10->unpack(bref)); } if (ul_pwr_ctrl_ded_v1020_present) { ul_pwr_ctrl_ded_v1020 = make_copy_ptr(ul_pwr_ctrl_ded_v1020_s()); HANDLE_CODE(ul_pwr_ctrl_ded_v1020->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(add_spec_emission_ca_r10_present, 1)); if (add_spec_emission_ca_r10_present) { add_spec_emission_ca_r10 = make_copy_ptr(add_spec_emission_ca_r10_c_()); HANDLE_CODE(add_spec_emission_ca_r10->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_zp_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_zp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.unpack(epdcch_cfg_r11_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_ded_v1130_present, 1)); if (csi_rs_cfg_nzp_to_release_list_r11_present) { csi_rs_cfg_nzp_to_release_list_r11 = make_copy_ptr(csi_rs_cfg_nzp_to_release_list_r11_l()); HANDLE_CODE( unpack_dyn_seq_of(*csi_rs_cfg_nzp_to_release_list_r11, bref, 1, 3, UnalignedIntegerPacker(1, 3))); } if (csi_rs_cfg_nzp_to_add_mod_list_r11_present) { csi_rs_cfg_nzp_to_add_mod_list_r11 = make_copy_ptr(csi_rs_cfg_nzp_to_add_mod_list_r11_l()); HANDLE_CODE(unpack_dyn_seq_of(*csi_rs_cfg_nzp_to_add_mod_list_r11, bref, 1, 3)); } if (csi_rs_cfg_zp_to_release_list_r11_present) { csi_rs_cfg_zp_to_release_list_r11 = make_copy_ptr(csi_rs_cfg_zp_to_release_list_r11_l()); HANDLE_CODE( unpack_dyn_seq_of(*csi_rs_cfg_zp_to_release_list_r11, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (csi_rs_cfg_zp_to_add_mod_list_r11_present) { csi_rs_cfg_zp_to_add_mod_list_r11 = make_copy_ptr(csi_rs_cfg_zp_to_add_mod_list_r11_l()); HANDLE_CODE(unpack_dyn_seq_of(*csi_rs_cfg_zp_to_add_mod_list_r11, bref, 1, 4)); } if (epdcch_cfg_r11_present) { epdcch_cfg_r11 = make_copy_ptr(epdcch_cfg_r11_s()); HANDLE_CODE(epdcch_cfg_r11->unpack(bref)); } if (pdsch_cfg_ded_v1130_present) { pdsch_cfg_ded_v1130 = make_copy_ptr(pdsch_cfg_ded_v1130_s()); HANDLE_CODE(pdsch_cfg_ded_v1130->unpack(bref)); } if (cqi_report_cfg_v1130_present) { cqi_report_cfg_v1130 = make_copy_ptr(cqi_report_cfg_v1130_s()); HANDLE_CODE(cqi_report_cfg_v1130->unpack(bref)); } if (pucch_cfg_ded_v1130_present) { pucch_cfg_ded_v1130 = make_copy_ptr(pucch_cfg_ded_v1130_s()); HANDLE_CODE(pucch_cfg_ded_v1130->unpack(bref)); } if (pusch_cfg_ded_v1130_present) { pusch_cfg_ded_v1130 = make_copy_ptr(pusch_cfg_ded_v1130_s()); HANDLE_CODE(pusch_cfg_ded_v1130->unpack(bref)); } if (ul_pwr_ctrl_ded_v1130_present) { ul_pwr_ctrl_ded_v1130 = make_copy_ptr(ul_pwr_ctrl_ded_v1130_s()); HANDLE_CODE(ul_pwr_ctrl_ded_v1130->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ant_info_v1250_present, 1)); HANDLE_CODE(bref.unpack(eimta_main_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(eimta_main_cfg_pcell_r12_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_ded_v1250_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_pcell_v1250_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_ded_v1250_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_v1250_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1250_present, 1)); if (ant_info_v1250_present) { ant_info_v1250 = make_copy_ptr(ant_info_ded_v1250_s()); HANDLE_CODE(ant_info_v1250->unpack(bref)); } if (eimta_main_cfg_r12_present) { eimta_main_cfg_r12 = make_copy_ptr(eimta_main_cfg_r12_c()); HANDLE_CODE(eimta_main_cfg_r12->unpack(bref)); } if (eimta_main_cfg_pcell_r12_present) { eimta_main_cfg_pcell_r12 = make_copy_ptr(eimta_main_cfg_serv_cell_r12_c()); HANDLE_CODE(eimta_main_cfg_pcell_r12->unpack(bref)); } if (pucch_cfg_ded_v1250_present) { pucch_cfg_ded_v1250 = make_copy_ptr(pucch_cfg_ded_v1250_s()); HANDLE_CODE(pucch_cfg_ded_v1250->unpack(bref)); } if (cqi_report_cfg_pcell_v1250_present) { cqi_report_cfg_pcell_v1250 = make_copy_ptr(cqi_report_cfg_v1250_s()); HANDLE_CODE(cqi_report_cfg_pcell_v1250->unpack(bref)); } if (ul_pwr_ctrl_ded_v1250_present) { ul_pwr_ctrl_ded_v1250 = make_copy_ptr(ul_pwr_ctrl_ded_v1250_s()); HANDLE_CODE(ul_pwr_ctrl_ded_v1250->unpack(bref)); } if (pusch_cfg_ded_v1250_present) { pusch_cfg_ded_v1250 = make_copy_ptr(pusch_cfg_ded_v1250_s()); HANDLE_CODE(pusch_cfg_ded_v1250->unpack(bref)); } if (csi_rs_cfg_v1250_present) { csi_rs_cfg_v1250 = make_copy_ptr(csi_rs_cfg_v1250_s()); HANDLE_CODE(csi_rs_cfg_v1250->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1280_present, 1)); if (pdsch_cfg_ded_v1280_present) { pdsch_cfg_ded_v1280 = make_copy_ptr(pdsch_cfg_ded_v1280_s()); HANDLE_CODE(pdsch_cfg_ded_v1280->unpack(bref)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1310_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.unpack(pdcch_candidate_reductions_r13_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_v1310_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_up_pts_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_aperiodic_v1310_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(ce_mode_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_to_release_list_ext_r13_present, 1)); if (pdsch_cfg_ded_v1310_present) { pdsch_cfg_ded_v1310 = make_copy_ptr(pdsch_cfg_ded_v1310_s()); HANDLE_CODE(pdsch_cfg_ded_v1310->unpack(bref)); } if (pucch_cfg_ded_r13_present) { pucch_cfg_ded_r13 = make_copy_ptr(pucch_cfg_ded_r13_s()); HANDLE_CODE(pucch_cfg_ded_r13->unpack(bref)); } if (pusch_cfg_ded_r13_present) { pusch_cfg_ded_r13 = make_copy_ptr(pusch_cfg_ded_r13_s()); HANDLE_CODE(pusch_cfg_ded_r13->unpack(bref)); } if (pdcch_candidate_reductions_r13_present) { pdcch_candidate_reductions_r13 = make_copy_ptr(pdcch_candidate_reductions_r13_c()); HANDLE_CODE(pdcch_candidate_reductions_r13->unpack(bref)); } if (cqi_report_cfg_v1310_present) { cqi_report_cfg_v1310 = make_copy_ptr(cqi_report_cfg_v1310_s()); HANDLE_CODE(cqi_report_cfg_v1310->unpack(bref)); } if (srs_ul_cfg_ded_v1310_present) { srs_ul_cfg_ded_v1310 = make_copy_ptr(srs_ul_cfg_ded_v1310_c()); HANDLE_CODE(srs_ul_cfg_ded_v1310->unpack(bref)); } if (srs_ul_cfg_ded_up_pts_ext_r13_present) { srs_ul_cfg_ded_up_pts_ext_r13 = make_copy_ptr(srs_ul_cfg_ded_up_pts_ext_r13_c()); HANDLE_CODE(srs_ul_cfg_ded_up_pts_ext_r13->unpack(bref)); } if (srs_ul_cfg_ded_aperiodic_v1310_present) { srs_ul_cfg_ded_aperiodic_v1310 = make_copy_ptr(srs_ul_cfg_ded_aperiodic_v1310_c()); HANDLE_CODE(srs_ul_cfg_ded_aperiodic_v1310->unpack(bref)); } if (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present) { srs_ul_cfg_ded_aperiodic_up_pts_ext_r13 = make_copy_ptr(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c()); HANDLE_CODE(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13->unpack(bref)); } if (csi_rs_cfg_v1310_present) { csi_rs_cfg_v1310 = make_copy_ptr(csi_rs_cfg_v1310_s()); HANDLE_CODE(csi_rs_cfg_v1310->unpack(bref)); } if (ce_mode_r13_present) { ce_mode_r13 = make_copy_ptr(ce_mode_r13_c_()); HANDLE_CODE(ce_mode_r13->unpack(bref)); } if (csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present) { csi_rs_cfg_nzp_to_add_mod_list_ext_r13 = make_copy_ptr(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*csi_rs_cfg_nzp_to_add_mod_list_ext_r13, bref, 1, 21)); } if (csi_rs_cfg_nzp_to_release_list_ext_r13_present) { csi_rs_cfg_nzp_to_release_list_ext_r13 = make_copy_ptr(csi_rs_cfg_nzp_to_release_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*csi_rs_cfg_nzp_to_release_list_ext_r13, bref, 1, 21, UnalignedIntegerPacker(4, 24))); } } if (group_flags[7]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1320_present, 1)); if (cqi_report_cfg_v1320_present) { cqi_report_cfg_v1320 = make_copy_ptr(cqi_report_cfg_v1320_s()); HANDLE_CODE(cqi_report_cfg_v1320->unpack(bref)); } } if (group_flags[8]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(type_a_srs_tpc_pdcch_group_r14_present, 1)); HANDLE_CODE(bref.unpack(must_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(pusch_enhance_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_pdsch_pusch_enhancement_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(ant_info_v1430_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_ded_v1430_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1430_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_v1430_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_periodic_cfg_ded_list_r14_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_aperiodic_cfg_ded_list_r14_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_zp_ap_list_r14_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(semi_open_loop_r14_present, 1)); if (type_a_srs_tpc_pdcch_group_r14_present) { type_a_srs_tpc_pdcch_group_r14 = make_copy_ptr(type_a_srs_tpc_pdcch_group_r14_c_()); HANDLE_CODE(type_a_srs_tpc_pdcch_group_r14->unpack(bref)); } if (must_cfg_r14_present) { must_cfg_r14 = make_copy_ptr(must_cfg_r14_c_()); HANDLE_CODE(must_cfg_r14->unpack(bref)); } if (pusch_enhance_cfg_r14_present) { pusch_enhance_cfg_r14 = make_copy_ptr(pusch_enhance_cfg_r14_c()); HANDLE_CODE(pusch_enhance_cfg_r14->unpack(bref)); } if (ant_info_v1430_present) { ant_info_v1430 = make_copy_ptr(ant_info_ded_v1430_s()); HANDLE_CODE(ant_info_v1430->unpack(bref)); } if (pucch_cfg_ded_v1430_present) { pucch_cfg_ded_v1430 = make_copy_ptr(pucch_cfg_ded_v1430_s()); HANDLE_CODE(pucch_cfg_ded_v1430->unpack(bref)); } if (pdsch_cfg_ded_v1430_present) { pdsch_cfg_ded_v1430 = make_copy_ptr(pdsch_cfg_ded_v1430_s()); HANDLE_CODE(pdsch_cfg_ded_v1430->unpack(bref)); } if (pusch_cfg_ded_v1430_present) { pusch_cfg_ded_v1430 = make_copy_ptr(pusch_cfg_ded_v1430_s()); HANDLE_CODE(pusch_cfg_ded_v1430->unpack(bref)); } if (srs_ul_periodic_cfg_ded_list_r14_present) { srs_ul_periodic_cfg_ded_list_r14 = make_copy_ptr(srs_ul_periodic_cfg_ded_list_r14_l_()); HANDLE_CODE(unpack_dyn_seq_of(*srs_ul_periodic_cfg_ded_list_r14, bref, 1, 2)); } if (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present) { srs_ul_periodic_cfg_ded_up_pts_ext_list_r14 = make_copy_ptr(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_l_()); HANDLE_CODE(unpack_dyn_seq_of(*srs_ul_periodic_cfg_ded_up_pts_ext_list_r14, bref, 1, 4)); } if (srs_ul_aperiodic_cfg_ded_list_r14_present) { srs_ul_aperiodic_cfg_ded_list_r14 = make_copy_ptr(srs_ul_aperiodic_cfg_ded_list_r14_l_()); HANDLE_CODE(unpack_dyn_seq_of(*srs_ul_aperiodic_cfg_ded_list_r14, bref, 1, 2)); } if (srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present) { srs_ul_cfg_ded_ap_up_pts_ext_list_r14 = make_copy_ptr(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_l_()); HANDLE_CODE(unpack_dyn_seq_of(*srs_ul_cfg_ded_ap_up_pts_ext_list_r14, bref, 1, 4)); } if (csi_rs_cfg_v1430_present) { csi_rs_cfg_v1430 = make_copy_ptr(csi_rs_cfg_v1430_s()); HANDLE_CODE(csi_rs_cfg_v1430->unpack(bref)); } if (csi_rs_cfg_zp_ap_list_r14_present) { csi_rs_cfg_zp_ap_list_r14 = make_copy_ptr(csi_rs_cfg_zp_ap_list_r14_c()); HANDLE_CODE(csi_rs_cfg_zp_ap_list_r14->unpack(bref)); } if (cqi_report_cfg_v1430_present) { cqi_report_cfg_v1430 = make_copy_ptr(cqi_report_cfg_v1430_s()); HANDLE_CODE(cqi_report_cfg_v1430->unpack(bref)); } if (semi_open_loop_r14_present) { HANDLE_CODE(bref.unpack(semi_open_loop_r14, 1)); } } if (group_flags[9]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1480_present, 1)); if (csi_rs_cfg_v1480_present) { csi_rs_cfg_v1480 = make_copy_ptr(csi_rs_cfg_v1480_s()); HANDLE_CODE(csi_rs_cfg_v1480->unpack(bref)); } } if (group_flags[10]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(phys_cfg_ded_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(ant_info_v1530_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_ded_v1530_present, 1)); HANDLE_CODE(bref.unpack(semi_static_cfi_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(blind_pdsch_repeat_cfg_r15_present, 1)); if (phys_cfg_ded_stti_r15_present) { phys_cfg_ded_stti_r15 = make_copy_ptr(phys_cfg_ded_stti_r15_c()); HANDLE_CODE(phys_cfg_ded_stti_r15->unpack(bref)); } if (pdsch_cfg_ded_v1530_present) { pdsch_cfg_ded_v1530 = make_copy_ptr(pdsch_cfg_ded_v1530_s()); HANDLE_CODE(pdsch_cfg_ded_v1530->unpack(bref)); } if (pusch_cfg_ded_v1530_present) { pusch_cfg_ded_v1530 = make_copy_ptr(pusch_cfg_ded_v1530_s()); HANDLE_CODE(pusch_cfg_ded_v1530->unpack(bref)); } if (cqi_report_cfg_v1530_present) { cqi_report_cfg_v1530 = make_copy_ptr(cqi_report_cfg_v1530_s()); HANDLE_CODE(cqi_report_cfg_v1530->unpack(bref)); } if (ant_info_v1530_present) { ant_info_v1530 = make_copy_ptr(ant_info_ded_v1530_c()); HANDLE_CODE(ant_info_v1530->unpack(bref)); } if (csi_rs_cfg_v1530_present) { csi_rs_cfg_v1530 = make_copy_ptr(csi_rs_cfg_v1530_s()); HANDLE_CODE(csi_rs_cfg_v1530->unpack(bref)); } if (ul_pwr_ctrl_ded_v1530_present) { ul_pwr_ctrl_ded_v1530 = make_copy_ptr(ul_pwr_ctrl_ded_v1530_s()); HANDLE_CODE(ul_pwr_ctrl_ded_v1530->unpack(bref)); } if (semi_static_cfi_cfg_r15_present) { semi_static_cfi_cfg_r15 = make_copy_ptr(semi_static_cfi_cfg_r15_c_()); HANDLE_CODE(semi_static_cfi_cfg_r15->unpack(bref)); } if (blind_pdsch_repeat_cfg_r15_present) { blind_pdsch_repeat_cfg_r15 = make_copy_ptr(blind_pdsch_repeat_cfg_r15_c_()); HANDLE_CODE(blind_pdsch_repeat_cfg_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void phys_cfg_ded_s::to_json(json_writer& j) const { j.start_obj(); if (pdsch_cfg_ded_present) { j.write_fieldname("pdsch-ConfigDedicated"); pdsch_cfg_ded.to_json(j); } if (pucch_cfg_ded_present) { j.write_fieldname("pucch-ConfigDedicated"); pucch_cfg_ded.to_json(j); } if (pusch_cfg_ded_present) { j.write_fieldname("pusch-ConfigDedicated"); pusch_cfg_ded.to_json(j); } if (ul_pwr_ctrl_ded_present) { j.write_fieldname("uplinkPowerControlDedicated"); ul_pwr_ctrl_ded.to_json(j); } if (tpc_pdcch_cfg_pucch_present) { j.write_fieldname("tpc-PDCCH-ConfigPUCCH"); tpc_pdcch_cfg_pucch.to_json(j); } if (tpc_pdcch_cfg_pusch_present) { j.write_fieldname("tpc-PDCCH-ConfigPUSCH"); tpc_pdcch_cfg_pusch.to_json(j); } if (cqi_report_cfg_present) { j.write_fieldname("cqi-ReportConfig"); cqi_report_cfg.to_json(j); } if (srs_ul_cfg_ded_present) { j.write_fieldname("soundingRS-UL-ConfigDedicated"); srs_ul_cfg_ded.to_json(j); } if (ant_info_present) { j.write_fieldname("antennaInfo"); ant_info.to_json(j); } if (sched_request_cfg_present) { j.write_fieldname("schedulingRequestConfig"); sched_request_cfg.to_json(j); } if (ext) { rrc_asn1_warn_assert(cqi_report_cfg_v920_present != (cqi_report_cfg_v920.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v920_present) { j.write_fieldname("cqi-ReportConfig-v920"); cqi_report_cfg_v920->to_json(j); } rrc_asn1_warn_assert(ant_info_v920_present != (ant_info_v920.get() != NULL), __FILE__, __LINE__); if (ant_info_v920_present) { j.write_fieldname("antennaInfo-v920"); ant_info_v920->to_json(j); } rrc_asn1_warn_assert(ant_info_r10_present != (ant_info_r10.get() != NULL), __FILE__, __LINE__); if (ant_info_r10_present) { j.write_fieldname("antennaInfo-r10"); ant_info_r10->to_json(j); } rrc_asn1_warn_assert(ant_info_ul_r10_present != (ant_info_ul_r10.get() != NULL), __FILE__, __LINE__); if (ant_info_ul_r10_present) { j.write_fieldname("antennaInfoUL-r10"); ant_info_ul_r10->to_json(j); } if (cif_presence_r10_present) { j.write_bool("cif-Presence-r10", cif_presence_r10); } rrc_asn1_warn_assert(cqi_report_cfg_r10_present != (cqi_report_cfg_r10.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_r10_present) { j.write_fieldname("cqi-ReportConfig-r10"); cqi_report_cfg_r10->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_r10_present != (csi_rs_cfg_r10.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_r10_present) { j.write_fieldname("csi-RS-Config-r10"); csi_rs_cfg_r10->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_ded_v1020_present != (pucch_cfg_ded_v1020.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_ded_v1020_present) { j.write_fieldname("pucch-ConfigDedicated-v1020"); pucch_cfg_ded_v1020->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_v1020_present != (pusch_cfg_ded_v1020.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_v1020_present) { j.write_fieldname("pusch-ConfigDedicated-v1020"); pusch_cfg_ded_v1020->to_json(j); } rrc_asn1_warn_assert(sched_request_cfg_v1020_present != (sched_request_cfg_v1020.get() != NULL), __FILE__, __LINE__); if (sched_request_cfg_v1020_present) { j.write_fieldname("schedulingRequestConfig-v1020"); sched_request_cfg_v1020->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_v1020_present != (srs_ul_cfg_ded_v1020.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_v1020_present) { j.write_fieldname("soundingRS-UL-ConfigDedicated-v1020"); srs_ul_cfg_ded_v1020->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_r10_present != (srs_ul_cfg_ded_aperiodic_r10.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_aperiodic_r10_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodic-r10"); srs_ul_cfg_ded_aperiodic_r10->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_ded_v1020_present != (ul_pwr_ctrl_ded_v1020.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_ded_v1020_present) { j.write_fieldname("uplinkPowerControlDedicated-v1020"); ul_pwr_ctrl_ded_v1020->to_json(j); } rrc_asn1_warn_assert(add_spec_emission_ca_r10_present != (add_spec_emission_ca_r10.get() != NULL), __FILE__, __LINE__); if (add_spec_emission_ca_r10_present) { j.write_fieldname("additionalSpectrumEmissionCA-r10"); add_spec_emission_ca_r10->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_release_list_r11_present != (csi_rs_cfg_nzp_to_release_list_r11.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_nzp_to_release_list_r11_present) { j.start_array("csi-RS-ConfigNZPToReleaseList-r11"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_to_release_list_r11->size(); ++i1) { j.write_int(((*csi_rs_cfg_nzp_to_release_list_r11)[i1])); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_add_mod_list_r11_present != (csi_rs_cfg_nzp_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_nzp_to_add_mod_list_r11_present) { j.start_array("csi-RS-ConfigNZPToAddModList-r11"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_to_add_mod_list_r11->size(); ++i1) { ((*csi_rs_cfg_nzp_to_add_mod_list_r11)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_zp_to_release_list_r11_present != (csi_rs_cfg_zp_to_release_list_r11.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_zp_to_release_list_r11_present) { j.start_array("csi-RS-ConfigZPToReleaseList-r11"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_zp_to_release_list_r11->size(); ++i1) { j.write_int(((*csi_rs_cfg_zp_to_release_list_r11)[i1])); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_zp_to_add_mod_list_r11_present != (csi_rs_cfg_zp_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_zp_to_add_mod_list_r11_present) { j.start_array("csi-RS-ConfigZPToAddModList-r11"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_zp_to_add_mod_list_r11->size(); ++i1) { ((*csi_rs_cfg_zp_to_add_mod_list_r11)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(epdcch_cfg_r11_present != (epdcch_cfg_r11.get() != NULL), __FILE__, __LINE__); if (epdcch_cfg_r11_present) { j.write_fieldname("epdcch-Config-r11"); epdcch_cfg_r11->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1130_present != (pdsch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1130_present) { j.write_fieldname("pdsch-ConfigDedicated-v1130"); pdsch_cfg_ded_v1130->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_v1130_present != (cqi_report_cfg_v1130.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1130_present) { j.write_fieldname("cqi-ReportConfig-v1130"); cqi_report_cfg_v1130->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_ded_v1130_present != (pucch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_ded_v1130_present) { j.write_fieldname("pucch-ConfigDedicated-v1130"); pucch_cfg_ded_v1130->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_v1130_present != (pusch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_v1130_present) { j.write_fieldname("pusch-ConfigDedicated-v1130"); pusch_cfg_ded_v1130->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_ded_v1130_present != (ul_pwr_ctrl_ded_v1130.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_ded_v1130_present) { j.write_fieldname("uplinkPowerControlDedicated-v1130"); ul_pwr_ctrl_ded_v1130->to_json(j); } rrc_asn1_warn_assert(ant_info_v1250_present != (ant_info_v1250.get() != NULL), __FILE__, __LINE__); if (ant_info_v1250_present) { j.write_fieldname("antennaInfo-v1250"); ant_info_v1250->to_json(j); } rrc_asn1_warn_assert(eimta_main_cfg_r12_present != (eimta_main_cfg_r12.get() != NULL), __FILE__, __LINE__); if (eimta_main_cfg_r12_present) { j.write_fieldname("eimta-MainConfig-r12"); eimta_main_cfg_r12->to_json(j); } rrc_asn1_warn_assert(eimta_main_cfg_pcell_r12_present != (eimta_main_cfg_pcell_r12.get() != NULL), __FILE__, __LINE__); if (eimta_main_cfg_pcell_r12_present) { j.write_fieldname("eimta-MainConfigPCell-r12"); eimta_main_cfg_pcell_r12->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_ded_v1250_present != (pucch_cfg_ded_v1250.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_ded_v1250_present) { j.write_fieldname("pucch-ConfigDedicated-v1250"); pucch_cfg_ded_v1250->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_pcell_v1250_present != (cqi_report_cfg_pcell_v1250.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_pcell_v1250_present) { j.write_fieldname("cqi-ReportConfigPCell-v1250"); cqi_report_cfg_pcell_v1250->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_ded_v1250_present != (ul_pwr_ctrl_ded_v1250.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_ded_v1250_present) { j.write_fieldname("uplinkPowerControlDedicated-v1250"); ul_pwr_ctrl_ded_v1250->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_v1250_present != (pusch_cfg_ded_v1250.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_v1250_present) { j.write_fieldname("pusch-ConfigDedicated-v1250"); pusch_cfg_ded_v1250->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_v1250_present != (csi_rs_cfg_v1250.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1250_present) { j.write_fieldname("csi-RS-Config-v1250"); csi_rs_cfg_v1250->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1280_present != (pdsch_cfg_ded_v1280.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1280_present) { j.write_fieldname("pdsch-ConfigDedicated-v1280"); pdsch_cfg_ded_v1280->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1310_present != (pdsch_cfg_ded_v1310.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1310_present) { j.write_fieldname("pdsch-ConfigDedicated-v1310"); pdsch_cfg_ded_v1310->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_ded_r13_present != (pucch_cfg_ded_r13.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_ded_r13_present) { j.write_fieldname("pucch-ConfigDedicated-r13"); pucch_cfg_ded_r13->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_r13_present != (pusch_cfg_ded_r13.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_r13_present) { j.write_fieldname("pusch-ConfigDedicated-r13"); pusch_cfg_ded_r13->to_json(j); } rrc_asn1_warn_assert(pdcch_candidate_reductions_r13_present != (pdcch_candidate_reductions_r13.get() != NULL), __FILE__, __LINE__); if (pdcch_candidate_reductions_r13_present) { j.write_fieldname("pdcch-CandidateReductions-r13"); pdcch_candidate_reductions_r13->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_v1310_present != (cqi_report_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1310_present) { j.write_fieldname("cqi-ReportConfig-v1310"); cqi_report_cfg_v1310->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_v1310_present != (srs_ul_cfg_ded_v1310.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_v1310_present) { j.write_fieldname("soundingRS-UL-ConfigDedicated-v1310"); srs_ul_cfg_ded_v1310->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_up_pts_ext_r13_present != (srs_ul_cfg_ded_up_pts_ext_r13.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_up_pts_ext_r13_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedUpPTsExt-r13"); srs_ul_cfg_ded_up_pts_ext_r13->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_v1310_present != (srs_ul_cfg_ded_aperiodic_v1310.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_aperiodic_v1310_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodic-v1310"); srs_ul_cfg_ded_aperiodic_v1310->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present != (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13"); srs_ul_cfg_ded_aperiodic_up_pts_ext_r13->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_v1310_present != (csi_rs_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1310_present) { j.write_fieldname("csi-RS-Config-v1310"); csi_rs_cfg_v1310->to_json(j); } rrc_asn1_warn_assert(ce_mode_r13_present != (ce_mode_r13.get() != NULL), __FILE__, __LINE__); if (ce_mode_r13_present) { j.write_fieldname("ce-Mode-r13"); ce_mode_r13->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present != (csi_rs_cfg_nzp_to_add_mod_list_ext_r13.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present) { j.start_array("csi-RS-ConfigNZPToAddModListExt-r13"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_to_add_mod_list_ext_r13->size(); ++i1) { ((*csi_rs_cfg_nzp_to_add_mod_list_ext_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_release_list_ext_r13_present != (csi_rs_cfg_nzp_to_release_list_ext_r13.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_nzp_to_release_list_ext_r13_present) { j.start_array("csi-RS-ConfigNZPToReleaseListExt-r13"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_to_release_list_ext_r13->size(); ++i1) { j.write_int(((*csi_rs_cfg_nzp_to_release_list_ext_r13)[i1])); } j.end_array(); } rrc_asn1_warn_assert(cqi_report_cfg_v1320_present != (cqi_report_cfg_v1320.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1320_present) { j.write_fieldname("cqi-ReportConfig-v1320"); cqi_report_cfg_v1320->to_json(j); } rrc_asn1_warn_assert(type_a_srs_tpc_pdcch_group_r14_present != (type_a_srs_tpc_pdcch_group_r14.get() != NULL), __FILE__, __LINE__); if (type_a_srs_tpc_pdcch_group_r14_present) { j.write_fieldname("typeA-SRS-TPC-PDCCH-Group-r14"); type_a_srs_tpc_pdcch_group_r14->to_json(j); } rrc_asn1_warn_assert(must_cfg_r14_present != (must_cfg_r14.get() != NULL), __FILE__, __LINE__); if (must_cfg_r14_present) { j.write_fieldname("must-Config-r14"); must_cfg_r14->to_json(j); } rrc_asn1_warn_assert(pusch_enhance_cfg_r14_present != (pusch_enhance_cfg_r14.get() != NULL), __FILE__, __LINE__); if (pusch_enhance_cfg_r14_present) { j.write_fieldname("pusch-EnhancementsConfig-r14"); pusch_enhance_cfg_r14->to_json(j); } if (ce_pdsch_pusch_enhancement_cfg_r14_present) { j.write_str("ce-pdsch-pusch-EnhancementConfig-r14", "on"); } rrc_asn1_warn_assert(ant_info_v1430_present != (ant_info_v1430.get() != NULL), __FILE__, __LINE__); if (ant_info_v1430_present) { j.write_fieldname("antennaInfo-v1430"); ant_info_v1430->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_ded_v1430_present != (pucch_cfg_ded_v1430.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_ded_v1430_present) { j.write_fieldname("pucch-ConfigDedicated-v1430"); pucch_cfg_ded_v1430->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1430_present != (pdsch_cfg_ded_v1430.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1430_present) { j.write_fieldname("pdsch-ConfigDedicated-v1430"); pdsch_cfg_ded_v1430->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_v1430_present != (pusch_cfg_ded_v1430.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_v1430_present) { j.write_fieldname("pusch-ConfigDedicated-v1430"); pusch_cfg_ded_v1430->to_json(j); } rrc_asn1_warn_assert(srs_ul_periodic_cfg_ded_list_r14_present != (srs_ul_periodic_cfg_ded_list_r14.get() != NULL), __FILE__, __LINE__); if (srs_ul_periodic_cfg_ded_list_r14_present) { j.start_array("soundingRS-UL-PeriodicConfigDedicatedList-r14"); for (uint32_t i1 = 0; i1 < srs_ul_periodic_cfg_ded_list_r14->size(); ++i1) { ((*srs_ul_periodic_cfg_ded_list_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present != (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14.get() != NULL), __FILE__, __LINE__); if (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present) { j.start_array("soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14"); for (uint32_t i1 = 0; i1 < srs_ul_periodic_cfg_ded_up_pts_ext_list_r14->size(); ++i1) { ((*srs_ul_periodic_cfg_ded_up_pts_ext_list_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(srs_ul_aperiodic_cfg_ded_list_r14_present != (srs_ul_aperiodic_cfg_ded_list_r14.get() != NULL), __FILE__, __LINE__); if (srs_ul_aperiodic_cfg_ded_list_r14_present) { j.start_array("soundingRS-UL-AperiodicConfigDedicatedList-r14"); for (uint32_t i1 = 0; i1 < srs_ul_aperiodic_cfg_ded_list_r14->size(); ++i1) { ((*srs_ul_aperiodic_cfg_ded_list_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present != (srs_ul_cfg_ded_ap_up_pts_ext_list_r14.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present) { j.start_array("soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14"); for (uint32_t i1 = 0; i1 < srs_ul_cfg_ded_ap_up_pts_ext_list_r14->size(); ++i1) { ((*srs_ul_cfg_ded_ap_up_pts_ext_list_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_v1430_present != (csi_rs_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1430_present) { j.write_fieldname("csi-RS-Config-v1430"); csi_rs_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_zp_ap_list_r14_present != (csi_rs_cfg_zp_ap_list_r14.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_zp_ap_list_r14_present) { j.write_fieldname("csi-RS-ConfigZP-ApList-r14"); csi_rs_cfg_zp_ap_list_r14->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_v1430_present != (cqi_report_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1430_present) { j.write_fieldname("cqi-ReportConfig-v1430"); cqi_report_cfg_v1430->to_json(j); } if (semi_open_loop_r14_present) { j.write_bool("semiOpenLoop-r14", semi_open_loop_r14); } rrc_asn1_warn_assert(csi_rs_cfg_v1480_present != (csi_rs_cfg_v1480.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1480_present) { j.write_fieldname("csi-RS-Config-v1480"); csi_rs_cfg_v1480->to_json(j); } rrc_asn1_warn_assert(phys_cfg_ded_stti_r15_present != (phys_cfg_ded_stti_r15.get() != NULL), __FILE__, __LINE__); if (phys_cfg_ded_stti_r15_present) { j.write_fieldname("physicalConfigDedicatedSTTI-r15"); phys_cfg_ded_stti_r15->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1530_present != (pdsch_cfg_ded_v1530.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1530_present) { j.write_fieldname("pdsch-ConfigDedicated-v1530"); pdsch_cfg_ded_v1530->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_v1530_present != (pusch_cfg_ded_v1530.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_v1530_present) { j.write_fieldname("pusch-ConfigDedicated-v1530"); pusch_cfg_ded_v1530->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_v1530_present != (cqi_report_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1530_present) { j.write_fieldname("cqi-ReportConfig-v1530"); cqi_report_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(ant_info_v1530_present != (ant_info_v1530.get() != NULL), __FILE__, __LINE__); if (ant_info_v1530_present) { j.write_fieldname("antennaInfo-v1530"); ant_info_v1530->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_v1530_present != (csi_rs_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1530_present) { j.write_fieldname("csi-RS-Config-v1530"); csi_rs_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_ded_v1530_present != (ul_pwr_ctrl_ded_v1530.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_ded_v1530_present) { j.write_fieldname("uplinkPowerControlDedicated-v1530"); ul_pwr_ctrl_ded_v1530->to_json(j); } rrc_asn1_warn_assert(semi_static_cfi_cfg_r15_present != (semi_static_cfi_cfg_r15.get() != NULL), __FILE__, __LINE__); if (semi_static_cfi_cfg_r15_present) { j.write_fieldname("semiStaticCFI-Config-r15"); semi_static_cfi_cfg_r15->to_json(j); } rrc_asn1_warn_assert(blind_pdsch_repeat_cfg_r15_present != (blind_pdsch_repeat_cfg_r15.get() != NULL), __FILE__, __LINE__); if (blind_pdsch_repeat_cfg_r15_present) { j.write_fieldname("blindPDSCH-Repetition-Config-r15"); blind_pdsch_repeat_cfg_r15->to_json(j); } } j.end_obj(); } void phys_cfg_ded_s::ant_info_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_s::ant_info_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::explicit_value: j.write_fieldname("explicitValue"); c.to_json(j); break; case types::default_value: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ant_info_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::ant_info_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::explicit_value: HANDLE_CODE(c.pack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ant_info_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::ant_info_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::explicit_value: HANDLE_CODE(c.unpack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ant_info_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_s::ant_info_r10_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_s::ant_info_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::explicit_value_r10: j.write_fieldname("explicitValue-r10"); c.to_json(j); break; case types::default_value: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ant_info_r10_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::ant_info_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::explicit_value_r10: HANDLE_CODE(c.pack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ant_info_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::ant_info_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::explicit_value_r10: HANDLE_CODE(c.unpack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ant_info_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_s::add_spec_emission_ca_r10_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_s::add_spec_emission_ca_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("additionalSpectrumEmissionPCell-r10", c.add_spec_emission_pcell_r10); j.end_obj(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::add_spec_emission_ca_r10_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::add_spec_emission_ca_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.add_spec_emission_pcell_r10, (uint8_t)1, (uint8_t)32)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::add_spec_emission_ca_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::add_spec_emission_ca_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.add_spec_emission_pcell_r10, bref, (uint8_t)1, (uint8_t)32)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::add_spec_emission_ca_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_s::ce_mode_r13_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_s::ce_mode_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ce_mode_r13_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::ce_mode_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ce_mode_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::ce_mode_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::ce_mode_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { c[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 32)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 32)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_s::must_cfg_r14_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_s::must_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("k-max-r14", c.k_max_r14.to_string()); if (c.p_a_must_r14_present) { j.write_str("p-a-must-r14", c.p_a_must_r14.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::must_cfg_r14_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::must_cfg_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.p_a_must_r14_present, 1)); HANDLE_CODE(pack_enum(bref, c.k_max_r14)); if (c.p_a_must_r14_present) { HANDLE_CODE(pack_enum(bref, c.p_a_must_r14)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::must_cfg_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::must_cfg_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.p_a_must_r14_present, 1)); HANDLE_CODE(unpack_enum(c.k_max_r14, bref)); if (c.p_a_must_r14_present) { HANDLE_CODE(unpack_enum(c.p_a_must_r14, bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::must_cfg_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::destroy_() { switch (type_) { case types::cfi_cfg_r15: c.destroy(); break; case types::cfi_pattern_cfg_r15: c.destroy(); break; default: break; } } void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cfi_cfg_r15: c.init(); break; case types::cfi_pattern_cfg_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_"); } } phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::setup_c_( const phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::cfi_cfg_r15: c.init(other.c.get()); break; case types::cfi_pattern_cfg_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_"); } } phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_& phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_:: operator=(const phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cfi_cfg_r15: c.set(other.c.get()); break; case types::cfi_pattern_cfg_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_"); } return *this; } void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cfi_cfg_r15: j.write_fieldname("cfi-Config-r15"); c.get().to_json(j); break; case types::cfi_pattern_cfg_r15: j.write_fieldname("cfi-PatternConfig-r15"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cfi_cfg_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::cfi_pattern_cfg_r15: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cfi_cfg_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::cfi_pattern_cfg_r15: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_bool("blindSubframePDSCH-Repetitions-r15", c.blind_sf_pdsch_repeats_r15); j.write_bool("blindSlotSubslotPDSCH-Repetitions-r15", c.blind_slot_subslot_pdsch_repeats_r15); if (c.max_num_sf_pdsch_repeats_r15_present) { j.write_str("maxNumber-SubframePDSCH-Repetitions-r15", c.max_num_sf_pdsch_repeats_r15.to_string()); } if (c.max_num_slot_subslot_pdsch_repeats_r15_present) { j.write_str("maxNumber-SlotSubslotPDSCH-Repetitions-r15", c.max_num_slot_subslot_pdsch_repeats_r15.to_string()); } if (c.rv_sf_pdsch_repeats_r15_present) { j.write_str("rv-SubframePDSCH-Repetitions-r15", c.rv_sf_pdsch_repeats_r15.to_string()); } if (c.rv_slotsublot_pdsch_repeats_r15_present) { j.write_str("rv-SlotsublotPDSCH-Repetitions-r15", c.rv_slotsublot_pdsch_repeats_r15.to_string()); } if (c.nof_processes_sf_pdsch_repeats_r15_present) { j.write_int("numberOfProcesses-SubframePDSCH-Repetitions-r15", c.nof_processes_sf_pdsch_repeats_r15); } if (c.nof_processes_slot_subslot_pdsch_repeats_r15_present) { j.write_int("numberOfProcesses-SlotSubslotPDSCH-Repetitions-r15", c.nof_processes_slot_subslot_pdsch_repeats_r15); } if (c.mcs_restrict_sf_pdsch_repeats_r15_present) { j.write_str("mcs-restrictionSubframePDSCH-Repetitions-r15", c.mcs_restrict_sf_pdsch_repeats_r15.to_string()); } if (c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present) { j.write_str("mcs-restrictionSlotSubslotPDSCH-Repetitions-r15", c.mcs_restrict_slot_subslot_pdsch_repeats_r15.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.max_num_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.max_num_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.rv_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.rv_slotsublot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.nof_processes_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.nof_processes_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.mcs_restrict_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.blind_sf_pdsch_repeats_r15, 1)); HANDLE_CODE(bref.pack(c.blind_slot_subslot_pdsch_repeats_r15, 1)); if (c.max_num_sf_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.max_num_sf_pdsch_repeats_r15)); } if (c.max_num_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.max_num_slot_subslot_pdsch_repeats_r15)); } if (c.rv_sf_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.rv_sf_pdsch_repeats_r15)); } if (c.rv_slotsublot_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.rv_slotsublot_pdsch_repeats_r15)); } if (c.nof_processes_sf_pdsch_repeats_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.nof_processes_sf_pdsch_repeats_r15, (uint8_t)1, (uint8_t)16)); } if (c.nof_processes_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, c.nof_processes_slot_subslot_pdsch_repeats_r15, (uint8_t)1, (uint8_t)16)); } if (c.mcs_restrict_sf_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.mcs_restrict_sf_pdsch_repeats_r15)); } if (c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.mcs_restrict_slot_subslot_pdsch_repeats_r15)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.max_num_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.max_num_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.rv_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.rv_slotsublot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.nof_processes_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.nof_processes_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.mcs_restrict_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.blind_sf_pdsch_repeats_r15, 1)); HANDLE_CODE(bref.unpack(c.blind_slot_subslot_pdsch_repeats_r15, 1)); if (c.max_num_sf_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.max_num_sf_pdsch_repeats_r15, bref)); } if (c.max_num_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.max_num_slot_subslot_pdsch_repeats_r15, bref)); } if (c.rv_sf_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.rv_sf_pdsch_repeats_r15, bref)); } if (c.rv_slotsublot_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.rv_slotsublot_pdsch_repeats_r15, bref)); } if (c.nof_processes_sf_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.nof_processes_sf_pdsch_repeats_r15, bref, (uint8_t)1, (uint8_t)16)); } if (c.nof_processes_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE( unpack_unalign_integer(c.nof_processes_slot_subslot_pdsch_repeats_r15, bref, (uint8_t)1, (uint8_t)16)); } if (c.mcs_restrict_sf_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.mcs_restrict_sf_pdsch_repeats_r15, bref)); } if (c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.mcs_restrict_slot_subslot_pdsch_repeats_r15, bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RLF-TimersAndConstants-r13 ::= CHOICE void rlf_timers_and_consts_r13_c::set(types::options e) { type_ = e; } void rlf_timers_and_consts_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_r13_c"); } j.end_obj(); } SRSASN_CODE rlf_timers_and_consts_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlf_timers_and_consts_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlf_timers_and_consts_r13_c::setup_s_::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, t301_v1310)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= t310_v1330_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(t310_v1330_present, 1)); if (t310_v1330_present) { HANDLE_CODE(pack_enum(bref, t310_v1330)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rlf_timers_and_consts_r13_c::setup_s_::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(t301_v1310, bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(t310_v1330_present, 1)); if (t310_v1330_present) { HANDLE_CODE(unpack_enum(t310_v1330, bref)); } } } return SRSASN_SUCCESS; } void rlf_timers_and_consts_r13_c::setup_s_::to_json(json_writer& j) const { j.start_obj(); j.write_str("t301-v1310", t301_v1310.to_string()); if (ext) { if (t310_v1330_present) { j.write_str("t310-v1330", t310_v1330.to_string()); } } j.end_obj(); } // RLF-TimersAndConstants-r9 ::= CHOICE void rlf_timers_and_consts_r9_c::set(types::options e) { type_ = e; } void rlf_timers_and_consts_r9_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("t301-r9", c.t301_r9.to_string()); j.write_str("t310-r9", c.t310_r9.to_string()); j.write_str("n310-r9", c.n310_r9.to_string()); j.write_str("t311-r9", c.t311_r9.to_string()); j.write_str("n311-r9", c.n311_r9.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_r9_c"); } j.end_obj(); } SRSASN_CODE rlf_timers_and_consts_r9_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(pack_enum(bref, c.t301_r9)); HANDLE_CODE(pack_enum(bref, c.t310_r9)); HANDLE_CODE(pack_enum(bref, c.n310_r9)); HANDLE_CODE(pack_enum(bref, c.t311_r9)); HANDLE_CODE(pack_enum(bref, c.n311_r9)); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_r9_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlf_timers_and_consts_r9_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(unpack_enum(c.t301_r9, bref)); HANDLE_CODE(unpack_enum(c.t310_r9, bref)); HANDLE_CODE(unpack_enum(c.n310_r9, bref)); HANDLE_CODE(unpack_enum(c.t311_r9, bref)); HANDLE_CODE(unpack_enum(c.n311_r9, bref)); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_r9_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReject-v1020-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reject_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(extended_wait_time_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (extended_wait_time_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, extended_wait_time_r10, (uint16_t)1, (uint16_t)1800)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reject_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(extended_wait_time_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (extended_wait_time_r10_present) { HANDLE_CODE(unpack_unalign_integer(extended_wait_time_r10, bref, (uint16_t)1, (uint16_t)1800)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reject_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (extended_wait_time_r10_present) { j.write_int("extendedWaitTime-r10", extended_wait_time_r10); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SPS-Config ::= SEQUENCE SRSASN_CODE sps_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(semi_persist_sched_c_rnti_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_dl_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_ul_present, 1)); if (semi_persist_sched_c_rnti_present) { HANDLE_CODE(semi_persist_sched_c_rnti.pack(bref)); } if (sps_cfg_dl_present) { HANDLE_CODE(sps_cfg_dl.pack(bref)); } if (sps_cfg_ul_present) { HANDLE_CODE(sps_cfg_ul.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(semi_persist_sched_c_rnti_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_dl_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_ul_present, 1)); if (semi_persist_sched_c_rnti_present) { HANDLE_CODE(semi_persist_sched_c_rnti.unpack(bref)); } if (sps_cfg_dl_present) { HANDLE_CODE(sps_cfg_dl.unpack(bref)); } if (sps_cfg_ul_present) { HANDLE_CODE(sps_cfg_ul.unpack(bref)); } return SRSASN_SUCCESS; } void sps_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (semi_persist_sched_c_rnti_present) { j.write_str("semiPersistSchedC-RNTI", semi_persist_sched_c_rnti.to_string()); } if (sps_cfg_dl_present) { j.write_fieldname("sps-ConfigDL"); sps_cfg_dl.to_json(j); } if (sps_cfg_ul_present) { j.write_fieldname("sps-ConfigUL"); sps_cfg_ul.to_json(j); } j.end_obj(); } // SPS-Config-v1430 ::= SEQUENCE SRSASN_CODE sps_cfg_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_sps_v_rnti_r14_present, 1)); HANDLE_CODE(bref.pack(sl_sps_v_rnti_r14_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_ul_to_add_mod_list_r14_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_ul_to_release_list_r14_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_sl_to_add_mod_list_r14_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_sl_to_release_list_r14_present, 1)); if (ul_sps_v_rnti_r14_present) { HANDLE_CODE(ul_sps_v_rnti_r14.pack(bref)); } if (sl_sps_v_rnti_r14_present) { HANDLE_CODE(sl_sps_v_rnti_r14.pack(bref)); } if (sps_cfg_ul_to_add_mod_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_cfg_ul_to_add_mod_list_r14, 1, 8)); } if (sps_cfg_ul_to_release_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_cfg_ul_to_release_list_r14, 1, 8, UnalignedIntegerPacker(1, 8))); } if (sps_cfg_sl_to_add_mod_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_cfg_sl_to_add_mod_list_r14, 1, 8)); } if (sps_cfg_sl_to_release_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_cfg_sl_to_release_list_r14, 1, 8, UnalignedIntegerPacker(1, 8))); } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_sps_v_rnti_r14_present, 1)); HANDLE_CODE(bref.unpack(sl_sps_v_rnti_r14_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_ul_to_add_mod_list_r14_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_ul_to_release_list_r14_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_sl_to_add_mod_list_r14_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_sl_to_release_list_r14_present, 1)); if (ul_sps_v_rnti_r14_present) { HANDLE_CODE(ul_sps_v_rnti_r14.unpack(bref)); } if (sl_sps_v_rnti_r14_present) { HANDLE_CODE(sl_sps_v_rnti_r14.unpack(bref)); } if (sps_cfg_ul_to_add_mod_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_cfg_ul_to_add_mod_list_r14, bref, 1, 8)); } if (sps_cfg_ul_to_release_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_cfg_ul_to_release_list_r14, bref, 1, 8, UnalignedIntegerPacker(1, 8))); } if (sps_cfg_sl_to_add_mod_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_cfg_sl_to_add_mod_list_r14, bref, 1, 8)); } if (sps_cfg_sl_to_release_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_cfg_sl_to_release_list_r14, bref, 1, 8, UnalignedIntegerPacker(1, 8))); } return SRSASN_SUCCESS; } void sps_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (ul_sps_v_rnti_r14_present) { j.write_str("ul-SPS-V-RNTI-r14", ul_sps_v_rnti_r14.to_string()); } if (sl_sps_v_rnti_r14_present) { j.write_str("sl-SPS-V-RNTI-r14", sl_sps_v_rnti_r14.to_string()); } if (sps_cfg_ul_to_add_mod_list_r14_present) { j.start_array("sps-ConfigUL-ToAddModList-r14"); for (uint32_t i1 = 0; i1 < sps_cfg_ul_to_add_mod_list_r14.size(); ++i1) { sps_cfg_ul_to_add_mod_list_r14[i1].to_json(j); } j.end_array(); } if (sps_cfg_ul_to_release_list_r14_present) { j.start_array("sps-ConfigUL-ToReleaseList-r14"); for (uint32_t i1 = 0; i1 < sps_cfg_ul_to_release_list_r14.size(); ++i1) { j.write_int(sps_cfg_ul_to_release_list_r14[i1]); } j.end_array(); } if (sps_cfg_sl_to_add_mod_list_r14_present) { j.start_array("sps-ConfigSL-ToAddModList-r14"); for (uint32_t i1 = 0; i1 < sps_cfg_sl_to_add_mod_list_r14.size(); ++i1) { sps_cfg_sl_to_add_mod_list_r14[i1].to_json(j); } j.end_array(); } if (sps_cfg_sl_to_release_list_r14_present) { j.start_array("sps-ConfigSL-ToReleaseList-r14"); for (uint32_t i1 = 0; i1 < sps_cfg_sl_to_release_list_r14.size(); ++i1) { j.write_int(sps_cfg_sl_to_release_list_r14[i1]); } j.end_array(); } j.end_obj(); } // SPS-Config-v1530 ::= SEQUENCE SRSASN_CODE sps_cfg_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(semi_persist_sched_c_rnti_r15_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_dl_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_ul_stti_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_ul_stti_to_release_list_r15_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_ul_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_ul_to_release_list_r15_present, 1)); if (semi_persist_sched_c_rnti_r15_present) { HANDLE_CODE(semi_persist_sched_c_rnti_r15.pack(bref)); } if (sps_cfg_dl_present) { HANDLE_CODE(sps_cfg_dl.pack(bref)); } if (sps_cfg_ul_stti_to_add_mod_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_cfg_ul_stti_to_add_mod_list_r15, 1, 6)); } if (sps_cfg_ul_stti_to_release_list_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, sps_cfg_ul_stti_to_release_list_r15, 1, 6, UnalignedIntegerPacker(1, 6))); } if (sps_cfg_ul_to_add_mod_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_cfg_ul_to_add_mod_list_r15, 1, 6)); } if (sps_cfg_ul_to_release_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_cfg_ul_to_release_list_r15, 1, 6, UnalignedIntegerPacker(1, 6))); } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(semi_persist_sched_c_rnti_r15_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_dl_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_ul_stti_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_ul_stti_to_release_list_r15_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_ul_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_ul_to_release_list_r15_present, 1)); if (semi_persist_sched_c_rnti_r15_present) { HANDLE_CODE(semi_persist_sched_c_rnti_r15.unpack(bref)); } if (sps_cfg_dl_present) { HANDLE_CODE(sps_cfg_dl.unpack(bref)); } if (sps_cfg_ul_stti_to_add_mod_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_cfg_ul_stti_to_add_mod_list_r15, bref, 1, 6)); } if (sps_cfg_ul_stti_to_release_list_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(sps_cfg_ul_stti_to_release_list_r15, bref, 1, 6, UnalignedIntegerPacker(1, 6))); } if (sps_cfg_ul_to_add_mod_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_cfg_ul_to_add_mod_list_r15, bref, 1, 6)); } if (sps_cfg_ul_to_release_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_cfg_ul_to_release_list_r15, bref, 1, 6, UnalignedIntegerPacker(1, 6))); } return SRSASN_SUCCESS; } void sps_cfg_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (semi_persist_sched_c_rnti_r15_present) { j.write_str("semiPersistSchedC-RNTI-r15", semi_persist_sched_c_rnti_r15.to_string()); } if (sps_cfg_dl_present) { j.write_fieldname("sps-ConfigDL"); sps_cfg_dl.to_json(j); } if (sps_cfg_ul_stti_to_add_mod_list_r15_present) { j.start_array("sps-ConfigUL-STTI-ToAddModList-r15"); for (uint32_t i1 = 0; i1 < sps_cfg_ul_stti_to_add_mod_list_r15.size(); ++i1) { sps_cfg_ul_stti_to_add_mod_list_r15[i1].to_json(j); } j.end_array(); } if (sps_cfg_ul_stti_to_release_list_r15_present) { j.start_array("sps-ConfigUL-STTI-ToReleaseList-r15"); for (uint32_t i1 = 0; i1 < sps_cfg_ul_stti_to_release_list_r15.size(); ++i1) { j.write_int(sps_cfg_ul_stti_to_release_list_r15[i1]); } j.end_array(); } if (sps_cfg_ul_to_add_mod_list_r15_present) { j.start_array("sps-ConfigUL-ToAddModList-r15"); for (uint32_t i1 = 0; i1 < sps_cfg_ul_to_add_mod_list_r15.size(); ++i1) { sps_cfg_ul_to_add_mod_list_r15[i1].to_json(j); } j.end_array(); } if (sps_cfg_ul_to_release_list_r15_present) { j.start_array("sps-ConfigUL-ToReleaseList-r15"); for (uint32_t i1 = 0; i1 < sps_cfg_ul_to_release_list_r15.size(); ++i1) { j.write_int(sps_cfg_ul_to_release_list_r15[i1]); } j.end_array(); } j.end_obj(); } // IdleModeMobilityControlInfo ::= SEQUENCE SRSASN_CODE idle_mode_mob_ctrl_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(freq_prio_list_eutra_present, 1)); HANDLE_CODE(bref.pack(freq_prio_list_geran_present, 1)); HANDLE_CODE(bref.pack(freq_prio_list_utra_fdd_present, 1)); HANDLE_CODE(bref.pack(freq_prio_list_utra_tdd_present, 1)); HANDLE_CODE(bref.pack(band_class_prio_list_hrpd_present, 1)); HANDLE_CODE(bref.pack(band_class_prio_list1_xrtt_present, 1)); HANDLE_CODE(bref.pack(t320_present, 1)); if (freq_prio_list_eutra_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_prio_list_eutra, 1, 8)); } if (freq_prio_list_geran_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_prio_list_geran, 1, 16)); } if (freq_prio_list_utra_fdd_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_prio_list_utra_fdd, 1, 16)); } if (freq_prio_list_utra_tdd_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_prio_list_utra_tdd, 1, 16)); } if (band_class_prio_list_hrpd_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_class_prio_list_hrpd, 1, 32)); } if (band_class_prio_list1_xrtt_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_class_prio_list1_xrtt, 1, 32)); } if (t320_present) { HANDLE_CODE(pack_enum(bref, t320)); } if (ext) { ext_groups_header group_flags(3); rrc_asn1_warn_assert(freq_prio_list_ext_eutra_r12_present != (freq_prio_list_ext_eutra_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= freq_prio_list_ext_eutra_r12_present; rrc_asn1_warn_assert(freq_prio_list_eutra_v1310_present != (freq_prio_list_eutra_v1310.get() != NULL), __FILE__, __LINE__); group_flags[1] |= freq_prio_list_eutra_v1310_present; rrc_asn1_warn_assert(freq_prio_list_ext_eutra_v1310_present != (freq_prio_list_ext_eutra_v1310.get() != NULL), __FILE__, __LINE__); group_flags[1] |= freq_prio_list_ext_eutra_v1310_present; rrc_asn1_warn_assert(freq_prio_list_nr_r15_present != (freq_prio_list_nr_r15.get() != NULL), __FILE__, __LINE__); group_flags[2] |= freq_prio_list_nr_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(freq_prio_list_ext_eutra_r12_present, 1)); if (freq_prio_list_ext_eutra_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *freq_prio_list_ext_eutra_r12, 1, 8)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(freq_prio_list_eutra_v1310_present, 1)); HANDLE_CODE(bref.pack(freq_prio_list_ext_eutra_v1310_present, 1)); if (freq_prio_list_eutra_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *freq_prio_list_eutra_v1310, 1, 8)); } if (freq_prio_list_ext_eutra_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *freq_prio_list_ext_eutra_v1310, 1, 8)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(freq_prio_list_nr_r15_present, 1)); if (freq_prio_list_nr_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *freq_prio_list_nr_r15, 1, 8)); } } } return SRSASN_SUCCESS; } SRSASN_CODE idle_mode_mob_ctrl_info_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(freq_prio_list_eutra_present, 1)); HANDLE_CODE(bref.unpack(freq_prio_list_geran_present, 1)); HANDLE_CODE(bref.unpack(freq_prio_list_utra_fdd_present, 1)); HANDLE_CODE(bref.unpack(freq_prio_list_utra_tdd_present, 1)); HANDLE_CODE(bref.unpack(band_class_prio_list_hrpd_present, 1)); HANDLE_CODE(bref.unpack(band_class_prio_list1_xrtt_present, 1)); HANDLE_CODE(bref.unpack(t320_present, 1)); if (freq_prio_list_eutra_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_prio_list_eutra, bref, 1, 8)); } if (freq_prio_list_geran_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_prio_list_geran, bref, 1, 16)); } if (freq_prio_list_utra_fdd_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_prio_list_utra_fdd, bref, 1, 16)); } if (freq_prio_list_utra_tdd_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_prio_list_utra_tdd, bref, 1, 16)); } if (band_class_prio_list_hrpd_present) { HANDLE_CODE(unpack_dyn_seq_of(band_class_prio_list_hrpd, bref, 1, 32)); } if (band_class_prio_list1_xrtt_present) { HANDLE_CODE(unpack_dyn_seq_of(band_class_prio_list1_xrtt, bref, 1, 32)); } if (t320_present) { HANDLE_CODE(unpack_enum(t320, bref)); } if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(freq_prio_list_ext_eutra_r12_present, 1)); if (freq_prio_list_ext_eutra_r12_present) { freq_prio_list_ext_eutra_r12 = make_copy_ptr(freq_prio_list_ext_eutra_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*freq_prio_list_ext_eutra_r12, bref, 1, 8)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(freq_prio_list_eutra_v1310_present, 1)); HANDLE_CODE(bref.unpack(freq_prio_list_ext_eutra_v1310_present, 1)); if (freq_prio_list_eutra_v1310_present) { freq_prio_list_eutra_v1310 = make_copy_ptr(freq_prio_list_eutra_v1310_l()); HANDLE_CODE(unpack_dyn_seq_of(*freq_prio_list_eutra_v1310, bref, 1, 8)); } if (freq_prio_list_ext_eutra_v1310_present) { freq_prio_list_ext_eutra_v1310 = make_copy_ptr(freq_prio_list_ext_eutra_v1310_l()); HANDLE_CODE(unpack_dyn_seq_of(*freq_prio_list_ext_eutra_v1310, bref, 1, 8)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(freq_prio_list_nr_r15_present, 1)); if (freq_prio_list_nr_r15_present) { freq_prio_list_nr_r15 = make_copy_ptr(freq_prio_list_nr_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*freq_prio_list_nr_r15, bref, 1, 8)); } } } return SRSASN_SUCCESS; } void idle_mode_mob_ctrl_info_s::to_json(json_writer& j) const { j.start_obj(); if (freq_prio_list_eutra_present) { j.start_array("freqPriorityListEUTRA"); for (uint32_t i1 = 0; i1 < freq_prio_list_eutra.size(); ++i1) { freq_prio_list_eutra[i1].to_json(j); } j.end_array(); } if (freq_prio_list_geran_present) { j.start_array("freqPriorityListGERAN"); for (uint32_t i1 = 0; i1 < freq_prio_list_geran.size(); ++i1) { freq_prio_list_geran[i1].to_json(j); } j.end_array(); } if (freq_prio_list_utra_fdd_present) { j.start_array("freqPriorityListUTRA-FDD"); for (uint32_t i1 = 0; i1 < freq_prio_list_utra_fdd.size(); ++i1) { freq_prio_list_utra_fdd[i1].to_json(j); } j.end_array(); } if (freq_prio_list_utra_tdd_present) { j.start_array("freqPriorityListUTRA-TDD"); for (uint32_t i1 = 0; i1 < freq_prio_list_utra_tdd.size(); ++i1) { freq_prio_list_utra_tdd[i1].to_json(j); } j.end_array(); } if (band_class_prio_list_hrpd_present) { j.start_array("bandClassPriorityListHRPD"); for (uint32_t i1 = 0; i1 < band_class_prio_list_hrpd.size(); ++i1) { band_class_prio_list_hrpd[i1].to_json(j); } j.end_array(); } if (band_class_prio_list1_xrtt_present) { j.start_array("bandClassPriorityList1XRTT"); for (uint32_t i1 = 0; i1 < band_class_prio_list1_xrtt.size(); ++i1) { band_class_prio_list1_xrtt[i1].to_json(j); } j.end_array(); } if (t320_present) { j.write_str("t320", t320.to_string()); } if (ext) { rrc_asn1_warn_assert(freq_prio_list_ext_eutra_r12_present != (freq_prio_list_ext_eutra_r12.get() != NULL), __FILE__, __LINE__); if (freq_prio_list_ext_eutra_r12_present) { j.start_array("freqPriorityListExtEUTRA-r12"); for (uint32_t i1 = 0; i1 < freq_prio_list_ext_eutra_r12->size(); ++i1) { ((*freq_prio_list_ext_eutra_r12)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(freq_prio_list_eutra_v1310_present != (freq_prio_list_eutra_v1310.get() != NULL), __FILE__, __LINE__); if (freq_prio_list_eutra_v1310_present) { j.start_array("freqPriorityListEUTRA-v1310"); for (uint32_t i1 = 0; i1 < freq_prio_list_eutra_v1310->size(); ++i1) { ((*freq_prio_list_eutra_v1310)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(freq_prio_list_ext_eutra_v1310_present != (freq_prio_list_ext_eutra_v1310.get() != NULL), __FILE__, __LINE__); if (freq_prio_list_ext_eutra_v1310_present) { j.start_array("freqPriorityListExtEUTRA-v1310"); for (uint32_t i1 = 0; i1 < freq_prio_list_ext_eutra_v1310->size(); ++i1) { ((*freq_prio_list_ext_eutra_v1310)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(freq_prio_list_nr_r15_present != (freq_prio_list_nr_r15.get() != NULL), __FILE__, __LINE__); if (freq_prio_list_nr_r15_present) { j.start_array("freqPriorityListNR-r15"); for (uint32_t i1 = 0; i1 < freq_prio_list_nr_r15->size(); ++i1) { ((*freq_prio_list_nr_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE SRSASN_CODE idle_mode_mob_ctrl_info_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, freq_prio_list_eutra_v9e0, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE idle_mode_mob_ctrl_info_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(freq_prio_list_eutra_v9e0, bref, 1, 8)); return SRSASN_SUCCESS; } void idle_mode_mob_ctrl_info_v9e0_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("freqPriorityListEUTRA-v9e0"); for (uint32_t i1 = 0; i1 < freq_prio_list_eutra_v9e0.size(); ++i1) { freq_prio_list_eutra_v9e0[i1].to_json(j); } j.end_array(); j.end_obj(); } // RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_reject_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_reject_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_reject_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReject-v8a0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reject_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reject_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reject_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionSetup-v8a0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RadioResourceConfigDedicated ::= SEQUENCE SRSASN_CODE rr_cfg_ded_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(srb_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(drb_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(drb_to_release_list_present, 1)); HANDLE_CODE(bref.pack(mac_main_cfg_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_present, 1)); HANDLE_CODE(bref.pack(phys_cfg_ded_present, 1)); if (srb_to_add_mod_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, srb_to_add_mod_list, 1, 2)); } if (drb_to_add_mod_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_add_mod_list, 1, 11)); } if (drb_to_release_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_release_list, 1, 11, UnalignedIntegerPacker(1, 32))); } if (mac_main_cfg_present) { HANDLE_CODE(mac_main_cfg.pack(bref)); } if (sps_cfg_present) { HANDLE_CODE(sps_cfg.pack(bref)); } if (phys_cfg_ded_present) { HANDLE_CODE(phys_cfg_ded.pack(bref)); } if (ext) { ext_groups_header group_flags(7); rrc_asn1_warn_assert(rlf_timers_and_consts_r9_present != (rlf_timers_and_consts_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= rlf_timers_and_consts_r9_present; rrc_asn1_warn_assert(meas_sf_pattern_pcell_r10_present != (meas_sf_pattern_pcell_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= meas_sf_pattern_pcell_r10_present; rrc_asn1_warn_assert(neigh_cells_crs_info_r11_present != (neigh_cells_crs_info_r11.get() != NULL), __FILE__, __LINE__); group_flags[2] |= neigh_cells_crs_info_r11_present; rrc_asn1_warn_assert(naics_info_r12_present != (naics_info_r12.get() != NULL), __FILE__, __LINE__); group_flags[3] |= naics_info_r12_present; rrc_asn1_warn_assert(neigh_cells_crs_info_r13_present != (neigh_cells_crs_info_r13.get() != NULL), __FILE__, __LINE__); group_flags[4] |= neigh_cells_crs_info_r13_present; rrc_asn1_warn_assert(rlf_timers_and_consts_r13_present != (rlf_timers_and_consts_r13.get() != NULL), __FILE__, __LINE__); group_flags[4] |= rlf_timers_and_consts_r13_present; rrc_asn1_warn_assert(sps_cfg_v1430_present != (sps_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[5] |= sps_cfg_v1430_present; rrc_asn1_warn_assert(srb_to_add_mod_ext_list_r15_present != (srb_to_add_mod_ext_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= srb_to_add_mod_ext_list_r15_present; group_flags[6] |= srb_to_release_ext_list_r15_present; rrc_asn1_warn_assert(sps_cfg_v1530_present != (sps_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[6] |= sps_cfg_v1530_present; rrc_asn1_warn_assert(crs_intf_mitig_cfg_r15_present != (crs_intf_mitig_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= crs_intf_mitig_cfg_r15_present; rrc_asn1_warn_assert(neigh_cells_crs_info_r15_present != (neigh_cells_crs_info_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= neigh_cells_crs_info_r15_present; rrc_asn1_warn_assert(drb_to_add_mod_list_r15_present != (drb_to_add_mod_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= drb_to_add_mod_list_r15_present; rrc_asn1_warn_assert(drb_to_release_list_r15_present != (drb_to_release_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= drb_to_release_list_r15_present; rrc_asn1_warn_assert(srb_to_release_list_dupl_r15_present != (srb_to_release_list_dupl_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= srb_to_release_list_dupl_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rlf_timers_and_consts_r9_present, 1)); if (rlf_timers_and_consts_r9_present) { HANDLE_CODE(rlf_timers_and_consts_r9->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_sf_pattern_pcell_r10_present, 1)); if (meas_sf_pattern_pcell_r10_present) { HANDLE_CODE(meas_sf_pattern_pcell_r10->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(neigh_cells_crs_info_r11_present, 1)); if (neigh_cells_crs_info_r11_present) { HANDLE_CODE(neigh_cells_crs_info_r11->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(naics_info_r12_present, 1)); if (naics_info_r12_present) { HANDLE_CODE(naics_info_r12->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(neigh_cells_crs_info_r13_present, 1)); HANDLE_CODE(bref.pack(rlf_timers_and_consts_r13_present, 1)); if (neigh_cells_crs_info_r13_present) { HANDLE_CODE(neigh_cells_crs_info_r13->pack(bref)); } if (rlf_timers_and_consts_r13_present) { HANDLE_CODE(rlf_timers_and_consts_r13->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sps_cfg_v1430_present, 1)); if (sps_cfg_v1430_present) { HANDLE_CODE(sps_cfg_v1430->pack(bref)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(srb_to_add_mod_ext_list_r15_present, 1)); HANDLE_CODE(bref.pack(srb_to_release_ext_list_r15_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(crs_intf_mitig_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(neigh_cells_crs_info_r15_present, 1)); HANDLE_CODE(bref.pack(drb_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.pack(drb_to_release_list_r15_present, 1)); HANDLE_CODE(bref.pack(srb_to_release_list_dupl_r15_present, 1)); if (srb_to_add_mod_ext_list_r15_present) { HANDLE_CODE(pack_fixed_seq_of(bref, &(*srb_to_add_mod_ext_list_r15)[0], srb_to_add_mod_ext_list_r15->size())); } if (srb_to_release_ext_list_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, srb_to_release_ext_list_r15, (uint8_t)4, (uint8_t)4)); } if (sps_cfg_v1530_present) { HANDLE_CODE(sps_cfg_v1530->pack(bref)); } if (crs_intf_mitig_cfg_r15_present) { HANDLE_CODE(crs_intf_mitig_cfg_r15->pack(bref)); } if (neigh_cells_crs_info_r15_present) { HANDLE_CODE(neigh_cells_crs_info_r15->pack(bref)); } if (drb_to_add_mod_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *drb_to_add_mod_list_r15, 1, 15)); } if (drb_to_release_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *drb_to_release_list_r15, 1, 15, UnalignedIntegerPacker(1, 32))); } if (srb_to_release_list_dupl_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srb_to_release_list_dupl_r15, 1, 2, UnalignedIntegerPacker(1, 2))); } } } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(srb_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(drb_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(drb_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(mac_main_cfg_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_present, 1)); HANDLE_CODE(bref.unpack(phys_cfg_ded_present, 1)); if (srb_to_add_mod_list_present) { HANDLE_CODE(unpack_dyn_seq_of(srb_to_add_mod_list, bref, 1, 2)); } if (drb_to_add_mod_list_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_to_add_mod_list, bref, 1, 11)); } if (drb_to_release_list_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_to_release_list, bref, 1, 11, UnalignedIntegerPacker(1, 32))); } if (mac_main_cfg_present) { HANDLE_CODE(mac_main_cfg.unpack(bref)); } if (sps_cfg_present) { HANDLE_CODE(sps_cfg.unpack(bref)); } if (phys_cfg_ded_present) { HANDLE_CODE(phys_cfg_ded.unpack(bref)); } if (ext) { ext_groups_header group_flags(7); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rlf_timers_and_consts_r9_present, 1)); if (rlf_timers_and_consts_r9_present) { rlf_timers_and_consts_r9 = make_copy_ptr(rlf_timers_and_consts_r9_c()); HANDLE_CODE(rlf_timers_and_consts_r9->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_sf_pattern_pcell_r10_present, 1)); if (meas_sf_pattern_pcell_r10_present) { meas_sf_pattern_pcell_r10 = make_copy_ptr(meas_sf_pattern_pcell_r10_c()); HANDLE_CODE(meas_sf_pattern_pcell_r10->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(neigh_cells_crs_info_r11_present, 1)); if (neigh_cells_crs_info_r11_present) { neigh_cells_crs_info_r11 = make_copy_ptr(neigh_cells_crs_info_r11_c()); HANDLE_CODE(neigh_cells_crs_info_r11->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(naics_info_r12_present, 1)); if (naics_info_r12_present) { naics_info_r12 = make_copy_ptr(naics_assist_info_r12_c()); HANDLE_CODE(naics_info_r12->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(neigh_cells_crs_info_r13_present, 1)); HANDLE_CODE(bref.unpack(rlf_timers_and_consts_r13_present, 1)); if (neigh_cells_crs_info_r13_present) { neigh_cells_crs_info_r13 = make_copy_ptr(neigh_cells_crs_info_r13_c()); HANDLE_CODE(neigh_cells_crs_info_r13->unpack(bref)); } if (rlf_timers_and_consts_r13_present) { rlf_timers_and_consts_r13 = make_copy_ptr(rlf_timers_and_consts_r13_c()); HANDLE_CODE(rlf_timers_and_consts_r13->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sps_cfg_v1430_present, 1)); if (sps_cfg_v1430_present) { sps_cfg_v1430 = make_copy_ptr(sps_cfg_v1430_s()); HANDLE_CODE(sps_cfg_v1430->unpack(bref)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(srb_to_add_mod_ext_list_r15_present, 1)); HANDLE_CODE(bref.unpack(srb_to_release_ext_list_r15_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(crs_intf_mitig_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(neigh_cells_crs_info_r15_present, 1)); HANDLE_CODE(bref.unpack(drb_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.unpack(drb_to_release_list_r15_present, 1)); HANDLE_CODE(bref.unpack(srb_to_release_list_dupl_r15_present, 1)); if (srb_to_add_mod_ext_list_r15_present) { srb_to_add_mod_ext_list_r15 = make_copy_ptr(srb_to_add_mod_ext_list_r15_l()); HANDLE_CODE(unpack_fixed_seq_of(&(*srb_to_add_mod_ext_list_r15)[0], bref, srb_to_add_mod_ext_list_r15->size())); } if (srb_to_release_ext_list_r15_present) { HANDLE_CODE(unpack_unalign_integer(srb_to_release_ext_list_r15, bref, (uint8_t)4, (uint8_t)4)); } if (sps_cfg_v1530_present) { sps_cfg_v1530 = make_copy_ptr(sps_cfg_v1530_s()); HANDLE_CODE(sps_cfg_v1530->unpack(bref)); } if (crs_intf_mitig_cfg_r15_present) { crs_intf_mitig_cfg_r15 = make_copy_ptr(crs_intf_mitig_cfg_r15_c_()); HANDLE_CODE(crs_intf_mitig_cfg_r15->unpack(bref)); } if (neigh_cells_crs_info_r15_present) { neigh_cells_crs_info_r15 = make_copy_ptr(neigh_cells_crs_info_r15_c()); HANDLE_CODE(neigh_cells_crs_info_r15->unpack(bref)); } if (drb_to_add_mod_list_r15_present) { drb_to_add_mod_list_r15 = make_copy_ptr(drb_to_add_mod_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*drb_to_add_mod_list_r15, bref, 1, 15)); } if (drb_to_release_list_r15_present) { drb_to_release_list_r15 = make_copy_ptr(drb_to_release_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*drb_to_release_list_r15, bref, 1, 15, UnalignedIntegerPacker(1, 32))); } if (srb_to_release_list_dupl_r15_present) { srb_to_release_list_dupl_r15 = make_copy_ptr(srb_to_release_list_dupl_r15_l()); HANDLE_CODE( unpack_dyn_seq_of(*srb_to_release_list_dupl_r15, bref, 1, 2, UnalignedIntegerPacker(1, 2))); } } } return SRSASN_SUCCESS; } void rr_cfg_ded_s::to_json(json_writer& j) const { j.start_obj(); if (srb_to_add_mod_list_present) { j.start_array("srb-ToAddModList"); for (uint32_t i1 = 0; i1 < srb_to_add_mod_list.size(); ++i1) { srb_to_add_mod_list[i1].to_json(j); } j.end_array(); } if (drb_to_add_mod_list_present) { j.start_array("drb-ToAddModList"); for (uint32_t i1 = 0; i1 < drb_to_add_mod_list.size(); ++i1) { drb_to_add_mod_list[i1].to_json(j); } j.end_array(); } if (drb_to_release_list_present) { j.start_array("drb-ToReleaseList"); for (uint32_t i1 = 0; i1 < drb_to_release_list.size(); ++i1) { j.write_int(drb_to_release_list[i1]); } j.end_array(); } if (mac_main_cfg_present) { j.write_fieldname("mac-MainConfig"); mac_main_cfg.to_json(j); } if (sps_cfg_present) { j.write_fieldname("sps-Config"); sps_cfg.to_json(j); } if (phys_cfg_ded_present) { j.write_fieldname("physicalConfigDedicated"); phys_cfg_ded.to_json(j); } if (ext) { rrc_asn1_warn_assert(rlf_timers_and_consts_r9_present != (rlf_timers_and_consts_r9.get() != NULL), __FILE__, __LINE__); if (rlf_timers_and_consts_r9_present) { j.write_fieldname("rlf-TimersAndConstants-r9"); rlf_timers_and_consts_r9->to_json(j); } rrc_asn1_warn_assert(meas_sf_pattern_pcell_r10_present != (meas_sf_pattern_pcell_r10.get() != NULL), __FILE__, __LINE__); if (meas_sf_pattern_pcell_r10_present) { j.write_fieldname("measSubframePatternPCell-r10"); meas_sf_pattern_pcell_r10->to_json(j); } rrc_asn1_warn_assert(neigh_cells_crs_info_r11_present != (neigh_cells_crs_info_r11.get() != NULL), __FILE__, __LINE__); if (neigh_cells_crs_info_r11_present) { j.write_fieldname("neighCellsCRS-Info-r11"); neigh_cells_crs_info_r11->to_json(j); } rrc_asn1_warn_assert(naics_info_r12_present != (naics_info_r12.get() != NULL), __FILE__, __LINE__); if (naics_info_r12_present) { j.write_fieldname("naics-Info-r12"); naics_info_r12->to_json(j); } rrc_asn1_warn_assert(neigh_cells_crs_info_r13_present != (neigh_cells_crs_info_r13.get() != NULL), __FILE__, __LINE__); if (neigh_cells_crs_info_r13_present) { j.write_fieldname("neighCellsCRS-Info-r13"); neigh_cells_crs_info_r13->to_json(j); } rrc_asn1_warn_assert(rlf_timers_and_consts_r13_present != (rlf_timers_and_consts_r13.get() != NULL), __FILE__, __LINE__); if (rlf_timers_and_consts_r13_present) { j.write_fieldname("rlf-TimersAndConstants-r13"); rlf_timers_and_consts_r13->to_json(j); } rrc_asn1_warn_assert(sps_cfg_v1430_present != (sps_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (sps_cfg_v1430_present) { j.write_fieldname("sps-Config-v1430"); sps_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(srb_to_add_mod_ext_list_r15_present != (srb_to_add_mod_ext_list_r15.get() != NULL), __FILE__, __LINE__); if (srb_to_add_mod_ext_list_r15_present) { j.start_array("srb-ToAddModExtList-r15"); for (uint32_t i1 = 0; i1 < srb_to_add_mod_ext_list_r15->size(); ++i1) { ((*srb_to_add_mod_ext_list_r15)[i1]).to_json(j); } j.end_array(); } if (srb_to_release_ext_list_r15_present) { j.write_int("srb-ToReleaseExtList-r15", srb_to_release_ext_list_r15); } rrc_asn1_warn_assert(sps_cfg_v1530_present != (sps_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (sps_cfg_v1530_present) { j.write_fieldname("sps-Config-v1530"); sps_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(crs_intf_mitig_cfg_r15_present != (crs_intf_mitig_cfg_r15.get() != NULL), __FILE__, __LINE__); if (crs_intf_mitig_cfg_r15_present) { j.write_fieldname("crs-IntfMitigConfig-r15"); crs_intf_mitig_cfg_r15->to_json(j); } rrc_asn1_warn_assert(neigh_cells_crs_info_r15_present != (neigh_cells_crs_info_r15.get() != NULL), __FILE__, __LINE__); if (neigh_cells_crs_info_r15_present) { j.write_fieldname("neighCellsCRS-Info-r15"); neigh_cells_crs_info_r15->to_json(j); } rrc_asn1_warn_assert(drb_to_add_mod_list_r15_present != (drb_to_add_mod_list_r15.get() != NULL), __FILE__, __LINE__); if (drb_to_add_mod_list_r15_present) { j.start_array("drb-ToAddModList-r15"); for (uint32_t i1 = 0; i1 < drb_to_add_mod_list_r15->size(); ++i1) { ((*drb_to_add_mod_list_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(drb_to_release_list_r15_present != (drb_to_release_list_r15.get() != NULL), __FILE__, __LINE__); if (drb_to_release_list_r15_present) { j.start_array("drb-ToReleaseList-r15"); for (uint32_t i1 = 0; i1 < drb_to_release_list_r15->size(); ++i1) { j.write_int(((*drb_to_release_list_r15)[i1])); } j.end_array(); } rrc_asn1_warn_assert(srb_to_release_list_dupl_r15_present != (srb_to_release_list_dupl_r15.get() != NULL), __FILE__, __LINE__); if (srb_to_release_list_dupl_r15_present) { j.start_array("srb-ToReleaseListDupl-r15"); for (uint32_t i1 = 0; i1 < srb_to_release_list_dupl_r15->size(); ++i1) { j.write_int(((*srb_to_release_list_dupl_r15)[i1])); } j.end_array(); } } j.end_obj(); } void rr_cfg_ded_s::mac_main_cfg_c_::set(types::options e) { type_ = e; } void rr_cfg_ded_s::mac_main_cfg_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::explicit_value: j.write_fieldname("explicitValue"); c.to_json(j); break; case types::default_value: break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::mac_main_cfg_c_"); } j.end_obj(); } SRSASN_CODE rr_cfg_ded_s::mac_main_cfg_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::explicit_value: HANDLE_CODE(c.pack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::mac_main_cfg_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_s::mac_main_cfg_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::explicit_value: HANDLE_CODE(c.unpack(bref)); break; case types::default_value: break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::mac_main_cfg_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::set(types::options e) { type_ = e; } void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::set(types::options e) { type_ = e; } void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::crs_intf_mitig_enabled_minus15: break; case types::crs_intf_mitig_num_prbs_r15: j.write_str("crs-IntfMitigNumPRBs-r15", c.to_string()); break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::crs_intf_mitig_enabled_minus15: break; case types::crs_intf_mitig_num_prbs_r15: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::crs_intf_mitig_enabled_minus15: break; case types::crs_intf_mitig_num_prbs_r15: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RedirectedCarrierInfo-r15-IEs ::= CHOICE void redirected_carrier_info_r15_ies_c::destroy_() { switch (type_) { case types::geran_r15: c.destroy(); break; case types::cdma2000_hrpd_r15: c.destroy(); break; case types::cdma2000_minus1x_rtt_r15: c.destroy(); break; case types::utra_tdd_r15: c.destroy(); break; default: break; } } void redirected_carrier_info_r15_ies_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::eutra_r15: break; case types::geran_r15: c.init(); break; case types::utra_fdd_r15: break; case types::cdma2000_hrpd_r15: c.init(); break; case types::cdma2000_minus1x_rtt_r15: c.init(); break; case types::utra_tdd_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "redirected_carrier_info_r15_ies_c"); } } redirected_carrier_info_r15_ies_c::redirected_carrier_info_r15_ies_c(const redirected_carrier_info_r15_ies_c& other) { type_ = other.type(); switch (type_) { case types::eutra_r15: c.init(other.c.get()); break; case types::geran_r15: c.init(other.c.get()); break; case types::utra_fdd_r15: c.init(other.c.get()); break; case types::cdma2000_hrpd_r15: c.init(other.c.get()); break; case types::cdma2000_minus1x_rtt_r15: c.init(other.c.get()); break; case types::utra_tdd_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "redirected_carrier_info_r15_ies_c"); } } redirected_carrier_info_r15_ies_c& redirected_carrier_info_r15_ies_c:: operator=(const redirected_carrier_info_r15_ies_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::eutra_r15: c.set(other.c.get()); break; case types::geran_r15: c.set(other.c.get()); break; case types::utra_fdd_r15: c.set(other.c.get()); break; case types::cdma2000_hrpd_r15: c.set(other.c.get()); break; case types::cdma2000_minus1x_rtt_r15: c.set(other.c.get()); break; case types::utra_tdd_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "redirected_carrier_info_r15_ies_c"); } return *this; } void redirected_carrier_info_r15_ies_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::eutra_r15: j.write_int("eutra-r15", c.get()); break; case types::geran_r15: j.write_fieldname("geran-r15"); c.get().to_json(j); break; case types::utra_fdd_r15: j.write_int("utra-FDD-r15", c.get()); break; case types::cdma2000_hrpd_r15: j.write_fieldname("cdma2000-HRPD-r15"); c.get().to_json(j); break; case types::cdma2000_minus1x_rtt_r15: j.write_fieldname("cdma2000-1xRTT-r15"); c.get().to_json(j); break; case types::utra_tdd_r15: j.start_array("utra-TDD-r15"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_int(c.get()[i1]); } j.end_array(); break; default: log_invalid_choice_id(type_, "redirected_carrier_info_r15_ies_c"); } j.end_obj(); } SRSASN_CODE redirected_carrier_info_r15_ies_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::eutra_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint32_t)0, (uint32_t)262143)); break; case types::geran_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::utra_fdd_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)16383)); break; case types::cdma2000_hrpd_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::cdma2000_minus1x_rtt_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::utra_tdd_r15: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 6, UnalignedIntegerPacker(0, 16383))); break; default: log_invalid_choice_id(type_, "redirected_carrier_info_r15_ies_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE redirected_carrier_info_r15_ies_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::eutra_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint32_t)0, (uint32_t)262143)); break; case types::geran_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::utra_fdd_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)16383)); break; case types::cdma2000_hrpd_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::cdma2000_minus1x_rtt_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::utra_tdd_r15: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 6, UnalignedIntegerPacker(0, 16383))); break; default: log_invalid_choice_id(type_, "redirected_carrier_info_r15_ies_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReestablishment-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(rr_cfg_ded.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, next_hop_chaining_count, (uint8_t)0, (uint8_t)7)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(rr_cfg_ded.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(next_hop_chaining_count, bref, (uint8_t)0, (uint8_t)7)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("radioResourceConfigDedicated"); rr_cfg_ded.to_json(j); j.write_int("nextHopChainingCount", next_hop_chaining_count); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_reject_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_reject_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_reject_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReject-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reject_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, wait_time, (uint8_t)1, (uint8_t)16)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reject_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_unalign_integer(wait_time, bref, (uint8_t)1, (uint8_t)16)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reject_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("waitTime", wait_time); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionSetup-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(rr_cfg_ded.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(rr_cfg_ded.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("radioResourceConfigDedicated"); rr_cfg_ded.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCEarlyDataComplete-r15-IEs ::= SEQUENCE SRSASN_CODE rrc_early_data_complete_r15_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ded_info_nas_r15_present, 1)); HANDLE_CODE(bref.pack(extended_wait_time_r15_present, 1)); HANDLE_CODE(bref.pack(idle_mode_mob_ctrl_info_r15_present, 1)); HANDLE_CODE(bref.pack(idle_mode_mob_ctrl_info_ext_r15_present, 1)); HANDLE_CODE(bref.pack(redirected_carrier_info_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ded_info_nas_r15_present) { HANDLE_CODE(ded_info_nas_r15.pack(bref)); } if (extended_wait_time_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, extended_wait_time_r15, (uint16_t)1, (uint16_t)1800)); } if (idle_mode_mob_ctrl_info_r15_present) { HANDLE_CODE(idle_mode_mob_ctrl_info_r15.pack(bref)); } if (idle_mode_mob_ctrl_info_ext_r15_present) { HANDLE_CODE(idle_mode_mob_ctrl_info_ext_r15.pack(bref)); } if (redirected_carrier_info_r15_present) { HANDLE_CODE(redirected_carrier_info_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_early_data_complete_r15_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ded_info_nas_r15_present, 1)); HANDLE_CODE(bref.unpack(extended_wait_time_r15_present, 1)); HANDLE_CODE(bref.unpack(idle_mode_mob_ctrl_info_r15_present, 1)); HANDLE_CODE(bref.unpack(idle_mode_mob_ctrl_info_ext_r15_present, 1)); HANDLE_CODE(bref.unpack(redirected_carrier_info_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ded_info_nas_r15_present) { HANDLE_CODE(ded_info_nas_r15.unpack(bref)); } if (extended_wait_time_r15_present) { HANDLE_CODE(unpack_unalign_integer(extended_wait_time_r15, bref, (uint16_t)1, (uint16_t)1800)); } if (idle_mode_mob_ctrl_info_r15_present) { HANDLE_CODE(idle_mode_mob_ctrl_info_r15.unpack(bref)); } if (idle_mode_mob_ctrl_info_ext_r15_present) { HANDLE_CODE(idle_mode_mob_ctrl_info_ext_r15.unpack(bref)); } if (redirected_carrier_info_r15_present) { HANDLE_CODE(redirected_carrier_info_r15.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_early_data_complete_r15_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ded_info_nas_r15_present) { j.write_str("dedicatedInfoNAS-r15", ded_info_nas_r15.to_string()); } if (extended_wait_time_r15_present) { j.write_int("extendedWaitTime-r15", extended_wait_time_r15); } if (idle_mode_mob_ctrl_info_r15_present) { j.write_fieldname("idleModeMobilityControlInfo-r15"); idle_mode_mob_ctrl_info_r15.to_json(j); } if (idle_mode_mob_ctrl_info_ext_r15_present) { j.write_fieldname("idleModeMobilityControlInfoExt-r15"); idle_mode_mob_ctrl_info_ext_r15.to_json(j); } if (redirected_carrier_info_r15_present) { j.write_fieldname("redirectedCarrierInfo-r15"); redirected_carrier_info_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReestablishment ::= SEQUENCE SRSASN_CODE rrc_conn_reest_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_reest_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_reest_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rrc_conn_reest_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); } } rrc_conn_reest_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); } } rrc_conn_reest_s::crit_exts_c_& rrc_conn_reest_s::crit_exts_c_::operator=(const rrc_conn_reest_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); } return *this; } void rrc_conn_reest_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_reest_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rrc_conn_reest_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rrc_conn_reest_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_reest_r8: j.write_fieldname("rrcConnectionReestablishment-r8"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_reest_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_reest_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_reest_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReestablishmentReject ::= SEQUENCE SRSASN_CODE rrc_conn_reest_reject_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_reject_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_reest_reject_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_reest_reject_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_conn_reest_reject_r8: c.destroy(); break; default: break; } } void rrc_conn_reest_reject_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_reest_reject_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); } } rrc_conn_reest_reject_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_reject_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_reest_reject_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); } } rrc_conn_reest_reject_s::crit_exts_c_& rrc_conn_reest_reject_s::crit_exts_c_:: operator=(const rrc_conn_reest_reject_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_reest_reject_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); } return *this; } void rrc_conn_reest_reject_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_reest_reject_r8: j.write_fieldname("rrcConnectionReestablishmentReject-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_reest_reject_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_reest_reject_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_reject_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_reest_reject_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReject ::= SEQUENCE SRSASN_CODE rrc_conn_reject_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reject_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_reject_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_reject_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rrc_conn_reject_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); } } rrc_conn_reject_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reject_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); } } rrc_conn_reject_s::crit_exts_c_& rrc_conn_reject_s::crit_exts_c_:: operator=(const rrc_conn_reject_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); } return *this; } void rrc_conn_reject_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_reject_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reject_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rrc_conn_reject_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rrc_conn_reject_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_reject_r8: j.write_fieldname("rrcConnectionReject-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_reject_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_reject_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reject_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_reject_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionSetup ::= SEQUENCE SRSASN_CODE rrc_conn_setup_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_setup_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_setup_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rrc_conn_setup_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); } } rrc_conn_setup_s::crit_exts_c_::crit_exts_c_(const rrc_conn_setup_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); } } rrc_conn_setup_s::crit_exts_c_& rrc_conn_setup_s::crit_exts_c_::operator=(const rrc_conn_setup_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); } return *this; } void rrc_conn_setup_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_setup_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rrc_conn_setup_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rrc_conn_setup_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_setup_r8: j.write_fieldname("rrcConnectionSetup-r8"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_setup_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_setup_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_setup_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCEarlyDataComplete-r15 ::= SEQUENCE SRSASN_CODE rrc_early_data_complete_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_early_data_complete_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_early_data_complete_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_early_data_complete_r15_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_early_data_complete_r15: c.destroy(); break; default: break; } } void rrc_early_data_complete_r15_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_early_data_complete_r15: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); } } rrc_early_data_complete_r15_s::crit_exts_c_::crit_exts_c_(const rrc_early_data_complete_r15_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_early_data_complete_r15: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); } } rrc_early_data_complete_r15_s::crit_exts_c_& rrc_early_data_complete_r15_s::crit_exts_c_:: operator=(const rrc_early_data_complete_r15_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_early_data_complete_r15: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); } return *this; } void rrc_early_data_complete_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_early_data_complete_r15: j.write_fieldname("rrcEarlyDataComplete-r15"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_early_data_complete_r15_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_early_data_complete_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_early_data_complete_r15_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_early_data_complete_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DL-CCCH-MessageType ::= CHOICE void dl_ccch_msg_type_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; case types::msg_class_ext: c.destroy(); break; default: break; } } void dl_ccch_msg_type_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); } } dl_ccch_msg_type_c::dl_ccch_msg_type_c(const dl_ccch_msg_type_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); } } dl_ccch_msg_type_c& dl_ccch_msg_type_c::operator=(const dl_ccch_msg_type_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); } return *this; } void dl_ccch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: j.write_fieldname("messageClassExtension"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); } j.end_obj(); } SRSASN_CODE dl_ccch_msg_type_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_ccch_msg_type_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void dl_ccch_msg_type_c::c1_c_::destroy_() { switch (type_) { case types::rrc_conn_reest: c.destroy(); break; case types::rrc_conn_reest_reject: c.destroy(); break; case types::rrc_conn_reject: c.destroy(); break; case types::rrc_conn_setup: c.destroy(); break; default: break; } } void dl_ccch_msg_type_c::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_reest: c.init(); break; case types::rrc_conn_reest_reject: c.init(); break; case types::rrc_conn_reject: c.init(); break; case types::rrc_conn_setup: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::c1_c_"); } } dl_ccch_msg_type_c::c1_c_::c1_c_(const dl_ccch_msg_type_c::c1_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_reest: c.init(other.c.get()); break; case types::rrc_conn_reest_reject: c.init(other.c.get()); break; case types::rrc_conn_reject: c.init(other.c.get()); break; case types::rrc_conn_setup: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::c1_c_"); } } dl_ccch_msg_type_c::c1_c_& dl_ccch_msg_type_c::c1_c_::operator=(const dl_ccch_msg_type_c::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_reest: c.set(other.c.get()); break; case types::rrc_conn_reest_reject: c.set(other.c.get()); break; case types::rrc_conn_reject: c.set(other.c.get()); break; case types::rrc_conn_setup: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::c1_c_"); } return *this; } void dl_ccch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_reest: j.write_fieldname("rrcConnectionReestablishment"); c.get().to_json(j); break; case types::rrc_conn_reest_reject: j.write_fieldname("rrcConnectionReestablishmentReject"); c.get().to_json(j); break; case types::rrc_conn_reject: j.write_fieldname("rrcConnectionReject"); c.get().to_json(j); break; case types::rrc_conn_setup: j.write_fieldname("rrcConnectionSetup"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::c1_c_"); } j.end_obj(); } SRSASN_CODE dl_ccch_msg_type_c::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_reest: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_reest_reject: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_reject: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_setup: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_ccch_msg_type_c::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_reest: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_reest_reject: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_reject: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_setup: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void dl_ccch_msg_type_c::msg_class_ext_c_::destroy_() { switch (type_) { case types::c2: c.destroy(); break; default: break; } } void dl_ccch_msg_type_c::msg_class_ext_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c2: c.init(); break; case types::msg_class_ext_future_r15: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); } } dl_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_c_(const dl_ccch_msg_type_c::msg_class_ext_c_& other) { type_ = other.type(); switch (type_) { case types::c2: c.init(other.c.get()); break; case types::msg_class_ext_future_r15: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); } } dl_ccch_msg_type_c::msg_class_ext_c_& dl_ccch_msg_type_c::msg_class_ext_c_:: operator=(const dl_ccch_msg_type_c::msg_class_ext_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c2: c.set(other.c.get()); break; case types::msg_class_ext_future_r15: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); } return *this; } void dl_ccch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c2: j.write_fieldname("c2"); c.get().to_json(j); break; case types::msg_class_ext_future_r15: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); } j.end_obj(); } SRSASN_CODE dl_ccch_msg_type_c::msg_class_ext_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c2: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext_future_r15: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_ccch_msg_type_c::msg_class_ext_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c2: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext_future_r15: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::set(types::options e) { type_ = e; } void dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_early_data_complete_r15: j.write_fieldname("rrcEarlyDataComplete-r15"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_"); } j.end_obj(); } SRSASN_CODE dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_early_data_complete_r15: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_early_data_complete_r15: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DL-CCCH-Message ::= SEQUENCE SRSASN_CODE dl_ccch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE dl_ccch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void dl_ccch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("DL-CCCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE void pdcch_candidate_reductions_laa_ul_r14_c::set(types::options e) { type_ = e; } void pdcch_candidate_reductions_laa_ul_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("pdcch-candidateReductionAL1-r14", c.pdcch_candidate_reduction_al1_r14.to_string()); j.write_str("pdcch-candidateReductionAL2-r14", c.pdcch_candidate_reduction_al2_r14.to_string()); j.write_str("pdcch-candidateReductionAL3-r14", c.pdcch_candidate_reduction_al3_r14.to_string()); j.write_str("pdcch-candidateReductionAL4-r14", c.pdcch_candidate_reduction_al4_r14.to_string()); j.write_str("pdcch-candidateReductionAL5-r14", c.pdcch_candidate_reduction_al5_r14.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "pdcch_candidate_reductions_laa_ul_r14_c"); } j.end_obj(); } SRSASN_CODE pdcch_candidate_reductions_laa_ul_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al1_r14)); HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al2_r14)); HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al3_r14)); HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al4_r14)); HANDLE_CODE(pack_enum(bref, c.pdcch_candidate_reduction_al5_r14)); break; default: log_invalid_choice_id(type_, "pdcch_candidate_reductions_laa_ul_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pdcch_candidate_reductions_laa_ul_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al1_r14, bref)); HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al2_r14, bref)); HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al3_r14, bref)); HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al4_r14, bref)); HANDLE_CODE(unpack_enum(c.pdcch_candidate_reduction_al5_r14, bref)); break; default: log_invalid_choice_id(type_, "pdcch_candidate_reductions_laa_ul_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // AUL-Config-r15 ::= CHOICE void aul_cfg_r15_c::set(types::options e) { type_ = e; } void aul_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("aul-CRNTI-r15", c.aul_crnti_r15.to_string()); j.write_str("aul-Subframes-r15", c.aul_sfs_r15.to_string()); j.write_int("aul-HARQ-Processes-r15", c.aul_harq_processes_r15); j.write_str("transmissionModeUL-AUL-r15", c.tx_mode_ul_aul_r15.to_string()); j.write_str("aul-StartingFullBW-InsideMCOT-r15", c.aul_start_full_bw_inside_mcot_r15.to_string()); j.write_str("aul-StartingFullBW-OutsideMCOT-r15", c.aul_start_full_bw_outside_mcot_r15.to_string()); j.write_str("aul-StartingPartialBW-InsideMCOT-r15", c.aul_start_partial_bw_inside_mcot_r15.to_string()); j.write_str("aul-StartingPartialBW-OutsideMCOT-r15", c.aul_start_partial_bw_outside_mcot_r15.to_string()); j.write_str("aul-RetransmissionTimer-r15", c.aul_retx_timer_r15.to_string()); j.write_int("endingSymbolAUL-r15", c.ending_symbol_aul_r15); j.write_int("subframeOffsetCOT-Sharing-r15", c.sf_offset_cot_sharing_r15); j.write_str("contentionWindowSizeTimer-r15", c.contention_win_size_timer_r15.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "aul_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE aul_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.aul_crnti_r15.pack(bref)); HANDLE_CODE(c.aul_sfs_r15.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, c.aul_harq_processes_r15, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_enum(bref, c.tx_mode_ul_aul_r15)); HANDLE_CODE(c.aul_start_full_bw_inside_mcot_r15.pack(bref)); HANDLE_CODE(c.aul_start_full_bw_outside_mcot_r15.pack(bref)); HANDLE_CODE(pack_enum(bref, c.aul_start_partial_bw_inside_mcot_r15)); HANDLE_CODE(pack_enum(bref, c.aul_start_partial_bw_outside_mcot_r15)); HANDLE_CODE(pack_enum(bref, c.aul_retx_timer_r15)); HANDLE_CODE(pack_unalign_integer(bref, c.ending_symbol_aul_r15, (uint8_t)12, (uint8_t)13)); HANDLE_CODE(pack_unalign_integer(bref, c.sf_offset_cot_sharing_r15, (uint8_t)2, (uint8_t)4)); HANDLE_CODE(pack_enum(bref, c.contention_win_size_timer_r15)); break; default: log_invalid_choice_id(type_, "aul_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE aul_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.aul_crnti_r15.unpack(bref)); HANDLE_CODE(c.aul_sfs_r15.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(c.aul_harq_processes_r15, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_enum(c.tx_mode_ul_aul_r15, bref)); HANDLE_CODE(c.aul_start_full_bw_inside_mcot_r15.unpack(bref)); HANDLE_CODE(c.aul_start_full_bw_outside_mcot_r15.unpack(bref)); HANDLE_CODE(unpack_enum(c.aul_start_partial_bw_inside_mcot_r15, bref)); HANDLE_CODE(unpack_enum(c.aul_start_partial_bw_outside_mcot_r15, bref)); HANDLE_CODE(unpack_enum(c.aul_retx_timer_r15, bref)); HANDLE_CODE(unpack_unalign_integer(c.ending_symbol_aul_r15, bref, (uint8_t)12, (uint8_t)13)); HANDLE_CODE(unpack_unalign_integer(c.sf_offset_cot_sharing_r15, bref, (uint8_t)2, (uint8_t)4)); HANDLE_CODE(unpack_enum(c.contention_win_size_timer_r15, bref)); break; default: log_invalid_choice_id(type_, "aul_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportPeriodicSCell-r15 ::= CHOICE void cqi_report_periodic_scell_r15_c::set(types::options e) { type_ = e; } void cqi_report_periodic_scell_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("cqi-pmi-ConfigIndexDormant-r15", c.cqi_pmi_cfg_idx_dormant_r15); if (c.ri_cfg_idx_dormant_r15_present) { j.write_int("ri-ConfigIndexDormant-r15", c.ri_cfg_idx_dormant_r15); } if (c.csi_sf_pattern_dormant_r15_present) { j.write_fieldname("csi-SubframePatternDormant-r15"); c.csi_sf_pattern_dormant_r15.to_json(j); } if (c.cqi_format_ind_dormant_r15_present) { j.write_fieldname("cqi-FormatIndicatorDormant-r15"); c.cqi_format_ind_dormant_r15.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_scell_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.ri_cfg_idx_dormant_r15_present, 1)); HANDLE_CODE(bref.pack(c.csi_sf_pattern_dormant_r15_present, 1)); HANDLE_CODE(bref.pack(c.cqi_format_ind_dormant_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pmi_cfg_idx_dormant_r15, (uint16_t)0, (uint16_t)1023)); if (c.ri_cfg_idx_dormant_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.ri_cfg_idx_dormant_r15, (uint16_t)0, (uint16_t)1023)); } if (c.csi_sf_pattern_dormant_r15_present) { HANDLE_CODE(c.csi_sf_pattern_dormant_r15.pack(bref)); } if (c.cqi_format_ind_dormant_r15_present) { HANDLE_CODE(c.cqi_format_ind_dormant_r15.pack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_scell_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.ri_cfg_idx_dormant_r15_present, 1)); HANDLE_CODE(bref.unpack(c.csi_sf_pattern_dormant_r15_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_format_ind_dormant_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.cqi_pmi_cfg_idx_dormant_r15, bref, (uint16_t)0, (uint16_t)1023)); if (c.ri_cfg_idx_dormant_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.ri_cfg_idx_dormant_r15, bref, (uint16_t)0, (uint16_t)1023)); } if (c.csi_sf_pattern_dormant_r15_present) { HANDLE_CODE(c.csi_sf_pattern_dormant_r15.unpack(bref)); } if (c.cqi_format_ind_dormant_r15_present) { HANDLE_CODE(c.cqi_format_ind_dormant_r15.unpack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::set(types::options e) { type_ = e; } void cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("csi-MeasSubframeSet1-r15"); c.csi_meas_sf_set1_r15.to_json(j); j.write_fieldname("csi-MeasSubframeSet2-r15"); c.csi_meas_sf_set2_r15.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.csi_meas_sf_set1_r15.pack(bref)); HANDLE_CODE(c.csi_meas_sf_set2_r15.pack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.csi_meas_sf_set1_r15.unpack(bref)); HANDLE_CODE(c.csi_meas_sf_set2_r15.unpack(bref)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::destroy_() { switch (type_) { case types::wideband_cqi_r15: c.destroy(); break; case types::subband_cqi_r15: c.destroy(); break; default: break; } } void cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::wideband_cqi_r15: c.init(); break; case types::subband_cqi_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_"); } } cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::cqi_format_ind_dormant_r15_c_( const cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_& other) { type_ = other.type(); switch (type_) { case types::wideband_cqi_r15: c.init(other.c.get()); break; case types::subband_cqi_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_"); } } cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_& cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_:: operator=(const cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::wideband_cqi_r15: c.set(other.c.get()); break; case types::subband_cqi_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_"); } return *this; } void cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::wideband_cqi_r15: j.write_fieldname("widebandCQI-r15"); j.start_obj(); if (c.get().csi_report_mode_r15_present) { j.write_str("csi-ReportMode-r15", c.get().csi_report_mode_r15.to_string()); } j.end_obj(); break; case types::subband_cqi_r15: j.write_fieldname("subbandCQI-r15"); j.start_obj(); j.write_int("k-r15", c.get().k_r15); j.write_str("periodicityFactor-r15", c.get().periodicity_factor_r15.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_"); } j.end_obj(); } SRSASN_CODE cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::wideband_cqi_r15: HANDLE_CODE(bref.pack(c.get().csi_report_mode_r15_present, 1)); if (c.get().csi_report_mode_r15_present) { HANDLE_CODE(pack_enum(bref, c.get().csi_report_mode_r15)); } break; case types::subband_cqi_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get().k_r15, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_enum(bref, c.get().periodicity_factor_r15)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::wideband_cqi_r15: HANDLE_CODE(bref.unpack(c.get().csi_report_mode_r15_present, 1)); if (c.get().csi_report_mode_r15_present) { HANDLE_CODE(unpack_enum(c.get().csi_report_mode_r15, bref)); } break; case types::subband_cqi_r15: HANDLE_CODE(unpack_unalign_integer(c.get().k_r15, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_enum(c.get().periodicity_factor_r15, bref)); break; default: log_invalid_choice_id(type_, "cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE SRSASN_CODE cross_carrier_sched_cfg_laa_ul_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, sched_cell_id_r14, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, cif_in_sched_cell_r14, (uint8_t)1, (uint8_t)7)); return SRSASN_SUCCESS; } SRSASN_CODE cross_carrier_sched_cfg_laa_ul_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(sched_cell_id_r14, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(cif_in_sched_cell_r14, bref, (uint8_t)1, (uint8_t)7)); return SRSASN_SUCCESS; } void cross_carrier_sched_cfg_laa_ul_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("schedulingCellId-r14", sched_cell_id_r14); j.write_int("cif-InSchedulingCell-r14", cif_in_sched_cell_r14); j.end_obj(); } // LBT-Config-r14 ::= CHOICE void lbt_cfg_r14_c::destroy_() {} void lbt_cfg_r14_c::set(types::options e) { destroy_(); type_ = e; } lbt_cfg_r14_c::lbt_cfg_r14_c(const lbt_cfg_r14_c& other) { type_ = other.type(); switch (type_) { case types::max_energy_detection_thres_r14: c.init(other.c.get()); break; case types::energy_detection_thres_offset_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "lbt_cfg_r14_c"); } } lbt_cfg_r14_c& lbt_cfg_r14_c::operator=(const lbt_cfg_r14_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::max_energy_detection_thres_r14: c.set(other.c.get()); break; case types::energy_detection_thres_offset_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "lbt_cfg_r14_c"); } return *this; } void lbt_cfg_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::max_energy_detection_thres_r14: j.write_int("maxEnergyDetectionThreshold-r14", c.get()); break; case types::energy_detection_thres_offset_r14: j.write_int("energyDetectionThresholdOffset-r14", c.get()); break; default: log_invalid_choice_id(type_, "lbt_cfg_r14_c"); } j.end_obj(); } SRSASN_CODE lbt_cfg_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::max_energy_detection_thres_r14: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (int8_t)-85, (int8_t)-52)); break; case types::energy_detection_thres_offset_r14: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (int8_t)-13, (int8_t)20)); break; default: log_invalid_choice_id(type_, "lbt_cfg_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE lbt_cfg_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::max_energy_detection_thres_r14: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (int8_t)-85, (int8_t)-52)); break; case types::energy_detection_thres_offset_r14: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (int8_t)-13, (int8_t)20)); break; default: log_invalid_choice_id(type_, "lbt_cfg_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PDCCH-ConfigLAA-r14 ::= SEQUENCE SRSASN_CODE pdcch_cfg_laa_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(max_nof_sched_sfs_format0_b_r14_present, 1)); HANDLE_CODE(bref.pack(max_nof_sched_sfs_format4_b_r14_present, 1)); HANDLE_CODE(bref.pack(skip_monitoring_dci_format0_a_r14_present, 1)); HANDLE_CODE(bref.pack(skip_monitoring_dci_format4_a_r14_present, 1)); HANDLE_CODE(bref.pack(pdcch_candidate_reductions_format0_a_r14_present, 1)); HANDLE_CODE(bref.pack(pdcch_candidate_reductions_format4_a_r14_present, 1)); HANDLE_CODE(bref.pack(pdcch_candidate_reductions_format0_b_r14_present, 1)); HANDLE_CODE(bref.pack(pdcch_candidate_reductions_format4_b_r14_present, 1)); if (max_nof_sched_sfs_format0_b_r14_present) { HANDLE_CODE(pack_enum(bref, max_nof_sched_sfs_format0_b_r14)); } if (max_nof_sched_sfs_format4_b_r14_present) { HANDLE_CODE(pack_enum(bref, max_nof_sched_sfs_format4_b_r14)); } if (pdcch_candidate_reductions_format0_a_r14_present) { HANDLE_CODE(pdcch_candidate_reductions_format0_a_r14.pack(bref)); } if (pdcch_candidate_reductions_format4_a_r14_present) { HANDLE_CODE(pdcch_candidate_reductions_format4_a_r14.pack(bref)); } if (pdcch_candidate_reductions_format0_b_r14_present) { HANDLE_CODE(pdcch_candidate_reductions_format0_b_r14.pack(bref)); } if (pdcch_candidate_reductions_format4_b_r14_present) { HANDLE_CODE(pdcch_candidate_reductions_format4_b_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pdcch_cfg_laa_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(max_nof_sched_sfs_format0_b_r14_present, 1)); HANDLE_CODE(bref.unpack(max_nof_sched_sfs_format4_b_r14_present, 1)); HANDLE_CODE(bref.unpack(skip_monitoring_dci_format0_a_r14_present, 1)); HANDLE_CODE(bref.unpack(skip_monitoring_dci_format4_a_r14_present, 1)); HANDLE_CODE(bref.unpack(pdcch_candidate_reductions_format0_a_r14_present, 1)); HANDLE_CODE(bref.unpack(pdcch_candidate_reductions_format4_a_r14_present, 1)); HANDLE_CODE(bref.unpack(pdcch_candidate_reductions_format0_b_r14_present, 1)); HANDLE_CODE(bref.unpack(pdcch_candidate_reductions_format4_b_r14_present, 1)); if (max_nof_sched_sfs_format0_b_r14_present) { HANDLE_CODE(unpack_enum(max_nof_sched_sfs_format0_b_r14, bref)); } if (max_nof_sched_sfs_format4_b_r14_present) { HANDLE_CODE(unpack_enum(max_nof_sched_sfs_format4_b_r14, bref)); } if (pdcch_candidate_reductions_format0_a_r14_present) { HANDLE_CODE(pdcch_candidate_reductions_format0_a_r14.unpack(bref)); } if (pdcch_candidate_reductions_format4_a_r14_present) { HANDLE_CODE(pdcch_candidate_reductions_format4_a_r14.unpack(bref)); } if (pdcch_candidate_reductions_format0_b_r14_present) { HANDLE_CODE(pdcch_candidate_reductions_format0_b_r14.unpack(bref)); } if (pdcch_candidate_reductions_format4_b_r14_present) { HANDLE_CODE(pdcch_candidate_reductions_format4_b_r14.unpack(bref)); } return SRSASN_SUCCESS; } void pdcch_cfg_laa_r14_s::to_json(json_writer& j) const { j.start_obj(); if (max_nof_sched_sfs_format0_b_r14_present) { j.write_str("maxNumberOfSchedSubframes-Format0B-r14", max_nof_sched_sfs_format0_b_r14.to_string()); } if (max_nof_sched_sfs_format4_b_r14_present) { j.write_str("maxNumberOfSchedSubframes-Format4B-r14", max_nof_sched_sfs_format4_b_r14.to_string()); } if (skip_monitoring_dci_format0_a_r14_present) { j.write_str("skipMonitoringDCI-Format0A-r14", "true"); } if (skip_monitoring_dci_format4_a_r14_present) { j.write_str("skipMonitoringDCI-Format4A-r14", "true"); } if (pdcch_candidate_reductions_format0_a_r14_present) { j.write_fieldname("pdcch-CandidateReductions-Format0A-r14"); pdcch_candidate_reductions_format0_a_r14.to_json(j); } if (pdcch_candidate_reductions_format4_a_r14_present) { j.write_fieldname("pdcch-CandidateReductions-Format4A-r14"); pdcch_candidate_reductions_format4_a_r14.to_json(j); } if (pdcch_candidate_reductions_format0_b_r14_present) { j.write_fieldname("pdcch-CandidateReductions-Format0B-r14"); pdcch_candidate_reductions_format0_b_r14.to_json(j); } if (pdcch_candidate_reductions_format4_b_r14_present) { j.write_fieldname("pdcch-CandidateReductions-Format4B-r14"); pdcch_candidate_reductions_format4_b_r14.to_json(j); } j.end_obj(); } // PUSCH-ModeConfigLAA-r15 ::= SEQUENCE SRSASN_CODE pusch_mode_cfg_laa_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(laa_pusch_mode1, 1)); HANDLE_CODE(bref.pack(laa_pusch_mode2, 1)); HANDLE_CODE(bref.pack(laa_pusch_mode3, 1)); return SRSASN_SUCCESS; } SRSASN_CODE pusch_mode_cfg_laa_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(laa_pusch_mode1, 1)); HANDLE_CODE(bref.unpack(laa_pusch_mode2, 1)); HANDLE_CODE(bref.unpack(laa_pusch_mode3, 1)); return SRSASN_SUCCESS; } void pusch_mode_cfg_laa_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("laa-PUSCH-Mode1", laa_pusch_mode1); j.write_bool("laa-PUSCH-Mode2", laa_pusch_mode2); j.write_bool("laa-PUSCH-Mode3", laa_pusch_mode3); j.end_obj(); } // SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE void srs_ul_cfg_ded_aperiodic_v1430_c::set(types::options e) { type_ = e; } void srs_ul_cfg_ded_aperiodic_v1430_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.srs_sf_ind_r14_present) { j.write_int("srs-SubframeIndication-r14", c.srs_sf_ind_r14); } j.end_obj(); break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1430_c"); } j.end_obj(); } SRSASN_CODE srs_ul_cfg_ded_aperiodic_v1430_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.srs_sf_ind_r14_present, 1)); if (c.srs_sf_ind_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, c.srs_sf_ind_r14, (uint8_t)1, (uint8_t)4)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1430_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE srs_ul_cfg_ded_aperiodic_v1430_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.srs_sf_ind_r14_present, 1)); if (c.srs_sf_ind_r14_present) { HANDLE_CODE(unpack_unalign_integer(c.srs_sf_ind_r14, bref, (uint8_t)1, (uint8_t)4)); } break; default: log_invalid_choice_id(type_, "srs_ul_cfg_ded_aperiodic_v1430_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CQI-ReportConfigSCell-r10 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_scell_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cqi_report_mode_aperiodic_r10_present, 1)); HANDLE_CODE(bref.pack(cqi_report_periodic_scell_r10_present, 1)); HANDLE_CODE(bref.pack(pmi_ri_report_r10_present, 1)); if (cqi_report_mode_aperiodic_r10_present) { HANDLE_CODE(pack_enum(bref, cqi_report_mode_aperiodic_r10)); } HANDLE_CODE(pack_unalign_integer(bref, nom_pdsch_rs_epre_offset_r10, (int8_t)-1, (int8_t)6)); if (cqi_report_periodic_scell_r10_present) { HANDLE_CODE(cqi_report_periodic_scell_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_scell_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cqi_report_mode_aperiodic_r10_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_periodic_scell_r10_present, 1)); HANDLE_CODE(bref.unpack(pmi_ri_report_r10_present, 1)); if (cqi_report_mode_aperiodic_r10_present) { HANDLE_CODE(unpack_enum(cqi_report_mode_aperiodic_r10, bref)); } HANDLE_CODE(unpack_unalign_integer(nom_pdsch_rs_epre_offset_r10, bref, (int8_t)-1, (int8_t)6)); if (cqi_report_periodic_scell_r10_present) { HANDLE_CODE(cqi_report_periodic_scell_r10.unpack(bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_scell_r10_s::to_json(json_writer& j) const { j.start_obj(); if (cqi_report_mode_aperiodic_r10_present) { j.write_str("cqi-ReportModeAperiodic-r10", cqi_report_mode_aperiodic_r10.to_string()); } j.write_int("nomPDSCH-RS-EPRE-Offset-r10", nom_pdsch_rs_epre_offset_r10); if (cqi_report_periodic_scell_r10_present) { j.write_fieldname("cqi-ReportPeriodicSCell-r10"); cqi_report_periodic_scell_r10.to_json(j); } if (pmi_ri_report_r10_present) { j.write_str("pmi-RI-Report-r10", "setup"); } j.end_obj(); } // CQI-ReportConfigSCell-r15 ::= SEQUENCE SRSASN_CODE cqi_report_cfg_scell_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cqi_report_periodic_scell_r15_present, 1)); HANDLE_CODE(bref.pack(alt_cqi_table_minus1024_qam_r15_present, 1)); if (cqi_report_periodic_scell_r15_present) { HANDLE_CODE(cqi_report_periodic_scell_r15.pack(bref)); } if (alt_cqi_table_minus1024_qam_r15_present) { HANDLE_CODE(pack_enum(bref, alt_cqi_table_minus1024_qam_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE cqi_report_cfg_scell_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cqi_report_periodic_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(alt_cqi_table_minus1024_qam_r15_present, 1)); if (cqi_report_periodic_scell_r15_present) { HANDLE_CODE(cqi_report_periodic_scell_r15.unpack(bref)); } if (alt_cqi_table_minus1024_qam_r15_present) { HANDLE_CODE(unpack_enum(alt_cqi_table_minus1024_qam_r15, bref)); } return SRSASN_SUCCESS; } void cqi_report_cfg_scell_r15_s::to_json(json_writer& j) const { j.start_obj(); if (cqi_report_periodic_scell_r15_present) { j.write_fieldname("cqi-ReportPeriodicSCell-r15"); cqi_report_periodic_scell_r15.to_json(j); } if (alt_cqi_table_minus1024_qam_r15_present) { j.write_str("altCQI-Table-1024QAM-r15", alt_cqi_table_minus1024_qam_r15.to_string()); } j.end_obj(); } // CQI-ShortConfigSCell-r15 ::= CHOICE void cqi_short_cfg_scell_r15_c::set(types::options e) { type_ = e; } void cqi_short_cfg_scell_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("cqi-pmi-ConfigIndexShort-r15", c.cqi_pmi_cfg_idx_short_r15); if (c.ri_cfg_idx_short_r15_present) { j.write_int("ri-ConfigIndexShort-r15", c.ri_cfg_idx_short_r15); } if (c.cqi_format_ind_short_r15_present) { j.write_fieldname("cqi-FormatIndicatorShort-r15"); c.cqi_format_ind_short_r15.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c"); } j.end_obj(); } SRSASN_CODE cqi_short_cfg_scell_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.ri_cfg_idx_short_r15_present, 1)); HANDLE_CODE(bref.pack(c.cqi_format_ind_short_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.cqi_pmi_cfg_idx_short_r15, (uint16_t)0, (uint16_t)1023)); if (c.ri_cfg_idx_short_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.ri_cfg_idx_short_r15, (uint16_t)0, (uint16_t)1023)); } if (c.cqi_format_ind_short_r15_present) { HANDLE_CODE(c.cqi_format_ind_short_r15.pack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_short_cfg_scell_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.ri_cfg_idx_short_r15_present, 1)); HANDLE_CODE(bref.unpack(c.cqi_format_ind_short_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.cqi_pmi_cfg_idx_short_r15, bref, (uint16_t)0, (uint16_t)1023)); if (c.ri_cfg_idx_short_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.ri_cfg_idx_short_r15, bref, (uint16_t)0, (uint16_t)1023)); } if (c.cqi_format_ind_short_r15_present) { HANDLE_CODE(c.cqi_format_ind_short_r15.unpack(bref)); } break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::destroy_() { switch (type_) { case types::wideband_cqi_short_r15: c.destroy(); break; case types::subband_cqi_short_r15: c.destroy(); break; default: break; } } void cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::wideband_cqi_short_r15: c.init(); break; case types::subband_cqi_short_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_"); } } cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::cqi_format_ind_short_r15_c_( const cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_& other) { type_ = other.type(); switch (type_) { case types::wideband_cqi_short_r15: c.init(other.c.get()); break; case types::subband_cqi_short_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_"); } } cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_& cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_:: operator=(const cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::wideband_cqi_short_r15: c.set(other.c.get()); break; case types::subband_cqi_short_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_"); } return *this; } void cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::wideband_cqi_short_r15: j.write_fieldname("widebandCQI-Short-r15"); j.start_obj(); if (c.get().csi_report_mode_short_r15_present) { j.write_str("csi-ReportModeShort-r15", c.get().csi_report_mode_short_r15.to_string()); } j.end_obj(); break; case types::subband_cqi_short_r15: j.write_fieldname("subbandCQI-Short-r15"); j.start_obj(); j.write_int("k-r15", c.get().k_r15); j.write_str("periodicityFactor-r15", c.get().periodicity_factor_r15.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_"); } j.end_obj(); } SRSASN_CODE cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::wideband_cqi_short_r15: HANDLE_CODE(bref.pack(c.get().csi_report_mode_short_r15_present, 1)); if (c.get().csi_report_mode_short_r15_present) { HANDLE_CODE(pack_enum(bref, c.get().csi_report_mode_short_r15)); } break; case types::subband_cqi_short_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get().k_r15, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_enum(bref, c.get().periodicity_factor_r15)); break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::wideband_cqi_short_r15: HANDLE_CODE(bref.unpack(c.get().csi_report_mode_short_r15_present, 1)); if (c.get().csi_report_mode_short_r15_present) { HANDLE_CODE(unpack_enum(c.get().csi_report_mode_short_r15, bref)); } break; case types::subband_cqi_short_r15: HANDLE_CODE(unpack_unalign_integer(c.get().k_r15, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_enum(c.get().periodicity_factor_r15, bref)); break; default: log_invalid_choice_id(type_, "cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CrossCarrierSchedulingConfig-r10 ::= SEQUENCE SRSASN_CODE cross_carrier_sched_cfg_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(sched_cell_info_r10.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cross_carrier_sched_cfg_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(sched_cell_info_r10.unpack(bref)); return SRSASN_SUCCESS; } void cross_carrier_sched_cfg_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("schedulingCellInfo-r10"); sched_cell_info_r10.to_json(j); j.end_obj(); } void cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::destroy_() { switch (type_) { case types::own_r10: c.destroy(); break; case types::other_r10: c.destroy(); break; default: break; } } void cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::own_r10: c.init(); break; case types::other_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_"); } } cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::sched_cell_info_r10_c_( const cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_& other) { type_ = other.type(); switch (type_) { case types::own_r10: c.init(other.c.get()); break; case types::other_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_"); } } cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_& cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_:: operator=(const cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::own_r10: c.set(other.c.get()); break; case types::other_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_"); } return *this; } void cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::own_r10: j.write_fieldname("own-r10"); j.start_obj(); j.write_bool("cif-Presence-r10", c.get().cif_presence_r10); j.end_obj(); break; case types::other_r10: j.write_fieldname("other-r10"); j.start_obj(); j.write_int("schedulingCellId-r10", c.get().sched_cell_id_r10); j.write_int("pdsch-Start-r10", c.get().pdsch_start_r10); j.end_obj(); break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_"); } j.end_obj(); } SRSASN_CODE cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::own_r10: HANDLE_CODE(bref.pack(c.get().cif_presence_r10, 1)); break; case types::other_r10: HANDLE_CODE(pack_unalign_integer(bref, c.get().sched_cell_id_r10, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, c.get().pdsch_start_r10, (uint8_t)1, (uint8_t)4)); break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::own_r10: HANDLE_CODE(bref.unpack(c.get().cif_presence_r10, 1)); break; case types::other_r10: HANDLE_CODE(unpack_unalign_integer(c.get().sched_cell_id_r10, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(c.get().pdsch_start_r10, bref, (uint8_t)1, (uint8_t)4)); break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CrossCarrierSchedulingConfig-r13 ::= SEQUENCE SRSASN_CODE cross_carrier_sched_cfg_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(sched_cell_info_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cross_carrier_sched_cfg_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(sched_cell_info_r13.unpack(bref)); return SRSASN_SUCCESS; } void cross_carrier_sched_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("schedulingCellInfo-r13"); sched_cell_info_r13.to_json(j); j.end_obj(); } void cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::destroy_() { switch (type_) { case types::own_r13: c.destroy(); break; case types::other_r13: c.destroy(); break; default: break; } } void cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::own_r13: c.init(); break; case types::other_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_"); } } cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::sched_cell_info_r13_c_( const cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_& other) { type_ = other.type(); switch (type_) { case types::own_r13: c.init(other.c.get()); break; case types::other_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_"); } } cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_& cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_:: operator=(const cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::own_r13: c.set(other.c.get()); break; case types::other_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_"); } return *this; } void cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::own_r13: j.write_fieldname("own-r13"); j.start_obj(); j.write_bool("cif-Presence-r13", c.get().cif_presence_r13); j.end_obj(); break; case types::other_r13: j.write_fieldname("other-r13"); j.start_obj(); j.write_int("schedulingCellId-r13", c.get().sched_cell_id_r13); j.write_int("pdsch-Start-r13", c.get().pdsch_start_r13); j.write_int("cif-InSchedulingCell-r13", c.get().cif_in_sched_cell_r13); j.end_obj(); break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_"); } j.end_obj(); } SRSASN_CODE cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::own_r13: HANDLE_CODE(bref.pack(c.get().cif_presence_r13, 1)); break; case types::other_r13: HANDLE_CODE(pack_unalign_integer(bref, c.get().sched_cell_id_r13, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, c.get().pdsch_start_r13, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pack_unalign_integer(bref, c.get().cif_in_sched_cell_r13, (uint8_t)1, (uint8_t)7)); break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::own_r13: HANDLE_CODE(bref.unpack(c.get().cif_presence_r13, 1)); break; case types::other_r13: HANDLE_CODE(unpack_unalign_integer(c.get().sched_cell_id_r13, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(c.get().pdsch_start_r13, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(unpack_unalign_integer(c.get().cif_in_sched_cell_r13, bref, (uint8_t)1, (uint8_t)7)); break; default: log_invalid_choice_id(type_, "cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DeltaFList-SPUCCH-r15 ::= CHOICE void delta_flist_spucch_r15_c::set(types::options e) { type_ = e; } void delta_flist_spucch_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.delta_f_slot_spucch_format1_r15_present) { j.write_str("deltaF-slotSPUCCH-Format1-r15", c.delta_f_slot_spucch_format1_r15.to_string()); } if (c.delta_f_slot_spucch_format1a_r15_present) { j.write_str("deltaF-slotSPUCCH-Format1a-r15", c.delta_f_slot_spucch_format1a_r15.to_string()); } if (c.delta_f_slot_spucch_format1b_r15_present) { j.write_str("deltaF-slotSPUCCH-Format1b-r15", c.delta_f_slot_spucch_format1b_r15.to_string()); } if (c.delta_f_slot_spucch_format3_r15_present) { j.write_str("deltaF-slotSPUCCH-Format3-r15", c.delta_f_slot_spucch_format3_r15.to_string()); } if (c.delta_f_slot_spucch_rm_format4_r15_present) { j.write_str("deltaF-slotSPUCCH-RM-Format4-r15", c.delta_f_slot_spucch_rm_format4_r15.to_string()); } if (c.delta_f_slot_spucch_tbcc_format4_r15_present) { j.write_str("deltaF-slotSPUCCH-TBCC-Format4-r15", c.delta_f_slot_spucch_tbcc_format4_r15.to_string()); } if (c.delta_f_subslot_spucch_format1and1a_r15_present) { j.write_str("deltaF-subslotSPUCCH-Format1and1a-r15", c.delta_f_subslot_spucch_format1and1a_r15.to_string()); } if (c.delta_f_subslot_spucch_format1b_r15_present) { j.write_str("deltaF-subslotSPUCCH-Format1b-r15", c.delta_f_subslot_spucch_format1b_r15.to_string()); } if (c.delta_f_subslot_spucch_rm_format4_r15_present) { j.write_str("deltaF-subslotSPUCCH-RM-Format4-r15", c.delta_f_subslot_spucch_rm_format4_r15.to_string()); } if (c.delta_f_subslot_spucch_tbcc_format4_r15_present) { j.write_str("deltaF-subslotSPUCCH-TBCC-Format4-r15", c.delta_f_subslot_spucch_tbcc_format4_r15.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "delta_flist_spucch_r15_c"); } j.end_obj(); } SRSASN_CODE delta_flist_spucch_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.delta_f_slot_spucch_format1_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_slot_spucch_format1a_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_slot_spucch_format1b_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_slot_spucch_format3_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_slot_spucch_rm_format4_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_slot_spucch_tbcc_format4_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_subslot_spucch_format1and1a_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_subslot_spucch_format1b_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_subslot_spucch_rm_format4_r15_present, 1)); HANDLE_CODE(bref.pack(c.delta_f_subslot_spucch_tbcc_format4_r15_present, 1)); if (c.delta_f_slot_spucch_format1_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_slot_spucch_format1_r15)); } if (c.delta_f_slot_spucch_format1a_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_slot_spucch_format1a_r15)); } if (c.delta_f_slot_spucch_format1b_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_slot_spucch_format1b_r15)); } if (c.delta_f_slot_spucch_format3_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_slot_spucch_format3_r15)); } if (c.delta_f_slot_spucch_rm_format4_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_slot_spucch_rm_format4_r15)); } if (c.delta_f_slot_spucch_tbcc_format4_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_slot_spucch_tbcc_format4_r15)); } if (c.delta_f_subslot_spucch_format1and1a_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_subslot_spucch_format1and1a_r15)); } if (c.delta_f_subslot_spucch_format1b_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_subslot_spucch_format1b_r15)); } if (c.delta_f_subslot_spucch_rm_format4_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_subslot_spucch_rm_format4_r15)); } if (c.delta_f_subslot_spucch_tbcc_format4_r15_present) { HANDLE_CODE(pack_enum(bref, c.delta_f_subslot_spucch_tbcc_format4_r15)); } break; default: log_invalid_choice_id(type_, "delta_flist_spucch_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE delta_flist_spucch_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.delta_f_slot_spucch_format1_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_slot_spucch_format1a_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_slot_spucch_format1b_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_slot_spucch_format3_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_slot_spucch_rm_format4_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_slot_spucch_tbcc_format4_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_subslot_spucch_format1and1a_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_subslot_spucch_format1b_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_subslot_spucch_rm_format4_r15_present, 1)); HANDLE_CODE(bref.unpack(c.delta_f_subslot_spucch_tbcc_format4_r15_present, 1)); if (c.delta_f_slot_spucch_format1_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_slot_spucch_format1_r15, bref)); } if (c.delta_f_slot_spucch_format1a_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_slot_spucch_format1a_r15, bref)); } if (c.delta_f_slot_spucch_format1b_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_slot_spucch_format1b_r15, bref)); } if (c.delta_f_slot_spucch_format3_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_slot_spucch_format3_r15, bref)); } if (c.delta_f_slot_spucch_rm_format4_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_slot_spucch_rm_format4_r15, bref)); } if (c.delta_f_slot_spucch_tbcc_format4_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_slot_spucch_tbcc_format4_r15, bref)); } if (c.delta_f_subslot_spucch_format1and1a_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_subslot_spucch_format1and1a_r15, bref)); } if (c.delta_f_subslot_spucch_format1b_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_subslot_spucch_format1b_r15, bref)); } if (c.delta_f_subslot_spucch_rm_format4_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_subslot_spucch_rm_format4_r15, bref)); } if (c.delta_f_subslot_spucch_tbcc_format4_r15_present) { HANDLE_CODE(unpack_enum(c.delta_f_subslot_spucch_tbcc_format4_r15, bref)); } break; default: log_invalid_choice_id(type_, "delta_flist_spucch_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // LAA-SCellConfiguration-r13 ::= SEQUENCE SRSASN_CODE laa_scell_cfg_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sf_start_position_r13)); HANDLE_CODE(laa_scell_sf_cfg_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE laa_scell_cfg_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sf_start_position_r13, bref)); HANDLE_CODE(laa_scell_sf_cfg_r13.unpack(bref)); return SRSASN_SUCCESS; } void laa_scell_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("subframeStartPosition-r13", sf_start_position_r13.to_string()); j.write_str("laa-SCellSubframeConfig-r13", laa_scell_sf_cfg_r13.to_string()); j.end_obj(); } // LAA-SCellConfiguration-v1430 ::= SEQUENCE SRSASN_CODE laa_scell_cfg_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cross_carrier_sched_cfg_ul_r14_present, 1)); HANDLE_CODE(bref.pack(lbt_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(pdcch_cfg_laa_r14_present, 1)); HANDLE_CODE(bref.pack(absence_of_any_other_technology_r14_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_aperiodic_v1430_present, 1)); if (cross_carrier_sched_cfg_ul_r14_present) { HANDLE_CODE(cross_carrier_sched_cfg_ul_r14.pack(bref)); } if (lbt_cfg_r14_present) { HANDLE_CODE(lbt_cfg_r14.pack(bref)); } if (pdcch_cfg_laa_r14_present) { HANDLE_CODE(pdcch_cfg_laa_r14.pack(bref)); } if (srs_ul_cfg_ded_aperiodic_v1430_present) { HANDLE_CODE(srs_ul_cfg_ded_aperiodic_v1430.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE laa_scell_cfg_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cross_carrier_sched_cfg_ul_r14_present, 1)); HANDLE_CODE(bref.unpack(lbt_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(pdcch_cfg_laa_r14_present, 1)); HANDLE_CODE(bref.unpack(absence_of_any_other_technology_r14_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_aperiodic_v1430_present, 1)); if (cross_carrier_sched_cfg_ul_r14_present) { HANDLE_CODE(cross_carrier_sched_cfg_ul_r14.unpack(bref)); } if (lbt_cfg_r14_present) { HANDLE_CODE(lbt_cfg_r14.unpack(bref)); } if (pdcch_cfg_laa_r14_present) { HANDLE_CODE(pdcch_cfg_laa_r14.unpack(bref)); } if (srs_ul_cfg_ded_aperiodic_v1430_present) { HANDLE_CODE(srs_ul_cfg_ded_aperiodic_v1430.unpack(bref)); } return SRSASN_SUCCESS; } void laa_scell_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (cross_carrier_sched_cfg_ul_r14_present) { j.write_fieldname("crossCarrierSchedulingConfig-UL-r14"); cross_carrier_sched_cfg_ul_r14.to_json(j); } if (lbt_cfg_r14_present) { j.write_fieldname("lbt-Config-r14"); lbt_cfg_r14.to_json(j); } if (pdcch_cfg_laa_r14_present) { j.write_fieldname("pdcch-ConfigLAA-r14"); pdcch_cfg_laa_r14.to_json(j); } if (absence_of_any_other_technology_r14_present) { j.write_str("absenceOfAnyOtherTechnology-r14", "true"); } if (srs_ul_cfg_ded_aperiodic_v1430_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodic-v1430"); srs_ul_cfg_ded_aperiodic_v1430.to_json(j); } j.end_obj(); } void laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::set(types::options e) { type_ = e; } void laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("crossCarrierSchedulingConfigLAA-UL-r14"); c.cross_carrier_sched_cfg_laa_ul_r14.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_"); } j.end_obj(); } SRSASN_CODE laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.cross_carrier_sched_cfg_laa_ul_r14.pack(bref)); break; default: log_invalid_choice_id(type_, "laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.cross_carrier_sched_cfg_laa_ul_r14.unpack(bref)); break; default: log_invalid_choice_id(type_, "laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // LAA-SCellConfiguration-v1530 ::= SEQUENCE SRSASN_CODE laa_scell_cfg_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(aul_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(pusch_mode_cfg_laa_r15_present, 1)); if (aul_cfg_r15_present) { HANDLE_CODE(aul_cfg_r15.pack(bref)); } if (pusch_mode_cfg_laa_r15_present) { HANDLE_CODE(pusch_mode_cfg_laa_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE laa_scell_cfg_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(aul_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(pusch_mode_cfg_laa_r15_present, 1)); if (aul_cfg_r15_present) { HANDLE_CODE(aul_cfg_r15.unpack(bref)); } if (pusch_mode_cfg_laa_r15_present) { HANDLE_CODE(pusch_mode_cfg_laa_r15.unpack(bref)); } return SRSASN_SUCCESS; } void laa_scell_cfg_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (aul_cfg_r15_present) { j.write_fieldname("aul-Config-r15"); aul_cfg_r15.to_json(j); } if (pusch_mode_cfg_laa_r15_present) { j.write_fieldname("pusch-ModeConfigLAA-r15"); pusch_mode_cfg_laa_r15.to_json(j); } j.end_obj(); } // PDCCH-ConfigSCell-r13 ::= SEQUENCE SRSASN_CODE pdcch_cfg_scell_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(skip_monitoring_dci_format0_minus1_a_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE pdcch_cfg_scell_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(skip_monitoring_dci_format0_minus1_a_r13_present, 1)); return SRSASN_SUCCESS; } void pdcch_cfg_scell_r13_s::to_json(json_writer& j) const { j.start_obj(); if (skip_monitoring_dci_format0_minus1_a_r13_present) { j.write_str("skipMonitoringDCI-format0-1A-r13", "true"); } j.end_obj(); } // PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE SRSASN_CODE pdsch_cfg_ded_scell_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tbs_idx_alt2_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE pdsch_cfg_ded_scell_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tbs_idx_alt2_r14_present, 1)); return SRSASN_SUCCESS; } void pdsch_cfg_ded_scell_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (tbs_idx_alt2_r14_present) { j.write_str("tbsIndexAlt2-r14", "b33"); } j.end_obj(); } // PUCCH-ConfigDedicated-v1370 ::= SEQUENCE SRSASN_CODE pucch_cfg_ded_v1370_s::pack(bit_ref& bref) const { HANDLE_CODE(pucch_format_v1370.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1370_s::unpack(bit_ref& bref) { HANDLE_CODE(pucch_format_v1370.unpack(bref)); return SRSASN_SUCCESS; } void pucch_cfg_ded_v1370_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("pucch-Format-v1370"); pucch_format_v1370.to_json(j); j.end_obj(); } void pucch_cfg_ded_v1370_s::pucch_format_v1370_c_::set(types::options e) { type_ = e; } void pucch_cfg_ded_v1370_s::pucch_format_v1370_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1370_s::pucch_format_v1370_c_"); } j.end_obj(); } SRSASN_CODE pucch_cfg_ded_v1370_s::pucch_format_v1370_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1370_s::pucch_format_v1370_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pucch_cfg_ded_v1370_s::pucch_format_v1370_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "pucch_cfg_ded_v1370_s::pucch_format_v1370_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_scell_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(group_hop_disabled_r10_present, 1)); HANDLE_CODE(bref.pack(dmrs_with_occ_activ_r10_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_scell_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(group_hop_disabled_r10_present, 1)); HANDLE_CODE(bref.unpack(dmrs_with_occ_activ_r10_present, 1)); return SRSASN_SUCCESS; } void pusch_cfg_ded_scell_r10_s::to_json(json_writer& j) const { j.start_obj(); if (group_hop_disabled_r10_present) { j.write_str("groupHoppingDisabled-r10", "true"); } if (dmrs_with_occ_activ_r10_present) { j.write_str("dmrs-WithOCC-Activated-r10", "true"); } j.end_obj(); } // PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_scell_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(enable256_qam_r14_present, 1)); if (enable256_qam_r14_present) { HANDLE_CODE(enable256_qam_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_scell_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(enable256_qam_r14_present, 1)); if (enable256_qam_r14_present) { HANDLE_CODE(enable256_qam_r14.unpack(bref)); } return SRSASN_SUCCESS; } void pusch_cfg_ded_scell_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (enable256_qam_r14_present) { j.write_fieldname("enable256QAM-r14"); enable256_qam_r14.to_json(j); } j.end_obj(); } // PUSCH-ConfigDedicatedScell-v1530 ::= SEQUENCE SRSASN_CODE pusch_cfg_ded_scell_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(uci_on_pusch_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_scell_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(uci_on_pusch_r15.unpack(bref)); return SRSASN_SUCCESS; } void pusch_cfg_ded_scell_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("uci-OnPUSCH-r15"); uci_on_pusch_r15.to_json(j); j.end_obj(); } void pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::set(types::options e) { type_ = e; } void pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("betaOffsetAUL-r15", c.beta_offset_aul_r15); j.end_obj(); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_"); } j.end_obj(); } SRSASN_CODE pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c.beta_offset_aul_r15, (uint8_t)0, (uint8_t)15)); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c.beta_offset_aul_r15, bref, (uint8_t)0, (uint8_t)15)); break; default: log_invalid_choice_id(type_, "pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SchedulingRequestConfigSCell-r13 ::= CHOICE void sched_request_cfg_scell_r13_c::set(types::options e) { type_ = e; } void sched_request_cfg_scell_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_int("sr-PUCCH-ResourceIndex-r13", c.sr_pucch_res_idx_r13); if (c.sr_pucch_res_idx_p1_r13_present) { j.write_int("sr-PUCCH-ResourceIndexP1-r13", c.sr_pucch_res_idx_p1_r13); } j.write_int("sr-ConfigIndex-r13", c.sr_cfg_idx_r13); j.write_str("dsr-TransMax-r13", c.dsr_trans_max_r13.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "sched_request_cfg_scell_r13_c"); } j.end_obj(); } SRSASN_CODE sched_request_cfg_scell_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.sr_pucch_res_idx_p1_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.sr_pucch_res_idx_r13, (uint16_t)0, (uint16_t)2047)); if (c.sr_pucch_res_idx_p1_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.sr_pucch_res_idx_p1_r13, (uint16_t)0, (uint16_t)2047)); } HANDLE_CODE(pack_unalign_integer(bref, c.sr_cfg_idx_r13, (uint8_t)0, (uint8_t)157)); HANDLE_CODE(pack_enum(bref, c.dsr_trans_max_r13)); break; default: log_invalid_choice_id(type_, "sched_request_cfg_scell_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sched_request_cfg_scell_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.sr_pucch_res_idx_p1_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.sr_pucch_res_idx_r13, bref, (uint16_t)0, (uint16_t)2047)); if (c.sr_pucch_res_idx_p1_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.sr_pucch_res_idx_p1_r13, bref, (uint16_t)0, (uint16_t)2047)); } HANDLE_CODE(unpack_unalign_integer(c.sr_cfg_idx_r13, bref, (uint8_t)0, (uint8_t)157)); HANDLE_CODE(unpack_enum(c.dsr_trans_max_r13, bref)); break; default: log_invalid_choice_id(type_, "sched_request_cfg_scell_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SoundingRS-AperiodicSet-r14 ::= SEQUENCE SRSASN_CODE srs_aperiodic_set_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(srs_cc_set_idx_list_r14_present, 1)); if (srs_cc_set_idx_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, srs_cc_set_idx_list_r14, 1, 4)); } HANDLE_CODE(srs_ul_cfg_ded_aperiodic_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE srs_aperiodic_set_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(srs_cc_set_idx_list_r14_present, 1)); if (srs_cc_set_idx_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(srs_cc_set_idx_list_r14, bref, 1, 4)); } HANDLE_CODE(srs_ul_cfg_ded_aperiodic_r14.unpack(bref)); return SRSASN_SUCCESS; } void srs_aperiodic_set_r14_s::to_json(json_writer& j) const { j.start_obj(); if (srs_cc_set_idx_list_r14_present) { j.start_array("srs-CC-SetIndexList-r14"); for (uint32_t i1 = 0; i1 < srs_cc_set_idx_list_r14.size(); ++i1) { srs_cc_set_idx_list_r14[i1].to_json(j); } j.end_array(); } j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodic-r14"); srs_ul_cfg_ded_aperiodic_r14.to_json(j); j.end_obj(); } // SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE SRSASN_CODE srs_aperiodic_set_up_pts_ext_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(srs_cc_set_idx_list_r14_present, 1)); if (srs_cc_set_idx_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, srs_cc_set_idx_list_r14, 1, 4)); } HANDLE_CODE(srs_ul_cfg_ded_aperiodic_up_pts_ext_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE srs_aperiodic_set_up_pts_ext_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(srs_cc_set_idx_list_r14_present, 1)); if (srs_cc_set_idx_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(srs_cc_set_idx_list_r14, bref, 1, 4)); } HANDLE_CODE(srs_ul_cfg_ded_aperiodic_up_pts_ext_r14.unpack(bref)); return SRSASN_SUCCESS; } void srs_aperiodic_set_up_pts_ext_r14_s::to_json(json_writer& j) const { j.start_obj(); if (srs_cc_set_idx_list_r14_present) { j.start_array("srs-CC-SetIndexList-r14"); for (uint32_t i1 = 0; i1 < srs_cc_set_idx_list_r14.size(); ++i1) { srs_cc_set_idx_list_r14[i1].to_json(j); } j.end_array(); } j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14"); srs_ul_cfg_ded_aperiodic_up_pts_ext_r14.to_json(j); j.end_obj(); } // TPC-PDCCH-ConfigSCell-r13 ::= CHOICE void tpc_pdcch_cfg_scell_r13_c::set(types::options e) { type_ = e; } void tpc_pdcch_cfg_scell_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("tpc-Index-PUCCH-SCell-r13"); c.tpc_idx_pucch_scell_r13.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "tpc_pdcch_cfg_scell_r13_c"); } j.end_obj(); } SRSASN_CODE tpc_pdcch_cfg_scell_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.tpc_idx_pucch_scell_r13.pack(bref)); break; default: log_invalid_choice_id(type_, "tpc_pdcch_cfg_scell_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE tpc_pdcch_cfg_scell_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.tpc_idx_pucch_scell_r13.unpack(bref)); break; default: log_invalid_choice_id(type_, "tpc_pdcch_cfg_scell_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE SRSASN_CODE ul_pusch_less_pwr_ctrl_ded_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p0_ue_periodic_srs_r14_present, 1)); HANDLE_CODE(bref.pack(p0_ue_aperiodic_srs_r14_present, 1)); if (p0_ue_periodic_srs_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, p0_ue_periodic_srs_r14, (int8_t)-8, (int8_t)7)); } if (p0_ue_aperiodic_srs_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, p0_ue_aperiodic_srs_r14, (int8_t)-8, (int8_t)7)); } HANDLE_CODE(bref.pack(accumulation_enabled_r14, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pusch_less_pwr_ctrl_ded_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p0_ue_periodic_srs_r14_present, 1)); HANDLE_CODE(bref.unpack(p0_ue_aperiodic_srs_r14_present, 1)); if (p0_ue_periodic_srs_r14_present) { HANDLE_CODE(unpack_unalign_integer(p0_ue_periodic_srs_r14, bref, (int8_t)-8, (int8_t)7)); } if (p0_ue_aperiodic_srs_r14_present) { HANDLE_CODE(unpack_unalign_integer(p0_ue_aperiodic_srs_r14, bref, (int8_t)-8, (int8_t)7)); } HANDLE_CODE(bref.unpack(accumulation_enabled_r14, 1)); return SRSASN_SUCCESS; } void ul_pusch_less_pwr_ctrl_ded_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (p0_ue_periodic_srs_r14_present) { j.write_int("p0-UE-PeriodicSRS-r14", p0_ue_periodic_srs_r14); } if (p0_ue_aperiodic_srs_r14_present) { j.write_int("p0-UE-AperiodicSRS-r14", p0_ue_aperiodic_srs_r14); } j.write_bool("accumulationEnabled-r14", accumulation_enabled_r14); j.end_obj(); } // UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_ded_scell_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p_srs_offset_ap_r10_present, 1)); HANDLE_CODE(bref.pack(filt_coef_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, p0_ue_pusch_r10, (int8_t)-8, (int8_t)7)); HANDLE_CODE(pack_enum(bref, delta_mcs_enabled_r10)); HANDLE_CODE(bref.pack(accumulation_enabled_r10, 1)); HANDLE_CODE(pack_unalign_integer(bref, p_srs_offset_r10, (uint8_t)0, (uint8_t)15)); if (p_srs_offset_ap_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, p_srs_offset_ap_r10, (uint8_t)0, (uint8_t)15)); } if (filt_coef_r10_present) { HANDLE_CODE(pack_enum(bref, filt_coef_r10)); } HANDLE_CODE(pack_enum(bref, pathloss_ref_linking_r10)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_scell_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p_srs_offset_ap_r10_present, 1)); HANDLE_CODE(bref.unpack(filt_coef_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(p0_ue_pusch_r10, bref, (int8_t)-8, (int8_t)7)); HANDLE_CODE(unpack_enum(delta_mcs_enabled_r10, bref)); HANDLE_CODE(bref.unpack(accumulation_enabled_r10, 1)); HANDLE_CODE(unpack_unalign_integer(p_srs_offset_r10, bref, (uint8_t)0, (uint8_t)15)); if (p_srs_offset_ap_r10_present) { HANDLE_CODE(unpack_unalign_integer(p_srs_offset_ap_r10, bref, (uint8_t)0, (uint8_t)15)); } if (filt_coef_r10_present) { HANDLE_CODE(unpack_enum(filt_coef_r10, bref)); } HANDLE_CODE(unpack_enum(pathloss_ref_linking_r10, bref)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_ded_scell_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p0-UE-PUSCH-r10", p0_ue_pusch_r10); j.write_str("deltaMCS-Enabled-r10", delta_mcs_enabled_r10.to_string()); j.write_bool("accumulationEnabled-r10", accumulation_enabled_r10); j.write_int("pSRS-Offset-r10", p_srs_offset_r10); if (p_srs_offset_ap_r10_present) { j.write_int("pSRS-OffsetAp-r10", p_srs_offset_ap_r10); } if (filt_coef_r10_present) { j.write_str("filterCoefficient-r10", filt_coef_r10.to_string()); } j.write_str("pathlossReferenceLinking-r10", pathloss_ref_linking_r10.to_string()); j.end_obj(); } // UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_ded_scell_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(delta_tx_d_offset_list_pucch_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, p0_ue_pucch, (int8_t)-8, (int8_t)7)); if (delta_tx_d_offset_list_pucch_r10_present) { HANDLE_CODE(delta_tx_d_offset_list_pucch_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_ded_scell_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(delta_tx_d_offset_list_pucch_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(p0_ue_pucch, bref, (int8_t)-8, (int8_t)7)); if (delta_tx_d_offset_list_pucch_r10_present) { HANDLE_CODE(delta_tx_d_offset_list_pucch_r10.unpack(bref)); } return SRSASN_SUCCESS; } void ul_pwr_ctrl_ded_scell_v1310_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p0-UE-PUCCH", p0_ue_pucch); if (delta_tx_d_offset_list_pucch_r10_present) { j.write_fieldname("deltaTxD-OffsetListPUCCH-r10"); delta_tx_d_offset_list_pucch_r10.to_json(j); } j.end_obj(); } // AntennaInfoCommon ::= SEQUENCE SRSASN_CODE ant_info_common_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, ant_ports_count)); return SRSASN_SUCCESS; } SRSASN_CODE ant_info_common_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(ant_ports_count, bref)); return SRSASN_SUCCESS; } void ant_info_common_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("antennaPortsCount", ant_ports_count.to_string()); j.end_obj(); } // HighSpeedConfigSCell-r14 ::= SEQUENCE SRSASN_CODE high_speed_cfg_scell_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(high_speed_enhanced_demod_flag_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE high_speed_cfg_scell_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(high_speed_enhanced_demod_flag_r14_present, 1)); return SRSASN_SUCCESS; } void high_speed_cfg_scell_r14_s::to_json(json_writer& j) const { j.start_obj(); if (high_speed_enhanced_demod_flag_r14_present) { j.write_str("highSpeedEnhancedDemodulationFlag-r14", "true"); } j.end_obj(); } // MAC-MainConfigSCell-r11 ::= SEQUENCE SRSASN_CODE mac_main_cfg_scell_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(stag_id_r11_present, 1)); if (stag_id_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, stag_id_r11, (uint8_t)1, (uint8_t)3)); } return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_scell_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(stag_id_r11_present, 1)); if (stag_id_r11_present) { HANDLE_CODE(unpack_unalign_integer(stag_id_r11, bref, (uint8_t)1, (uint8_t)3)); } return SRSASN_SUCCESS; } void mac_main_cfg_scell_r11_s::to_json(json_writer& j) const { j.start_obj(); if (stag_id_r11_present) { j.write_int("stag-Id-r11", stag_id_r11); } j.end_obj(); } // PRACH-Config ::= SEQUENCE SRSASN_CODE prach_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(prach_cfg_info_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, root_seq_idx, (uint16_t)0, (uint16_t)837)); if (prach_cfg_info_present) { HANDLE_CODE(prach_cfg_info.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(prach_cfg_info_present, 1)); HANDLE_CODE(unpack_unalign_integer(root_seq_idx, bref, (uint16_t)0, (uint16_t)837)); if (prach_cfg_info_present) { HANDLE_CODE(prach_cfg_info.unpack(bref)); } return SRSASN_SUCCESS; } void prach_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rootSequenceIndex", root_seq_idx); if (prach_cfg_info_present) { j.write_fieldname("prach-ConfigInfo"); prach_cfg_info.to_json(j); } j.end_obj(); } // PRACH-ConfigSCell-r10 ::= SEQUENCE SRSASN_CODE prach_cfg_scell_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, prach_cfg_idx_r10, (uint8_t)0, (uint8_t)63)); return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_scell_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(prach_cfg_idx_r10, bref, (uint8_t)0, (uint8_t)63)); return SRSASN_SUCCESS; } void prach_cfg_scell_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("prach-ConfigIndex-r10", prach_cfg_idx_r10); j.end_obj(); } // PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE SRSASN_CODE phys_cfg_ded_scell_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(non_ul_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10_present, 1)); if (non_ul_cfg_r10_present) { HANDLE_CODE(bref.pack(non_ul_cfg_r10.ant_info_r10_present, 1)); HANDLE_CODE(bref.pack(non_ul_cfg_r10.cross_carrier_sched_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(non_ul_cfg_r10.csi_rs_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(non_ul_cfg_r10.pdsch_cfg_ded_r10_present, 1)); if (non_ul_cfg_r10.ant_info_r10_present) { HANDLE_CODE(non_ul_cfg_r10.ant_info_r10.pack(bref)); } if (non_ul_cfg_r10.cross_carrier_sched_cfg_r10_present) { HANDLE_CODE(non_ul_cfg_r10.cross_carrier_sched_cfg_r10.pack(bref)); } if (non_ul_cfg_r10.csi_rs_cfg_r10_present) { HANDLE_CODE(non_ul_cfg_r10.csi_rs_cfg_r10.pack(bref)); } if (non_ul_cfg_r10.pdsch_cfg_ded_r10_present) { HANDLE_CODE(non_ul_cfg_r10.pdsch_cfg_ded_r10.pack(bref)); } } if (ul_cfg_r10_present) { HANDLE_CODE(bref.pack(ul_cfg_r10.ant_info_ul_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.pusch_cfg_ded_scell_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.ul_pwr_ctrl_ded_scell_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.cqi_report_cfg_scell_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.srs_ul_cfg_ded_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.srs_ul_cfg_ded_v1020_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.srs_ul_cfg_ded_aperiodic_r10_present, 1)); if (ul_cfg_r10.ant_info_ul_r10_present) { HANDLE_CODE(ul_cfg_r10.ant_info_ul_r10.pack(bref)); } if (ul_cfg_r10.pusch_cfg_ded_scell_r10_present) { HANDLE_CODE(ul_cfg_r10.pusch_cfg_ded_scell_r10.pack(bref)); } if (ul_cfg_r10.ul_pwr_ctrl_ded_scell_r10_present) { HANDLE_CODE(ul_cfg_r10.ul_pwr_ctrl_ded_scell_r10.pack(bref)); } if (ul_cfg_r10.cqi_report_cfg_scell_r10_present) { HANDLE_CODE(ul_cfg_r10.cqi_report_cfg_scell_r10.pack(bref)); } if (ul_cfg_r10.srs_ul_cfg_ded_r10_present) { HANDLE_CODE(ul_cfg_r10.srs_ul_cfg_ded_r10.pack(bref)); } if (ul_cfg_r10.srs_ul_cfg_ded_v1020_present) { HANDLE_CODE(ul_cfg_r10.srs_ul_cfg_ded_v1020.pack(bref)); } if (ul_cfg_r10.srs_ul_cfg_ded_aperiodic_r10_present) { HANDLE_CODE(ul_cfg_r10.srs_ul_cfg_ded_aperiodic_r10.pack(bref)); } } if (ext) { ext_groups_header group_flags(8); rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_release_list_r11_present != (csi_rs_cfg_nzp_to_release_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= csi_rs_cfg_nzp_to_release_list_r11_present; rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_add_mod_list_r11_present != (csi_rs_cfg_nzp_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= csi_rs_cfg_nzp_to_add_mod_list_r11_present; rrc_asn1_warn_assert(csi_rs_cfg_zp_to_release_list_r11_present != (csi_rs_cfg_zp_to_release_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= csi_rs_cfg_zp_to_release_list_r11_present; rrc_asn1_warn_assert(csi_rs_cfg_zp_to_add_mod_list_r11_present != (csi_rs_cfg_zp_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= csi_rs_cfg_zp_to_add_mod_list_r11_present; rrc_asn1_warn_assert(epdcch_cfg_r11_present != (epdcch_cfg_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= epdcch_cfg_r11_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1130_present != (pdsch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); group_flags[0] |= pdsch_cfg_ded_v1130_present; rrc_asn1_warn_assert(cqi_report_cfg_v1130_present != (cqi_report_cfg_v1130.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cqi_report_cfg_v1130_present; rrc_asn1_warn_assert(pusch_cfg_ded_v1130_present != (pusch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); group_flags[0] |= pusch_cfg_ded_v1130_present; rrc_asn1_warn_assert(ul_pwr_ctrl_ded_scell_v1130_present != (ul_pwr_ctrl_ded_scell_v1130.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ul_pwr_ctrl_ded_scell_v1130_present; rrc_asn1_warn_assert(ant_info_v1250_present != (ant_info_v1250.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ant_info_v1250_present; rrc_asn1_warn_assert(eimta_main_cfg_scell_r12_present != (eimta_main_cfg_scell_r12.get() != NULL), __FILE__, __LINE__); group_flags[1] |= eimta_main_cfg_scell_r12_present; rrc_asn1_warn_assert(cqi_report_cfg_scell_v1250_present != (cqi_report_cfg_scell_v1250.get() != NULL), __FILE__, __LINE__); group_flags[1] |= cqi_report_cfg_scell_v1250_present; rrc_asn1_warn_assert(ul_pwr_ctrl_ded_scell_v1250_present != (ul_pwr_ctrl_ded_scell_v1250.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ul_pwr_ctrl_ded_scell_v1250_present; rrc_asn1_warn_assert(csi_rs_cfg_v1250_present != (csi_rs_cfg_v1250.get() != NULL), __FILE__, __LINE__); group_flags[1] |= csi_rs_cfg_v1250_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1280_present != (pdsch_cfg_ded_v1280.get() != NULL), __FILE__, __LINE__); group_flags[2] |= pdsch_cfg_ded_v1280_present; group_flags[3] |= pucch_cell_r13_present; rrc_asn1_warn_assert(pucch_scell_present != (pucch_scell.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pucch_scell_present; rrc_asn1_warn_assert(cross_carrier_sched_cfg_r13_present != (cross_carrier_sched_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= cross_carrier_sched_cfg_r13_present; rrc_asn1_warn_assert(pdcch_cfg_scell_r13_present != (pdcch_cfg_scell_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pdcch_cfg_scell_r13_present; rrc_asn1_warn_assert(cqi_report_cfg_v1310_present != (cqi_report_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= cqi_report_cfg_v1310_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1310_present != (pdsch_cfg_ded_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pdsch_cfg_ded_v1310_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_v1310_present != (srs_ul_cfg_ded_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= srs_ul_cfg_ded_v1310_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_up_pts_ext_r13_present != (srs_ul_cfg_ded_up_pts_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= srs_ul_cfg_ded_up_pts_ext_r13_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_v1310_present != (srs_ul_cfg_ded_aperiodic_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= srs_ul_cfg_ded_aperiodic_v1310_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present != (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present; rrc_asn1_warn_assert(csi_rs_cfg_v1310_present != (csi_rs_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= csi_rs_cfg_v1310_present; rrc_asn1_warn_assert(laa_scell_cfg_r13_present != (laa_scell_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= laa_scell_cfg_r13_present; rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present != (csi_rs_cfg_nzp_to_add_mod_list_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present; rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_release_list_ext_r13_present != (csi_rs_cfg_nzp_to_release_list_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= csi_rs_cfg_nzp_to_release_list_ext_r13_present; rrc_asn1_warn_assert(cqi_report_cfg_v1320_present != (cqi_report_cfg_v1320.get() != NULL), __FILE__, __LINE__); group_flags[4] |= cqi_report_cfg_v1320_present; rrc_asn1_warn_assert(laa_scell_cfg_v1430_present != (laa_scell_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[5] |= laa_scell_cfg_v1430_present; rrc_asn1_warn_assert(type_b_srs_tpc_pdcch_cfg_r14_present != (type_b_srs_tpc_pdcch_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= type_b_srs_tpc_pdcch_cfg_r14_present; rrc_asn1_warn_assert(ul_pusch_less_pwr_ctrl_ded_v1430_present != (ul_pusch_less_pwr_ctrl_ded_v1430.get() != NULL), __FILE__, __LINE__); group_flags[5] |= ul_pusch_less_pwr_ctrl_ded_v1430_present; rrc_asn1_warn_assert(srs_ul_periodic_cfg_ded_list_r14_present != (srs_ul_periodic_cfg_ded_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= srs_ul_periodic_cfg_ded_list_r14_present; rrc_asn1_warn_assert(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present != (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present; rrc_asn1_warn_assert(srs_ul_aperiodic_cfg_ded_list_r14_present != (srs_ul_aperiodic_cfg_ded_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= srs_ul_aperiodic_cfg_ded_list_r14_present; rrc_asn1_warn_assert(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present != (srs_ul_cfg_ded_ap_up_pts_ext_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present; rrc_asn1_warn_assert(must_cfg_r14_present != (must_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= must_cfg_r14_present; rrc_asn1_warn_assert(pusch_cfg_ded_v1430_present != (pusch_cfg_ded_v1430.get() != NULL), __FILE__, __LINE__); group_flags[5] |= pusch_cfg_ded_v1430_present; rrc_asn1_warn_assert(csi_rs_cfg_v1430_present != (csi_rs_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[5] |= csi_rs_cfg_v1430_present; rrc_asn1_warn_assert(csi_rs_cfg_zp_ap_list_r14_present != (csi_rs_cfg_zp_ap_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= csi_rs_cfg_zp_ap_list_r14_present; rrc_asn1_warn_assert(cqi_report_cfg_v1430_present != (cqi_report_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[5] |= cqi_report_cfg_v1430_present; group_flags[5] |= semi_open_loop_r14_present; rrc_asn1_warn_assert(pdsch_cfg_ded_scell_v1430_present != (pdsch_cfg_ded_scell_v1430.get() != NULL), __FILE__, __LINE__); group_flags[5] |= pdsch_cfg_ded_scell_v1430_present; rrc_asn1_warn_assert(csi_rs_cfg_v1480_present != (csi_rs_cfg_v1480.get() != NULL), __FILE__, __LINE__); group_flags[6] |= csi_rs_cfg_v1480_present; rrc_asn1_warn_assert(phys_cfg_ded_stti_r15_present != (phys_cfg_ded_stti_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= phys_cfg_ded_stti_r15_present; rrc_asn1_warn_assert(pdsch_cfg_ded_v1530_present != (pdsch_cfg_ded_v1530.get() != NULL), __FILE__, __LINE__); group_flags[7] |= pdsch_cfg_ded_v1530_present; rrc_asn1_warn_assert(cqi_report_cfg_v1530_present != (cqi_report_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[7] |= cqi_report_cfg_v1530_present; rrc_asn1_warn_assert(cqi_report_cfg_scell_r15_present != (cqi_report_cfg_scell_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= cqi_report_cfg_scell_r15_present; rrc_asn1_warn_assert(cqi_short_cfg_scell_r15_present != (cqi_short_cfg_scell_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= cqi_short_cfg_scell_r15_present; rrc_asn1_warn_assert(csi_rs_cfg_v1530_present != (csi_rs_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[7] |= csi_rs_cfg_v1530_present; rrc_asn1_warn_assert(ul_pwr_ctrl_ded_scell_v1530_present != (ul_pwr_ctrl_ded_scell_v1530.get() != NULL), __FILE__, __LINE__); group_flags[7] |= ul_pwr_ctrl_ded_scell_v1530_present; rrc_asn1_warn_assert(laa_scell_cfg_v1530_present != (laa_scell_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[7] |= laa_scell_cfg_v1530_present; rrc_asn1_warn_assert(pusch_cfg_ded_v1530_present != (pusch_cfg_ded_v1530.get() != NULL), __FILE__, __LINE__); group_flags[7] |= pusch_cfg_ded_v1530_present; rrc_asn1_warn_assert(semi_static_cfi_cfg_r15_present != (semi_static_cfi_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= semi_static_cfi_cfg_r15_present; rrc_asn1_warn_assert(blind_pdsch_repeat_cfg_r15_present != (blind_pdsch_repeat_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= blind_pdsch_repeat_cfg_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_zp_to_release_list_r11_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_zp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.pack(epdcch_cfg_r11_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_ded_scell_v1130_present, 1)); if (csi_rs_cfg_nzp_to_release_list_r11_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *csi_rs_cfg_nzp_to_release_list_r11, 1, 3, UnalignedIntegerPacker(1, 3))); } if (csi_rs_cfg_nzp_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *csi_rs_cfg_nzp_to_add_mod_list_r11, 1, 3)); } if (csi_rs_cfg_zp_to_release_list_r11_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *csi_rs_cfg_zp_to_release_list_r11, 1, 4, UnalignedIntegerPacker(1, 4))); } if (csi_rs_cfg_zp_to_add_mod_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *csi_rs_cfg_zp_to_add_mod_list_r11, 1, 4)); } if (epdcch_cfg_r11_present) { HANDLE_CODE(epdcch_cfg_r11->pack(bref)); } if (pdsch_cfg_ded_v1130_present) { HANDLE_CODE(pdsch_cfg_ded_v1130->pack(bref)); } if (cqi_report_cfg_v1130_present) { HANDLE_CODE(cqi_report_cfg_v1130->pack(bref)); } if (pusch_cfg_ded_v1130_present) { HANDLE_CODE(pusch_cfg_ded_v1130->pack(bref)); } if (ul_pwr_ctrl_ded_scell_v1130_present) { HANDLE_CODE(ul_pwr_ctrl_ded_scell_v1130->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ant_info_v1250_present, 1)); HANDLE_CODE(bref.pack(eimta_main_cfg_scell_r12_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_scell_v1250_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_ded_scell_v1250_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_v1250_present, 1)); if (ant_info_v1250_present) { HANDLE_CODE(ant_info_v1250->pack(bref)); } if (eimta_main_cfg_scell_r12_present) { HANDLE_CODE(eimta_main_cfg_scell_r12->pack(bref)); } if (cqi_report_cfg_scell_v1250_present) { HANDLE_CODE(cqi_report_cfg_scell_v1250->pack(bref)); } if (ul_pwr_ctrl_ded_scell_v1250_present) { HANDLE_CODE(ul_pwr_ctrl_ded_scell_v1250->pack(bref)); } if (csi_rs_cfg_v1250_present) { HANDLE_CODE(csi_rs_cfg_v1250->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1280_present, 1)); if (pdsch_cfg_ded_v1280_present) { HANDLE_CODE(pdsch_cfg_ded_v1280->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pucch_cell_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_scell_present, 1)); HANDLE_CODE(bref.pack(cross_carrier_sched_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(pdcch_cfg_scell_r13_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1310_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_v1310_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_up_pts_ext_r13_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_aperiodic_v1310_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(laa_scell_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_nzp_to_release_list_ext_r13_present, 1)); if (pucch_scell_present) { HANDLE_CODE(pucch_scell->pack(bref)); } if (cross_carrier_sched_cfg_r13_present) { HANDLE_CODE(cross_carrier_sched_cfg_r13->pack(bref)); } if (pdcch_cfg_scell_r13_present) { HANDLE_CODE(pdcch_cfg_scell_r13->pack(bref)); } if (cqi_report_cfg_v1310_present) { HANDLE_CODE(cqi_report_cfg_v1310->pack(bref)); } if (pdsch_cfg_ded_v1310_present) { HANDLE_CODE(pdsch_cfg_ded_v1310->pack(bref)); } if (srs_ul_cfg_ded_v1310_present) { HANDLE_CODE(srs_ul_cfg_ded_v1310->pack(bref)); } if (srs_ul_cfg_ded_up_pts_ext_r13_present) { HANDLE_CODE(srs_ul_cfg_ded_up_pts_ext_r13->pack(bref)); } if (srs_ul_cfg_ded_aperiodic_v1310_present) { HANDLE_CODE(srs_ul_cfg_ded_aperiodic_v1310->pack(bref)); } if (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present) { HANDLE_CODE(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13->pack(bref)); } if (csi_rs_cfg_v1310_present) { HANDLE_CODE(csi_rs_cfg_v1310->pack(bref)); } if (laa_scell_cfg_r13_present) { HANDLE_CODE(laa_scell_cfg_r13->pack(bref)); } if (csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *csi_rs_cfg_nzp_to_add_mod_list_ext_r13, 1, 21)); } if (csi_rs_cfg_nzp_to_release_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *csi_rs_cfg_nzp_to_release_list_ext_r13, 1, 21, UnalignedIntegerPacker(4, 24))); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cqi_report_cfg_v1320_present, 1)); if (cqi_report_cfg_v1320_present) { HANDLE_CODE(cqi_report_cfg_v1320->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(laa_scell_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(type_b_srs_tpc_pdcch_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(ul_pusch_less_pwr_ctrl_ded_v1430_present, 1)); HANDLE_CODE(bref.pack(srs_ul_periodic_cfg_ded_list_r14_present, 1)); HANDLE_CODE(bref.pack(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present, 1)); HANDLE_CODE(bref.pack(srs_ul_aperiodic_cfg_ded_list_r14_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present, 1)); HANDLE_CODE(bref.pack(must_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_v1430_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_zp_ap_list_r14_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(semi_open_loop_r14_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_ded_scell_v1430_present, 1)); if (laa_scell_cfg_v1430_present) { HANDLE_CODE(laa_scell_cfg_v1430->pack(bref)); } if (type_b_srs_tpc_pdcch_cfg_r14_present) { HANDLE_CODE(type_b_srs_tpc_pdcch_cfg_r14->pack(bref)); } if (ul_pusch_less_pwr_ctrl_ded_v1430_present) { HANDLE_CODE(ul_pusch_less_pwr_ctrl_ded_v1430->pack(bref)); } if (srs_ul_periodic_cfg_ded_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srs_ul_periodic_cfg_ded_list_r14, 1, 2)); } if (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srs_ul_periodic_cfg_ded_up_pts_ext_list_r14, 1, 4)); } if (srs_ul_aperiodic_cfg_ded_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srs_ul_aperiodic_cfg_ded_list_r14, 1, 2)); } if (srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *srs_ul_cfg_ded_ap_up_pts_ext_list_r14, 1, 4)); } if (must_cfg_r14_present) { HANDLE_CODE(must_cfg_r14->pack(bref)); } if (pusch_cfg_ded_v1430_present) { HANDLE_CODE(pusch_cfg_ded_v1430->pack(bref)); } if (csi_rs_cfg_v1430_present) { HANDLE_CODE(csi_rs_cfg_v1430->pack(bref)); } if (csi_rs_cfg_zp_ap_list_r14_present) { HANDLE_CODE(csi_rs_cfg_zp_ap_list_r14->pack(bref)); } if (cqi_report_cfg_v1430_present) { HANDLE_CODE(cqi_report_cfg_v1430->pack(bref)); } if (semi_open_loop_r14_present) { HANDLE_CODE(bref.pack(semi_open_loop_r14, 1)); } if (pdsch_cfg_ded_scell_v1430_present) { HANDLE_CODE(pdsch_cfg_ded_scell_v1430->pack(bref)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csi_rs_cfg_v1480_present, 1)); if (csi_rs_cfg_v1480_present) { HANDLE_CODE(csi_rs_cfg_v1480->pack(bref)); } } if (group_flags[7]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(phys_cfg_ded_stti_r15_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(cqi_report_cfg_scell_r15_present, 1)); HANDLE_CODE(bref.pack(cqi_short_cfg_scell_r15_present, 1)); HANDLE_CODE(bref.pack(csi_rs_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_ded_scell_v1530_present, 1)); HANDLE_CODE(bref.pack(laa_scell_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.pack(semi_static_cfi_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(blind_pdsch_repeat_cfg_r15_present, 1)); if (phys_cfg_ded_stti_r15_present) { HANDLE_CODE(phys_cfg_ded_stti_r15->pack(bref)); } if (pdsch_cfg_ded_v1530_present) { HANDLE_CODE(pdsch_cfg_ded_v1530->pack(bref)); } if (cqi_report_cfg_v1530_present) { HANDLE_CODE(cqi_report_cfg_v1530->pack(bref)); } if (cqi_report_cfg_scell_r15_present) { HANDLE_CODE(cqi_report_cfg_scell_r15->pack(bref)); } if (cqi_short_cfg_scell_r15_present) { HANDLE_CODE(cqi_short_cfg_scell_r15->pack(bref)); } if (csi_rs_cfg_v1530_present) { HANDLE_CODE(csi_rs_cfg_v1530->pack(bref)); } if (ul_pwr_ctrl_ded_scell_v1530_present) { HANDLE_CODE(ul_pwr_ctrl_ded_scell_v1530->pack(bref)); } if (laa_scell_cfg_v1530_present) { HANDLE_CODE(laa_scell_cfg_v1530->pack(bref)); } if (pusch_cfg_ded_v1530_present) { HANDLE_CODE(pusch_cfg_ded_v1530->pack(bref)); } if (semi_static_cfi_cfg_r15_present) { HANDLE_CODE(semi_static_cfi_cfg_r15->pack(bref)); } if (blind_pdsch_repeat_cfg_r15_present) { HANDLE_CODE(blind_pdsch_repeat_cfg_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_scell_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(non_ul_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10_present, 1)); if (non_ul_cfg_r10_present) { HANDLE_CODE(bref.unpack(non_ul_cfg_r10.ant_info_r10_present, 1)); HANDLE_CODE(bref.unpack(non_ul_cfg_r10.cross_carrier_sched_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(non_ul_cfg_r10.csi_rs_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(non_ul_cfg_r10.pdsch_cfg_ded_r10_present, 1)); if (non_ul_cfg_r10.ant_info_r10_present) { HANDLE_CODE(non_ul_cfg_r10.ant_info_r10.unpack(bref)); } if (non_ul_cfg_r10.cross_carrier_sched_cfg_r10_present) { HANDLE_CODE(non_ul_cfg_r10.cross_carrier_sched_cfg_r10.unpack(bref)); } if (non_ul_cfg_r10.csi_rs_cfg_r10_present) { HANDLE_CODE(non_ul_cfg_r10.csi_rs_cfg_r10.unpack(bref)); } if (non_ul_cfg_r10.pdsch_cfg_ded_r10_present) { HANDLE_CODE(non_ul_cfg_r10.pdsch_cfg_ded_r10.unpack(bref)); } } if (ul_cfg_r10_present) { HANDLE_CODE(bref.unpack(ul_cfg_r10.ant_info_ul_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.pusch_cfg_ded_scell_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.ul_pwr_ctrl_ded_scell_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.cqi_report_cfg_scell_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.srs_ul_cfg_ded_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.srs_ul_cfg_ded_v1020_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.srs_ul_cfg_ded_aperiodic_r10_present, 1)); if (ul_cfg_r10.ant_info_ul_r10_present) { HANDLE_CODE(ul_cfg_r10.ant_info_ul_r10.unpack(bref)); } if (ul_cfg_r10.pusch_cfg_ded_scell_r10_present) { HANDLE_CODE(ul_cfg_r10.pusch_cfg_ded_scell_r10.unpack(bref)); } if (ul_cfg_r10.ul_pwr_ctrl_ded_scell_r10_present) { HANDLE_CODE(ul_cfg_r10.ul_pwr_ctrl_ded_scell_r10.unpack(bref)); } if (ul_cfg_r10.cqi_report_cfg_scell_r10_present) { HANDLE_CODE(ul_cfg_r10.cqi_report_cfg_scell_r10.unpack(bref)); } if (ul_cfg_r10.srs_ul_cfg_ded_r10_present) { HANDLE_CODE(ul_cfg_r10.srs_ul_cfg_ded_r10.unpack(bref)); } if (ul_cfg_r10.srs_ul_cfg_ded_v1020_present) { HANDLE_CODE(ul_cfg_r10.srs_ul_cfg_ded_v1020.unpack(bref)); } if (ul_cfg_r10.srs_ul_cfg_ded_aperiodic_r10_present) { HANDLE_CODE(ul_cfg_r10.srs_ul_cfg_ded_aperiodic_r10.unpack(bref)); } } if (ext) { ext_groups_header group_flags(8); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_zp_to_release_list_r11_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_zp_to_add_mod_list_r11_present, 1)); HANDLE_CODE(bref.unpack(epdcch_cfg_r11_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_v1130_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_ded_scell_v1130_present, 1)); if (csi_rs_cfg_nzp_to_release_list_r11_present) { csi_rs_cfg_nzp_to_release_list_r11 = make_copy_ptr(csi_rs_cfg_nzp_to_release_list_r11_l()); HANDLE_CODE( unpack_dyn_seq_of(*csi_rs_cfg_nzp_to_release_list_r11, bref, 1, 3, UnalignedIntegerPacker(1, 3))); } if (csi_rs_cfg_nzp_to_add_mod_list_r11_present) { csi_rs_cfg_nzp_to_add_mod_list_r11 = make_copy_ptr(csi_rs_cfg_nzp_to_add_mod_list_r11_l()); HANDLE_CODE(unpack_dyn_seq_of(*csi_rs_cfg_nzp_to_add_mod_list_r11, bref, 1, 3)); } if (csi_rs_cfg_zp_to_release_list_r11_present) { csi_rs_cfg_zp_to_release_list_r11 = make_copy_ptr(csi_rs_cfg_zp_to_release_list_r11_l()); HANDLE_CODE( unpack_dyn_seq_of(*csi_rs_cfg_zp_to_release_list_r11, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (csi_rs_cfg_zp_to_add_mod_list_r11_present) { csi_rs_cfg_zp_to_add_mod_list_r11 = make_copy_ptr(csi_rs_cfg_zp_to_add_mod_list_r11_l()); HANDLE_CODE(unpack_dyn_seq_of(*csi_rs_cfg_zp_to_add_mod_list_r11, bref, 1, 4)); } if (epdcch_cfg_r11_present) { epdcch_cfg_r11 = make_copy_ptr(epdcch_cfg_r11_s()); HANDLE_CODE(epdcch_cfg_r11->unpack(bref)); } if (pdsch_cfg_ded_v1130_present) { pdsch_cfg_ded_v1130 = make_copy_ptr(pdsch_cfg_ded_v1130_s()); HANDLE_CODE(pdsch_cfg_ded_v1130->unpack(bref)); } if (cqi_report_cfg_v1130_present) { cqi_report_cfg_v1130 = make_copy_ptr(cqi_report_cfg_v1130_s()); HANDLE_CODE(cqi_report_cfg_v1130->unpack(bref)); } if (pusch_cfg_ded_v1130_present) { pusch_cfg_ded_v1130 = make_copy_ptr(pusch_cfg_ded_v1130_s()); HANDLE_CODE(pusch_cfg_ded_v1130->unpack(bref)); } if (ul_pwr_ctrl_ded_scell_v1130_present) { ul_pwr_ctrl_ded_scell_v1130 = make_copy_ptr(ul_pwr_ctrl_ded_v1130_s()); HANDLE_CODE(ul_pwr_ctrl_ded_scell_v1130->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ant_info_v1250_present, 1)); HANDLE_CODE(bref.unpack(eimta_main_cfg_scell_r12_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_scell_v1250_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_ded_scell_v1250_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1250_present, 1)); if (ant_info_v1250_present) { ant_info_v1250 = make_copy_ptr(ant_info_ded_v1250_s()); HANDLE_CODE(ant_info_v1250->unpack(bref)); } if (eimta_main_cfg_scell_r12_present) { eimta_main_cfg_scell_r12 = make_copy_ptr(eimta_main_cfg_serv_cell_r12_c()); HANDLE_CODE(eimta_main_cfg_scell_r12->unpack(bref)); } if (cqi_report_cfg_scell_v1250_present) { cqi_report_cfg_scell_v1250 = make_copy_ptr(cqi_report_cfg_v1250_s()); HANDLE_CODE(cqi_report_cfg_scell_v1250->unpack(bref)); } if (ul_pwr_ctrl_ded_scell_v1250_present) { ul_pwr_ctrl_ded_scell_v1250 = make_copy_ptr(ul_pwr_ctrl_ded_v1250_s()); HANDLE_CODE(ul_pwr_ctrl_ded_scell_v1250->unpack(bref)); } if (csi_rs_cfg_v1250_present) { csi_rs_cfg_v1250 = make_copy_ptr(csi_rs_cfg_v1250_s()); HANDLE_CODE(csi_rs_cfg_v1250->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1280_present, 1)); if (pdsch_cfg_ded_v1280_present) { pdsch_cfg_ded_v1280 = make_copy_ptr(pdsch_cfg_ded_v1280_s()); HANDLE_CODE(pdsch_cfg_ded_v1280->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pucch_cell_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_scell_present, 1)); HANDLE_CODE(bref.unpack(cross_carrier_sched_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(pdcch_cfg_scell_r13_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1310_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_v1310_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_up_pts_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_aperiodic_v1310_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(laa_scell_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_nzp_to_release_list_ext_r13_present, 1)); if (pucch_scell_present) { pucch_scell = make_copy_ptr(pucch_scell_c_()); HANDLE_CODE(pucch_scell->unpack(bref)); } if (cross_carrier_sched_cfg_r13_present) { cross_carrier_sched_cfg_r13 = make_copy_ptr(cross_carrier_sched_cfg_r13_s()); HANDLE_CODE(cross_carrier_sched_cfg_r13->unpack(bref)); } if (pdcch_cfg_scell_r13_present) { pdcch_cfg_scell_r13 = make_copy_ptr(pdcch_cfg_scell_r13_s()); HANDLE_CODE(pdcch_cfg_scell_r13->unpack(bref)); } if (cqi_report_cfg_v1310_present) { cqi_report_cfg_v1310 = make_copy_ptr(cqi_report_cfg_v1310_s()); HANDLE_CODE(cqi_report_cfg_v1310->unpack(bref)); } if (pdsch_cfg_ded_v1310_present) { pdsch_cfg_ded_v1310 = make_copy_ptr(pdsch_cfg_ded_v1310_s()); HANDLE_CODE(pdsch_cfg_ded_v1310->unpack(bref)); } if (srs_ul_cfg_ded_v1310_present) { srs_ul_cfg_ded_v1310 = make_copy_ptr(srs_ul_cfg_ded_v1310_c()); HANDLE_CODE(srs_ul_cfg_ded_v1310->unpack(bref)); } if (srs_ul_cfg_ded_up_pts_ext_r13_present) { srs_ul_cfg_ded_up_pts_ext_r13 = make_copy_ptr(srs_ul_cfg_ded_up_pts_ext_r13_c()); HANDLE_CODE(srs_ul_cfg_ded_up_pts_ext_r13->unpack(bref)); } if (srs_ul_cfg_ded_aperiodic_v1310_present) { srs_ul_cfg_ded_aperiodic_v1310 = make_copy_ptr(srs_ul_cfg_ded_aperiodic_v1310_c()); HANDLE_CODE(srs_ul_cfg_ded_aperiodic_v1310->unpack(bref)); } if (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present) { srs_ul_cfg_ded_aperiodic_up_pts_ext_r13 = make_copy_ptr(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c()); HANDLE_CODE(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13->unpack(bref)); } if (csi_rs_cfg_v1310_present) { csi_rs_cfg_v1310 = make_copy_ptr(csi_rs_cfg_v1310_s()); HANDLE_CODE(csi_rs_cfg_v1310->unpack(bref)); } if (laa_scell_cfg_r13_present) { laa_scell_cfg_r13 = make_copy_ptr(laa_scell_cfg_r13_s()); HANDLE_CODE(laa_scell_cfg_r13->unpack(bref)); } if (csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present) { csi_rs_cfg_nzp_to_add_mod_list_ext_r13 = make_copy_ptr(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*csi_rs_cfg_nzp_to_add_mod_list_ext_r13, bref, 1, 21)); } if (csi_rs_cfg_nzp_to_release_list_ext_r13_present) { csi_rs_cfg_nzp_to_release_list_ext_r13 = make_copy_ptr(csi_rs_cfg_nzp_to_release_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*csi_rs_cfg_nzp_to_release_list_ext_r13, bref, 1, 21, UnalignedIntegerPacker(4, 24))); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1320_present, 1)); if (cqi_report_cfg_v1320_present) { cqi_report_cfg_v1320 = make_copy_ptr(cqi_report_cfg_v1320_s()); HANDLE_CODE(cqi_report_cfg_v1320->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(laa_scell_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(type_b_srs_tpc_pdcch_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_pusch_less_pwr_ctrl_ded_v1430_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_periodic_cfg_ded_list_r14_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_aperiodic_cfg_ded_list_r14_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present, 1)); HANDLE_CODE(bref.unpack(must_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_v1430_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_zp_ap_list_r14_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(semi_open_loop_r14_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_scell_v1430_present, 1)); if (laa_scell_cfg_v1430_present) { laa_scell_cfg_v1430 = make_copy_ptr(laa_scell_cfg_v1430_s()); HANDLE_CODE(laa_scell_cfg_v1430->unpack(bref)); } if (type_b_srs_tpc_pdcch_cfg_r14_present) { type_b_srs_tpc_pdcch_cfg_r14 = make_copy_ptr(srs_tpc_pdcch_cfg_r14_c()); HANDLE_CODE(type_b_srs_tpc_pdcch_cfg_r14->unpack(bref)); } if (ul_pusch_less_pwr_ctrl_ded_v1430_present) { ul_pusch_less_pwr_ctrl_ded_v1430 = make_copy_ptr(ul_pusch_less_pwr_ctrl_ded_v1430_s()); HANDLE_CODE(ul_pusch_less_pwr_ctrl_ded_v1430->unpack(bref)); } if (srs_ul_periodic_cfg_ded_list_r14_present) { srs_ul_periodic_cfg_ded_list_r14 = make_copy_ptr(srs_ul_periodic_cfg_ded_list_r14_l_()); HANDLE_CODE(unpack_dyn_seq_of(*srs_ul_periodic_cfg_ded_list_r14, bref, 1, 2)); } if (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present) { srs_ul_periodic_cfg_ded_up_pts_ext_list_r14 = make_copy_ptr(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_l_()); HANDLE_CODE(unpack_dyn_seq_of(*srs_ul_periodic_cfg_ded_up_pts_ext_list_r14, bref, 1, 4)); } if (srs_ul_aperiodic_cfg_ded_list_r14_present) { srs_ul_aperiodic_cfg_ded_list_r14 = make_copy_ptr(srs_ul_aperiodic_cfg_ded_list_r14_l_()); HANDLE_CODE(unpack_dyn_seq_of(*srs_ul_aperiodic_cfg_ded_list_r14, bref, 1, 2)); } if (srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present) { srs_ul_cfg_ded_ap_up_pts_ext_list_r14 = make_copy_ptr(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_l_()); HANDLE_CODE(unpack_dyn_seq_of(*srs_ul_cfg_ded_ap_up_pts_ext_list_r14, bref, 1, 4)); } if (must_cfg_r14_present) { must_cfg_r14 = make_copy_ptr(must_cfg_r14_c_()); HANDLE_CODE(must_cfg_r14->unpack(bref)); } if (pusch_cfg_ded_v1430_present) { pusch_cfg_ded_v1430 = make_copy_ptr(pusch_cfg_ded_scell_v1430_s()); HANDLE_CODE(pusch_cfg_ded_v1430->unpack(bref)); } if (csi_rs_cfg_v1430_present) { csi_rs_cfg_v1430 = make_copy_ptr(csi_rs_cfg_v1430_s()); HANDLE_CODE(csi_rs_cfg_v1430->unpack(bref)); } if (csi_rs_cfg_zp_ap_list_r14_present) { csi_rs_cfg_zp_ap_list_r14 = make_copy_ptr(csi_rs_cfg_zp_ap_list_r14_c()); HANDLE_CODE(csi_rs_cfg_zp_ap_list_r14->unpack(bref)); } if (cqi_report_cfg_v1430_present) { cqi_report_cfg_v1430 = make_copy_ptr(cqi_report_cfg_v1430_s()); HANDLE_CODE(cqi_report_cfg_v1430->unpack(bref)); } if (semi_open_loop_r14_present) { HANDLE_CODE(bref.unpack(semi_open_loop_r14, 1)); } if (pdsch_cfg_ded_scell_v1430_present) { pdsch_cfg_ded_scell_v1430 = make_copy_ptr(pdsch_cfg_ded_scell_v1430_s()); HANDLE_CODE(pdsch_cfg_ded_scell_v1430->unpack(bref)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1480_present, 1)); if (csi_rs_cfg_v1480_present) { csi_rs_cfg_v1480 = make_copy_ptr(csi_rs_cfg_v1480_s()); HANDLE_CODE(csi_rs_cfg_v1480->unpack(bref)); } } if (group_flags[7]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(phys_cfg_ded_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(cqi_report_cfg_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(cqi_short_cfg_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_ded_scell_v1530_present, 1)); HANDLE_CODE(bref.unpack(laa_scell_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_ded_v1530_present, 1)); HANDLE_CODE(bref.unpack(semi_static_cfi_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(blind_pdsch_repeat_cfg_r15_present, 1)); if (phys_cfg_ded_stti_r15_present) { phys_cfg_ded_stti_r15 = make_copy_ptr(phys_cfg_ded_stti_r15_c()); HANDLE_CODE(phys_cfg_ded_stti_r15->unpack(bref)); } if (pdsch_cfg_ded_v1530_present) { pdsch_cfg_ded_v1530 = make_copy_ptr(pdsch_cfg_ded_v1530_s()); HANDLE_CODE(pdsch_cfg_ded_v1530->unpack(bref)); } if (cqi_report_cfg_v1530_present) { cqi_report_cfg_v1530 = make_copy_ptr(cqi_report_cfg_v1530_s()); HANDLE_CODE(cqi_report_cfg_v1530->unpack(bref)); } if (cqi_report_cfg_scell_r15_present) { cqi_report_cfg_scell_r15 = make_copy_ptr(cqi_report_cfg_scell_r15_s()); HANDLE_CODE(cqi_report_cfg_scell_r15->unpack(bref)); } if (cqi_short_cfg_scell_r15_present) { cqi_short_cfg_scell_r15 = make_copy_ptr(cqi_short_cfg_scell_r15_c()); HANDLE_CODE(cqi_short_cfg_scell_r15->unpack(bref)); } if (csi_rs_cfg_v1530_present) { csi_rs_cfg_v1530 = make_copy_ptr(csi_rs_cfg_v1530_s()); HANDLE_CODE(csi_rs_cfg_v1530->unpack(bref)); } if (ul_pwr_ctrl_ded_scell_v1530_present) { ul_pwr_ctrl_ded_scell_v1530 = make_copy_ptr(ul_pwr_ctrl_ded_v1530_s()); HANDLE_CODE(ul_pwr_ctrl_ded_scell_v1530->unpack(bref)); } if (laa_scell_cfg_v1530_present) { laa_scell_cfg_v1530 = make_copy_ptr(laa_scell_cfg_v1530_s()); HANDLE_CODE(laa_scell_cfg_v1530->unpack(bref)); } if (pusch_cfg_ded_v1530_present) { pusch_cfg_ded_v1530 = make_copy_ptr(pusch_cfg_ded_scell_v1530_s()); HANDLE_CODE(pusch_cfg_ded_v1530->unpack(bref)); } if (semi_static_cfi_cfg_r15_present) { semi_static_cfi_cfg_r15 = make_copy_ptr(semi_static_cfi_cfg_r15_c_()); HANDLE_CODE(semi_static_cfi_cfg_r15->unpack(bref)); } if (blind_pdsch_repeat_cfg_r15_present) { blind_pdsch_repeat_cfg_r15 = make_copy_ptr(blind_pdsch_repeat_cfg_r15_c_()); HANDLE_CODE(blind_pdsch_repeat_cfg_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void phys_cfg_ded_scell_r10_s::to_json(json_writer& j) const { j.start_obj(); if (non_ul_cfg_r10_present) { j.write_fieldname("nonUL-Configuration-r10"); j.start_obj(); if (non_ul_cfg_r10.ant_info_r10_present) { j.write_fieldname("antennaInfo-r10"); non_ul_cfg_r10.ant_info_r10.to_json(j); } if (non_ul_cfg_r10.cross_carrier_sched_cfg_r10_present) { j.write_fieldname("crossCarrierSchedulingConfig-r10"); non_ul_cfg_r10.cross_carrier_sched_cfg_r10.to_json(j); } if (non_ul_cfg_r10.csi_rs_cfg_r10_present) { j.write_fieldname("csi-RS-Config-r10"); non_ul_cfg_r10.csi_rs_cfg_r10.to_json(j); } if (non_ul_cfg_r10.pdsch_cfg_ded_r10_present) { j.write_fieldname("pdsch-ConfigDedicated-r10"); non_ul_cfg_r10.pdsch_cfg_ded_r10.to_json(j); } j.end_obj(); } if (ul_cfg_r10_present) { j.write_fieldname("ul-Configuration-r10"); j.start_obj(); if (ul_cfg_r10.ant_info_ul_r10_present) { j.write_fieldname("antennaInfoUL-r10"); ul_cfg_r10.ant_info_ul_r10.to_json(j); } if (ul_cfg_r10.pusch_cfg_ded_scell_r10_present) { j.write_fieldname("pusch-ConfigDedicatedSCell-r10"); ul_cfg_r10.pusch_cfg_ded_scell_r10.to_json(j); } if (ul_cfg_r10.ul_pwr_ctrl_ded_scell_r10_present) { j.write_fieldname("uplinkPowerControlDedicatedSCell-r10"); ul_cfg_r10.ul_pwr_ctrl_ded_scell_r10.to_json(j); } if (ul_cfg_r10.cqi_report_cfg_scell_r10_present) { j.write_fieldname("cqi-ReportConfigSCell-r10"); ul_cfg_r10.cqi_report_cfg_scell_r10.to_json(j); } if (ul_cfg_r10.srs_ul_cfg_ded_r10_present) { j.write_fieldname("soundingRS-UL-ConfigDedicated-r10"); ul_cfg_r10.srs_ul_cfg_ded_r10.to_json(j); } if (ul_cfg_r10.srs_ul_cfg_ded_v1020_present) { j.write_fieldname("soundingRS-UL-ConfigDedicated-v1020"); ul_cfg_r10.srs_ul_cfg_ded_v1020.to_json(j); } if (ul_cfg_r10.srs_ul_cfg_ded_aperiodic_r10_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodic-r10"); ul_cfg_r10.srs_ul_cfg_ded_aperiodic_r10.to_json(j); } j.end_obj(); } if (ext) { rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_release_list_r11_present != (csi_rs_cfg_nzp_to_release_list_r11.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_nzp_to_release_list_r11_present) { j.start_array("csi-RS-ConfigNZPToReleaseList-r11"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_to_release_list_r11->size(); ++i1) { j.write_int(((*csi_rs_cfg_nzp_to_release_list_r11)[i1])); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_add_mod_list_r11_present != (csi_rs_cfg_nzp_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_nzp_to_add_mod_list_r11_present) { j.start_array("csi-RS-ConfigNZPToAddModList-r11"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_to_add_mod_list_r11->size(); ++i1) { ((*csi_rs_cfg_nzp_to_add_mod_list_r11)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_zp_to_release_list_r11_present != (csi_rs_cfg_zp_to_release_list_r11.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_zp_to_release_list_r11_present) { j.start_array("csi-RS-ConfigZPToReleaseList-r11"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_zp_to_release_list_r11->size(); ++i1) { j.write_int(((*csi_rs_cfg_zp_to_release_list_r11)[i1])); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_zp_to_add_mod_list_r11_present != (csi_rs_cfg_zp_to_add_mod_list_r11.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_zp_to_add_mod_list_r11_present) { j.start_array("csi-RS-ConfigZPToAddModList-r11"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_zp_to_add_mod_list_r11->size(); ++i1) { ((*csi_rs_cfg_zp_to_add_mod_list_r11)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(epdcch_cfg_r11_present != (epdcch_cfg_r11.get() != NULL), __FILE__, __LINE__); if (epdcch_cfg_r11_present) { j.write_fieldname("epdcch-Config-r11"); epdcch_cfg_r11->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1130_present != (pdsch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1130_present) { j.write_fieldname("pdsch-ConfigDedicated-v1130"); pdsch_cfg_ded_v1130->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_v1130_present != (cqi_report_cfg_v1130.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1130_present) { j.write_fieldname("cqi-ReportConfig-v1130"); cqi_report_cfg_v1130->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_v1130_present != (pusch_cfg_ded_v1130.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_v1130_present) { j.write_fieldname("pusch-ConfigDedicated-v1130"); pusch_cfg_ded_v1130->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_ded_scell_v1130_present != (ul_pwr_ctrl_ded_scell_v1130.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_ded_scell_v1130_present) { j.write_fieldname("uplinkPowerControlDedicatedSCell-v1130"); ul_pwr_ctrl_ded_scell_v1130->to_json(j); } rrc_asn1_warn_assert(ant_info_v1250_present != (ant_info_v1250.get() != NULL), __FILE__, __LINE__); if (ant_info_v1250_present) { j.write_fieldname("antennaInfo-v1250"); ant_info_v1250->to_json(j); } rrc_asn1_warn_assert(eimta_main_cfg_scell_r12_present != (eimta_main_cfg_scell_r12.get() != NULL), __FILE__, __LINE__); if (eimta_main_cfg_scell_r12_present) { j.write_fieldname("eimta-MainConfigSCell-r12"); eimta_main_cfg_scell_r12->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_scell_v1250_present != (cqi_report_cfg_scell_v1250.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_scell_v1250_present) { j.write_fieldname("cqi-ReportConfigSCell-v1250"); cqi_report_cfg_scell_v1250->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_ded_scell_v1250_present != (ul_pwr_ctrl_ded_scell_v1250.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_ded_scell_v1250_present) { j.write_fieldname("uplinkPowerControlDedicatedSCell-v1250"); ul_pwr_ctrl_ded_scell_v1250->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_v1250_present != (csi_rs_cfg_v1250.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1250_present) { j.write_fieldname("csi-RS-Config-v1250"); csi_rs_cfg_v1250->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1280_present != (pdsch_cfg_ded_v1280.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1280_present) { j.write_fieldname("pdsch-ConfigDedicated-v1280"); pdsch_cfg_ded_v1280->to_json(j); } if (pucch_cell_r13_present) { j.write_str("pucch-Cell-r13", "true"); } rrc_asn1_warn_assert(pucch_scell_present != (pucch_scell.get() != NULL), __FILE__, __LINE__); if (pucch_scell_present) { j.write_fieldname("pucch-SCell"); pucch_scell->to_json(j); } rrc_asn1_warn_assert(cross_carrier_sched_cfg_r13_present != (cross_carrier_sched_cfg_r13.get() != NULL), __FILE__, __LINE__); if (cross_carrier_sched_cfg_r13_present) { j.write_fieldname("crossCarrierSchedulingConfig-r13"); cross_carrier_sched_cfg_r13->to_json(j); } rrc_asn1_warn_assert(pdcch_cfg_scell_r13_present != (pdcch_cfg_scell_r13.get() != NULL), __FILE__, __LINE__); if (pdcch_cfg_scell_r13_present) { j.write_fieldname("pdcch-ConfigSCell-r13"); pdcch_cfg_scell_r13->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_v1310_present != (cqi_report_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1310_present) { j.write_fieldname("cqi-ReportConfig-v1310"); cqi_report_cfg_v1310->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1310_present != (pdsch_cfg_ded_v1310.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1310_present) { j.write_fieldname("pdsch-ConfigDedicated-v1310"); pdsch_cfg_ded_v1310->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_v1310_present != (srs_ul_cfg_ded_v1310.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_v1310_present) { j.write_fieldname("soundingRS-UL-ConfigDedicated-v1310"); srs_ul_cfg_ded_v1310->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_up_pts_ext_r13_present != (srs_ul_cfg_ded_up_pts_ext_r13.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_up_pts_ext_r13_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedUpPTsExt-r13"); srs_ul_cfg_ded_up_pts_ext_r13->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_v1310_present != (srs_ul_cfg_ded_aperiodic_v1310.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_aperiodic_v1310_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodic-v1310"); srs_ul_cfg_ded_aperiodic_v1310->to_json(j); } rrc_asn1_warn_assert(srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present != (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_present) { j.write_fieldname("soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13"); srs_ul_cfg_ded_aperiodic_up_pts_ext_r13->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_v1310_present != (csi_rs_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1310_present) { j.write_fieldname("csi-RS-Config-v1310"); csi_rs_cfg_v1310->to_json(j); } rrc_asn1_warn_assert(laa_scell_cfg_r13_present != (laa_scell_cfg_r13.get() != NULL), __FILE__, __LINE__); if (laa_scell_cfg_r13_present) { j.write_fieldname("laa-SCellConfiguration-r13"); laa_scell_cfg_r13->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present != (csi_rs_cfg_nzp_to_add_mod_list_ext_r13.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_nzp_to_add_mod_list_ext_r13_present) { j.start_array("csi-RS-ConfigNZPToAddModListExt-r13"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_to_add_mod_list_ext_r13->size(); ++i1) { ((*csi_rs_cfg_nzp_to_add_mod_list_ext_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(csi_rs_cfg_nzp_to_release_list_ext_r13_present != (csi_rs_cfg_nzp_to_release_list_ext_r13.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_nzp_to_release_list_ext_r13_present) { j.start_array("csi-RS-ConfigNZPToReleaseListExt-r13"); for (uint32_t i1 = 0; i1 < csi_rs_cfg_nzp_to_release_list_ext_r13->size(); ++i1) { j.write_int(((*csi_rs_cfg_nzp_to_release_list_ext_r13)[i1])); } j.end_array(); } rrc_asn1_warn_assert(cqi_report_cfg_v1320_present != (cqi_report_cfg_v1320.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1320_present) { j.write_fieldname("cqi-ReportConfig-v1320"); cqi_report_cfg_v1320->to_json(j); } rrc_asn1_warn_assert(laa_scell_cfg_v1430_present != (laa_scell_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (laa_scell_cfg_v1430_present) { j.write_fieldname("laa-SCellConfiguration-v1430"); laa_scell_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(type_b_srs_tpc_pdcch_cfg_r14_present != (type_b_srs_tpc_pdcch_cfg_r14.get() != NULL), __FILE__, __LINE__); if (type_b_srs_tpc_pdcch_cfg_r14_present) { j.write_fieldname("typeB-SRS-TPC-PDCCH-Config-r14"); type_b_srs_tpc_pdcch_cfg_r14->to_json(j); } rrc_asn1_warn_assert(ul_pusch_less_pwr_ctrl_ded_v1430_present != (ul_pusch_less_pwr_ctrl_ded_v1430.get() != NULL), __FILE__, __LINE__); if (ul_pusch_less_pwr_ctrl_ded_v1430_present) { j.write_fieldname("uplinkPUSCH-LessPowerControlDedicated-v1430"); ul_pusch_less_pwr_ctrl_ded_v1430->to_json(j); } rrc_asn1_warn_assert(srs_ul_periodic_cfg_ded_list_r14_present != (srs_ul_periodic_cfg_ded_list_r14.get() != NULL), __FILE__, __LINE__); if (srs_ul_periodic_cfg_ded_list_r14_present) { j.start_array("soundingRS-UL-PeriodicConfigDedicatedList-r14"); for (uint32_t i1 = 0; i1 < srs_ul_periodic_cfg_ded_list_r14->size(); ++i1) { ((*srs_ul_periodic_cfg_ded_list_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present != (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14.get() != NULL), __FILE__, __LINE__); if (srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_present) { j.start_array("soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14"); for (uint32_t i1 = 0; i1 < srs_ul_periodic_cfg_ded_up_pts_ext_list_r14->size(); ++i1) { ((*srs_ul_periodic_cfg_ded_up_pts_ext_list_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(srs_ul_aperiodic_cfg_ded_list_r14_present != (srs_ul_aperiodic_cfg_ded_list_r14.get() != NULL), __FILE__, __LINE__); if (srs_ul_aperiodic_cfg_ded_list_r14_present) { j.start_array("soundingRS-UL-AperiodicConfigDedicatedList-r14"); for (uint32_t i1 = 0; i1 < srs_ul_aperiodic_cfg_ded_list_r14->size(); ++i1) { ((*srs_ul_aperiodic_cfg_ded_list_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present != (srs_ul_cfg_ded_ap_up_pts_ext_list_r14.get() != NULL), __FILE__, __LINE__); if (srs_ul_cfg_ded_ap_up_pts_ext_list_r14_present) { j.start_array("soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14"); for (uint32_t i1 = 0; i1 < srs_ul_cfg_ded_ap_up_pts_ext_list_r14->size(); ++i1) { ((*srs_ul_cfg_ded_ap_up_pts_ext_list_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(must_cfg_r14_present != (must_cfg_r14.get() != NULL), __FILE__, __LINE__); if (must_cfg_r14_present) { j.write_fieldname("must-Config-r14"); must_cfg_r14->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_v1430_present != (pusch_cfg_ded_v1430.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_v1430_present) { j.write_fieldname("pusch-ConfigDedicated-v1430"); pusch_cfg_ded_v1430->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_v1430_present != (csi_rs_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1430_present) { j.write_fieldname("csi-RS-Config-v1430"); csi_rs_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_zp_ap_list_r14_present != (csi_rs_cfg_zp_ap_list_r14.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_zp_ap_list_r14_present) { j.write_fieldname("csi-RS-ConfigZP-ApList-r14"); csi_rs_cfg_zp_ap_list_r14->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_v1430_present != (cqi_report_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1430_present) { j.write_fieldname("cqi-ReportConfig-v1430"); cqi_report_cfg_v1430->to_json(j); } if (semi_open_loop_r14_present) { j.write_bool("semiOpenLoop-r14", semi_open_loop_r14); } rrc_asn1_warn_assert(pdsch_cfg_ded_scell_v1430_present != (pdsch_cfg_ded_scell_v1430.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_scell_v1430_present) { j.write_fieldname("pdsch-ConfigDedicatedSCell-v1430"); pdsch_cfg_ded_scell_v1430->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_v1480_present != (csi_rs_cfg_v1480.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1480_present) { j.write_fieldname("csi-RS-Config-v1480"); csi_rs_cfg_v1480->to_json(j); } rrc_asn1_warn_assert(phys_cfg_ded_stti_r15_present != (phys_cfg_ded_stti_r15.get() != NULL), __FILE__, __LINE__); if (phys_cfg_ded_stti_r15_present) { j.write_fieldname("physicalConfigDedicatedSTTI-r15"); phys_cfg_ded_stti_r15->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_ded_v1530_present != (pdsch_cfg_ded_v1530.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_ded_v1530_present) { j.write_fieldname("pdsch-ConfigDedicated-v1530"); pdsch_cfg_ded_v1530->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_v1530_present != (cqi_report_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_v1530_present) { j.write_fieldname("cqi-ReportConfig-v1530"); cqi_report_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(cqi_report_cfg_scell_r15_present != (cqi_report_cfg_scell_r15.get() != NULL), __FILE__, __LINE__); if (cqi_report_cfg_scell_r15_present) { j.write_fieldname("cqi-ReportConfigSCell-r15"); cqi_report_cfg_scell_r15->to_json(j); } rrc_asn1_warn_assert(cqi_short_cfg_scell_r15_present != (cqi_short_cfg_scell_r15.get() != NULL), __FILE__, __LINE__); if (cqi_short_cfg_scell_r15_present) { j.write_fieldname("cqi-ShortConfigSCell-r15"); cqi_short_cfg_scell_r15->to_json(j); } rrc_asn1_warn_assert(csi_rs_cfg_v1530_present != (csi_rs_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (csi_rs_cfg_v1530_present) { j.write_fieldname("csi-RS-Config-v1530"); csi_rs_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_ded_scell_v1530_present != (ul_pwr_ctrl_ded_scell_v1530.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_ded_scell_v1530_present) { j.write_fieldname("uplinkPowerControlDedicatedSCell-v1530"); ul_pwr_ctrl_ded_scell_v1530->to_json(j); } rrc_asn1_warn_assert(laa_scell_cfg_v1530_present != (laa_scell_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (laa_scell_cfg_v1530_present) { j.write_fieldname("laa-SCellConfiguration-v1530"); laa_scell_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_ded_v1530_present != (pusch_cfg_ded_v1530.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_ded_v1530_present) { j.write_fieldname("pusch-ConfigDedicated-v1530"); pusch_cfg_ded_v1530->to_json(j); } rrc_asn1_warn_assert(semi_static_cfi_cfg_r15_present != (semi_static_cfi_cfg_r15.get() != NULL), __FILE__, __LINE__); if (semi_static_cfi_cfg_r15_present) { j.write_fieldname("semiStaticCFI-Config-r15"); semi_static_cfi_cfg_r15->to_json(j); } rrc_asn1_warn_assert(blind_pdsch_repeat_cfg_r15_present != (blind_pdsch_repeat_cfg_r15.get() != NULL), __FILE__, __LINE__); if (blind_pdsch_repeat_cfg_r15_present) { j.write_fieldname("blindPDSCH-Repetition-Config-r15"); blind_pdsch_repeat_cfg_r15->to_json(j); } } j.end_obj(); } void phys_cfg_ded_scell_r10_s::pucch_scell_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_scell_r10_s::pucch_scell_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.pucch_cfg_ded_r13_present) { j.write_fieldname("pucch-ConfigDedicated-r13"); c.pucch_cfg_ded_r13.to_json(j); } if (c.sched_request_cfg_r13_present) { j.write_fieldname("schedulingRequestConfig-r13"); c.sched_request_cfg_r13.to_json(j); } if (c.tpc_pdcch_cfg_pucch_scell_r13_present) { j.write_fieldname("tpc-PDCCH-ConfigPUCCH-SCell-r13"); c.tpc_pdcch_cfg_pucch_scell_r13.to_json(j); } if (c.pusch_cfg_ded_r13_present) { j.write_fieldname("pusch-ConfigDedicated-r13"); c.pusch_cfg_ded_r13.to_json(j); } if (c.ul_pwr_ctrl_ded_r13_present) { j.write_fieldname("uplinkPowerControlDedicated-r13"); c.ul_pwr_ctrl_ded_r13.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::pucch_scell_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_scell_r10_s::pucch_scell_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.pucch_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.pack(c.sched_request_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(c.tpc_pdcch_cfg_pucch_scell_r13_present, 1)); HANDLE_CODE(bref.pack(c.pusch_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.pack(c.ul_pwr_ctrl_ded_r13_present, 1)); if (c.pucch_cfg_ded_r13_present) { HANDLE_CODE(c.pucch_cfg_ded_r13.pack(bref)); } if (c.sched_request_cfg_r13_present) { HANDLE_CODE(c.sched_request_cfg_r13.pack(bref)); } if (c.tpc_pdcch_cfg_pucch_scell_r13_present) { HANDLE_CODE(c.tpc_pdcch_cfg_pucch_scell_r13.pack(bref)); } if (c.pusch_cfg_ded_r13_present) { HANDLE_CODE(c.pusch_cfg_ded_r13.pack(bref)); } if (c.ul_pwr_ctrl_ded_r13_present) { HANDLE_CODE(c.ul_pwr_ctrl_ded_r13.pack(bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::pucch_scell_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_scell_r10_s::pucch_scell_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.pucch_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.unpack(c.sched_request_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(c.tpc_pdcch_cfg_pucch_scell_r13_present, 1)); HANDLE_CODE(bref.unpack(c.pusch_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.unpack(c.ul_pwr_ctrl_ded_r13_present, 1)); if (c.pucch_cfg_ded_r13_present) { HANDLE_CODE(c.pucch_cfg_ded_r13.unpack(bref)); } if (c.sched_request_cfg_r13_present) { HANDLE_CODE(c.sched_request_cfg_r13.unpack(bref)); } if (c.tpc_pdcch_cfg_pucch_scell_r13_present) { HANDLE_CODE(c.tpc_pdcch_cfg_pucch_scell_r13.unpack(bref)); } if (c.pusch_cfg_ded_r13_present) { HANDLE_CODE(c.pusch_cfg_ded_r13.unpack(bref)); } if (c.ul_pwr_ctrl_ded_r13_present) { HANDLE_CODE(c.ul_pwr_ctrl_ded_r13.unpack(bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::pucch_scell_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("k-max-r14", c.k_max_r14.to_string()); if (c.p_a_must_r14_present) { j.write_str("p-a-must-r14", c.p_a_must_r14.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::must_cfg_r14_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.p_a_must_r14_present, 1)); HANDLE_CODE(pack_enum(bref, c.k_max_r14)); if (c.p_a_must_r14_present) { HANDLE_CODE(pack_enum(bref, c.p_a_must_r14)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::must_cfg_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.p_a_must_r14_present, 1)); HANDLE_CODE(unpack_enum(c.k_max_r14, bref)); if (c.p_a_must_r14_present) { HANDLE_CODE(unpack_enum(c.p_a_must_r14, bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::must_cfg_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::destroy_() { switch (type_) { case types::cfi_cfg_r15: c.destroy(); break; case types::cfi_pattern_cfg_r15: c.destroy(); break; default: break; } } void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cfi_cfg_r15: c.init(); break; case types::cfi_pattern_cfg_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_"); } } phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::setup_c_( const phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::cfi_cfg_r15: c.init(other.c.get()); break; case types::cfi_pattern_cfg_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_"); } } phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_& phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_:: operator=(const phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cfi_cfg_r15: c.set(other.c.get()); break; case types::cfi_pattern_cfg_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_"); } return *this; } void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cfi_cfg_r15: j.write_fieldname("cfi-Config-r15"); c.get().to_json(j); break; case types::cfi_pattern_cfg_r15: j.write_fieldname("cfi-PatternConfig-r15"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cfi_cfg_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::cfi_pattern_cfg_r15: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cfi_cfg_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::cfi_pattern_cfg_r15: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_bool("blindSubframePDSCH-Repetitions-r15", c.blind_sf_pdsch_repeats_r15); j.write_bool("blindSlotSubslotPDSCH-Repetitions-r15", c.blind_slot_subslot_pdsch_repeats_r15); if (c.max_num_sf_pdsch_repeats_r15_present) { j.write_str("maxNumber-SubframePDSCH-Repetitions-r15", c.max_num_sf_pdsch_repeats_r15.to_string()); } if (c.max_num_slot_subslot_pdsch_repeats_r15_present) { j.write_str("maxNumber-SlotSubslotPDSCH-Repetitions-r15", c.max_num_slot_subslot_pdsch_repeats_r15.to_string()); } if (c.rv_sf_pdsch_repeats_r15_present) { j.write_str("rv-SubframePDSCH-Repetitions-r15", c.rv_sf_pdsch_repeats_r15.to_string()); } if (c.rv_slotsublot_pdsch_repeats_r15_present) { j.write_str("rv-SlotsublotPDSCH-Repetitions-r15", c.rv_slotsublot_pdsch_repeats_r15.to_string()); } if (c.nof_processes_sf_pdsch_repeats_r15_present) { j.write_int("numberOfProcesses-SubframePDSCH-Repetitions-r15", c.nof_processes_sf_pdsch_repeats_r15); } if (c.nof_processes_slot_subslot_pdsch_repeats_r15_present) { j.write_int("numberOfProcesses-SlotSubslotPDSCH-Repetitions-r15", c.nof_processes_slot_subslot_pdsch_repeats_r15); } if (c.mcs_restrict_sf_pdsch_repeats_r15_present) { j.write_str("mcs-restrictionSubframePDSCH-Repetitions-r15", c.mcs_restrict_sf_pdsch_repeats_r15.to_string()); } if (c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present) { j.write_str("mcs-restrictionSlotSubslotPDSCH-Repetitions-r15", c.mcs_restrict_slot_subslot_pdsch_repeats_r15.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.max_num_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.max_num_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.rv_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.rv_slotsublot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.nof_processes_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.nof_processes_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.mcs_restrict_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.pack(c.blind_sf_pdsch_repeats_r15, 1)); HANDLE_CODE(bref.pack(c.blind_slot_subslot_pdsch_repeats_r15, 1)); if (c.max_num_sf_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.max_num_sf_pdsch_repeats_r15)); } if (c.max_num_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.max_num_slot_subslot_pdsch_repeats_r15)); } if (c.rv_sf_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.rv_sf_pdsch_repeats_r15)); } if (c.rv_slotsublot_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.rv_slotsublot_pdsch_repeats_r15)); } if (c.nof_processes_sf_pdsch_repeats_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.nof_processes_sf_pdsch_repeats_r15, (uint8_t)1, (uint8_t)16)); } if (c.nof_processes_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, c.nof_processes_slot_subslot_pdsch_repeats_r15, (uint8_t)1, (uint8_t)16)); } if (c.mcs_restrict_sf_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.mcs_restrict_sf_pdsch_repeats_r15)); } if (c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE(pack_enum(bref, c.mcs_restrict_slot_subslot_pdsch_repeats_r15)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.max_num_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.max_num_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.rv_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.rv_slotsublot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.nof_processes_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.nof_processes_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.mcs_restrict_sf_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present, 1)); HANDLE_CODE(bref.unpack(c.blind_sf_pdsch_repeats_r15, 1)); HANDLE_CODE(bref.unpack(c.blind_slot_subslot_pdsch_repeats_r15, 1)); if (c.max_num_sf_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.max_num_sf_pdsch_repeats_r15, bref)); } if (c.max_num_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.max_num_slot_subslot_pdsch_repeats_r15, bref)); } if (c.rv_sf_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.rv_sf_pdsch_repeats_r15, bref)); } if (c.rv_slotsublot_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.rv_slotsublot_pdsch_repeats_r15, bref)); } if (c.nof_processes_sf_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.nof_processes_sf_pdsch_repeats_r15, bref, (uint8_t)1, (uint8_t)16)); } if (c.nof_processes_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE( unpack_unalign_integer(c.nof_processes_slot_subslot_pdsch_repeats_r15, bref, (uint8_t)1, (uint8_t)16)); } if (c.mcs_restrict_sf_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.mcs_restrict_sf_pdsch_repeats_r15, bref)); } if (c.mcs_restrict_slot_subslot_pdsch_repeats_r15_present) { HANDLE_CODE(unpack_enum(c.mcs_restrict_slot_subslot_pdsch_repeats_r15, bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE SRSASN_CODE phys_cfg_ded_scell_v1370_s::pack(bit_ref& bref) const { HANDLE_CODE(pucch_scell_v1370.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_scell_v1370_s::unpack(bit_ref& bref) { HANDLE_CODE(pucch_scell_v1370.unpack(bref)); return SRSASN_SUCCESS; } void phys_cfg_ded_scell_v1370_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("pucch-SCell-v1370"); pucch_scell_v1370.to_json(j); j.end_obj(); } void phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::set(types::options e) { type_ = e; } void phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.pucch_cfg_ded_v1370_present) { j.write_fieldname("pucch-ConfigDedicated-v1370"); c.pucch_cfg_ded_v1370.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_"); } j.end_obj(); } SRSASN_CODE phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.pucch_cfg_ded_v1370_present, 1)); if (c.pucch_cfg_ded_v1370_present) { HANDLE_CODE(c.pucch_cfg_ded_v1370.pack(bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.pucch_cfg_ded_v1370_present, 1)); if (c.pucch_cfg_ded_v1370_present) { HANDLE_CODE(c.pucch_cfg_ded_v1370.unpack(bref)); } break; default: log_invalid_choice_id(type_, "phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RACH-ConfigCommonSCell-r11 ::= SEQUENCE SRSASN_CODE rach_cfg_common_scell_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pwr_ramp_params_r11.pack(bref)); HANDLE_CODE(pack_enum(bref, ra_supervision_info_r11.preamb_trans_max_r11)); return SRSASN_SUCCESS; } SRSASN_CODE rach_cfg_common_scell_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(pwr_ramp_params_r11.unpack(bref)); HANDLE_CODE(unpack_enum(ra_supervision_info_r11.preamb_trans_max_r11, bref)); return SRSASN_SUCCESS; } void rach_cfg_common_scell_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("powerRampingParameters-r11"); pwr_ramp_params_r11.to_json(j); j.write_fieldname("ra-SupervisionInfo-r11"); j.start_obj(); j.write_str("preambleTransMax-r11", ra_supervision_info_r11.preamb_trans_max_r11.to_string()); j.end_obj(); j.end_obj(); } // UplinkPowerControlCommon-v1530 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(delta_flist_spucch_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(delta_flist_spucch_r15.unpack(bref)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("deltaFList-SPUCCH-r15"); delta_flist_spucch_r15.to_json(j); j.end_obj(); } // UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_pusch_less_cell_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p0_nominal_periodic_srs_r14_present, 1)); HANDLE_CODE(bref.pack(p0_nominal_aperiodic_srs_r14_present, 1)); HANDLE_CODE(bref.pack(alpha_srs_r14_present, 1)); if (p0_nominal_periodic_srs_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, p0_nominal_periodic_srs_r14, (int8_t)-126, (int8_t)24)); } if (p0_nominal_aperiodic_srs_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, p0_nominal_aperiodic_srs_r14, (int8_t)-126, (int8_t)24)); } if (alpha_srs_r14_present) { HANDLE_CODE(pack_enum(bref, alpha_srs_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_pusch_less_cell_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p0_nominal_periodic_srs_r14_present, 1)); HANDLE_CODE(bref.unpack(p0_nominal_aperiodic_srs_r14_present, 1)); HANDLE_CODE(bref.unpack(alpha_srs_r14_present, 1)); if (p0_nominal_periodic_srs_r14_present) { HANDLE_CODE(unpack_unalign_integer(p0_nominal_periodic_srs_r14, bref, (int8_t)-126, (int8_t)24)); } if (p0_nominal_aperiodic_srs_r14_present) { HANDLE_CODE(unpack_unalign_integer(p0_nominal_aperiodic_srs_r14, bref, (int8_t)-126, (int8_t)24)); } if (alpha_srs_r14_present) { HANDLE_CODE(unpack_enum(alpha_srs_r14, bref)); } return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_pusch_less_cell_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (p0_nominal_periodic_srs_r14_present) { j.write_int("p0-Nominal-PeriodicSRS-r14", p0_nominal_periodic_srs_r14); } if (p0_nominal_aperiodic_srs_r14_present) { j.write_int("p0-Nominal-AperiodicSRS-r14", p0_nominal_aperiodic_srs_r14); } if (alpha_srs_r14_present) { j.write_str("alpha-SRS-r14", alpha_srs_r14.to_string()); } j.end_obj(); } // UplinkPowerControlCommonSCell-r10 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_scell_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, p0_nominal_pusch_r10, (int8_t)-126, (int8_t)24)); HANDLE_CODE(pack_enum(bref, alpha_r10)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_scell_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(p0_nominal_pusch_r10, bref, (int8_t)-126, (int8_t)24)); HANDLE_CODE(unpack_enum(alpha_r10, bref)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_scell_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p0-NominalPUSCH-r10", p0_nominal_pusch_r10); j.write_str("alpha-r10", alpha_r10.to_string()); j.end_obj(); } // UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_scell_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, delta_preamb_msg3_r11, (int8_t)-1, (int8_t)6)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_scell_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(delta_preamb_msg3_r11, bref, (int8_t)-1, (int8_t)6)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_scell_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("deltaPreambleMsg3-r11", delta_preamb_msg3_r11); j.end_obj(); } // UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_scell_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(delta_f_pucch_format3_r12_present, 1)); HANDLE_CODE(bref.pack(delta_f_pucch_format1b_cs_r12_present, 1)); HANDLE_CODE(bref.pack(delta_f_pucch_format4_r13_present, 1)); HANDLE_CODE(bref.pack(delta_f_pucch_format5_minus13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, p0_nominal_pucch, (int8_t)-127, (int8_t)-96)); HANDLE_CODE(delta_flist_pucch.pack(bref)); if (delta_f_pucch_format3_r12_present) { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format3_r12)); } if (delta_f_pucch_format1b_cs_r12_present) { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format1b_cs_r12)); } if (delta_f_pucch_format4_r13_present) { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format4_r13)); } if (delta_f_pucch_format5_minus13_present) { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format5_minus13)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_scell_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(delta_f_pucch_format3_r12_present, 1)); HANDLE_CODE(bref.unpack(delta_f_pucch_format1b_cs_r12_present, 1)); HANDLE_CODE(bref.unpack(delta_f_pucch_format4_r13_present, 1)); HANDLE_CODE(bref.unpack(delta_f_pucch_format5_minus13_present, 1)); HANDLE_CODE(unpack_unalign_integer(p0_nominal_pucch, bref, (int8_t)-127, (int8_t)-96)); HANDLE_CODE(delta_flist_pucch.unpack(bref)); if (delta_f_pucch_format3_r12_present) { HANDLE_CODE(unpack_enum(delta_f_pucch_format3_r12, bref)); } if (delta_f_pucch_format1b_cs_r12_present) { HANDLE_CODE(unpack_enum(delta_f_pucch_format1b_cs_r12, bref)); } if (delta_f_pucch_format4_r13_present) { HANDLE_CODE(unpack_enum(delta_f_pucch_format4_r13, bref)); } if (delta_f_pucch_format5_minus13_present) { HANDLE_CODE(unpack_enum(delta_f_pucch_format5_minus13, bref)); } return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_scell_v1310_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p0-NominalPUCCH", p0_nominal_pucch); j.write_fieldname("deltaFList-PUCCH"); delta_flist_pucch.to_json(j); if (delta_f_pucch_format3_r12_present) { j.write_str("deltaF-PUCCH-Format3-r12", delta_f_pucch_format3_r12.to_string()); } if (delta_f_pucch_format1b_cs_r12_present) { j.write_str("deltaF-PUCCH-Format1bCS-r12", delta_f_pucch_format1b_cs_r12.to_string()); } if (delta_f_pucch_format4_r13_present) { j.write_str("deltaF-PUCCH-Format4-r13", delta_f_pucch_format4_r13.to_string()); } if (delta_f_pucch_format5_minus13_present) { j.write_str("deltaF-PUCCH-Format5-13", delta_f_pucch_format5_minus13.to_string()); } j.end_obj(); } // AntennaInfoDedicated-v10i0 ::= SEQUENCE SRSASN_CODE ant_info_ded_v10i0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(max_layers_mimo_r10_present, 1)); if (max_layers_mimo_r10_present) { HANDLE_CODE(pack_enum(bref, max_layers_mimo_r10)); } return SRSASN_SUCCESS; } SRSASN_CODE ant_info_ded_v10i0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(max_layers_mimo_r10_present, 1)); if (max_layers_mimo_r10_present) { HANDLE_CODE(unpack_enum(max_layers_mimo_r10, bref)); } return SRSASN_SUCCESS; } void ant_info_ded_v10i0_s::to_json(json_writer& j) const { j.start_obj(); if (max_layers_mimo_r10_present) { j.write_str("maxLayersMIMO-r10", max_layers_mimo_r10.to_string()); } j.end_obj(); } // RadioResourceConfigCommonSCell-r10 ::= SEQUENCE SRSASN_CODE rr_cfg_common_scell_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ul_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(non_ul_cfg_r10.mbsfn_sf_cfg_list_r10_present, 1)); HANDLE_CODE(bref.pack(non_ul_cfg_r10.tdd_cfg_r10_present, 1)); HANDLE_CODE(pack_enum(bref, non_ul_cfg_r10.dl_bw_r10)); HANDLE_CODE(non_ul_cfg_r10.ant_info_common_r10.pack(bref)); if (non_ul_cfg_r10.mbsfn_sf_cfg_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, non_ul_cfg_r10.mbsfn_sf_cfg_list_r10, 1, 8)); } HANDLE_CODE(non_ul_cfg_r10.phich_cfg_r10.pack(bref)); HANDLE_CODE(non_ul_cfg_r10.pdsch_cfg_common_r10.pack(bref)); if (non_ul_cfg_r10.tdd_cfg_r10_present) { HANDLE_CODE(non_ul_cfg_r10.tdd_cfg_r10.pack(bref)); } if (ul_cfg_r10_present) { HANDLE_CODE(bref.pack(ul_cfg_r10.p_max_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.prach_cfg_scell_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.ul_freq_info_r10.ul_carrier_freq_r10_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r10.ul_freq_info_r10.ul_bw_r10_present, 1)); if (ul_cfg_r10.ul_freq_info_r10.ul_carrier_freq_r10_present) { HANDLE_CODE( pack_unalign_integer(bref, ul_cfg_r10.ul_freq_info_r10.ul_carrier_freq_r10, (uint16_t)0, (uint16_t)65535)); } if (ul_cfg_r10.ul_freq_info_r10.ul_bw_r10_present) { HANDLE_CODE(pack_enum(bref, ul_cfg_r10.ul_freq_info_r10.ul_bw_r10)); } HANDLE_CODE( pack_unalign_integer(bref, ul_cfg_r10.ul_freq_info_r10.add_spec_emission_scell_r10, (uint8_t)1, (uint8_t)32)); if (ul_cfg_r10.p_max_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_cfg_r10.p_max_r10, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(ul_cfg_r10.ul_pwr_ctrl_common_scell_r10.pack(bref)); HANDLE_CODE(ul_cfg_r10.srs_ul_cfg_common_r10.pack(bref)); HANDLE_CODE(pack_enum(bref, ul_cfg_r10.ul_cp_len_r10)); if (ul_cfg_r10.prach_cfg_scell_r10_present) { HANDLE_CODE(ul_cfg_r10.prach_cfg_scell_r10.pack(bref)); } HANDLE_CODE(ul_cfg_r10.pusch_cfg_common_r10.pack(bref)); } if (ext) { ext_groups_header group_flags(7); group_flags[0] |= ul_carrier_freq_v1090_present; rrc_asn1_warn_assert(rach_cfg_common_scell_r11_present != (rach_cfg_common_scell_r11.get() != NULL), __FILE__, __LINE__); group_flags[1] |= rach_cfg_common_scell_r11_present; rrc_asn1_warn_assert(prach_cfg_scell_r11_present != (prach_cfg_scell_r11.get() != NULL), __FILE__, __LINE__); group_flags[1] |= prach_cfg_scell_r11_present; rrc_asn1_warn_assert(tdd_cfg_v1130_present != (tdd_cfg_v1130.get() != NULL), __FILE__, __LINE__); group_flags[1] |= tdd_cfg_v1130_present; rrc_asn1_warn_assert(ul_pwr_ctrl_common_scell_v1130_present != (ul_pwr_ctrl_common_scell_v1130.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ul_pwr_ctrl_common_scell_v1130_present; rrc_asn1_warn_assert(pusch_cfg_common_v1270_present != (pusch_cfg_common_v1270.get() != NULL), __FILE__, __LINE__); group_flags[2] |= pusch_cfg_common_v1270_present; rrc_asn1_warn_assert(pucch_cfg_common_r13_present != (pucch_cfg_common_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pucch_cfg_common_r13_present; rrc_asn1_warn_assert(ul_pwr_ctrl_common_scell_v1310_present != (ul_pwr_ctrl_common_scell_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= ul_pwr_ctrl_common_scell_v1310_present; rrc_asn1_warn_assert(high_speed_cfg_scell_r14_present != (high_speed_cfg_scell_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= high_speed_cfg_scell_r14_present; rrc_asn1_warn_assert(prach_cfg_v1430_present != (prach_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[4] |= prach_cfg_v1430_present; rrc_asn1_warn_assert(ul_cfg_r14_present != (ul_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= ul_cfg_r14_present; group_flags[4] |= harq_ref_cfg_r14_present; group_flags[4] |= srs_flex_timing_r14_present; rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); group_flags[5] |= mbsfn_sf_cfg_list_v1430_present; rrc_asn1_warn_assert(ul_pwr_ctrl_common_scell_v1530_present != (ul_pwr_ctrl_common_scell_v1530.get() != NULL), __FILE__, __LINE__); group_flags[6] |= ul_pwr_ctrl_common_scell_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_carrier_freq_v1090_present, 1)); if (ul_carrier_freq_v1090_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_carrier_freq_v1090, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rach_cfg_common_scell_r11_present, 1)); HANDLE_CODE(bref.pack(prach_cfg_scell_r11_present, 1)); HANDLE_CODE(bref.pack(tdd_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_scell_v1130_present, 1)); if (rach_cfg_common_scell_r11_present) { HANDLE_CODE(rach_cfg_common_scell_r11->pack(bref)); } if (prach_cfg_scell_r11_present) { HANDLE_CODE(prach_cfg_scell_r11->pack(bref)); } if (tdd_cfg_v1130_present) { HANDLE_CODE(tdd_cfg_v1130->pack(bref)); } if (ul_pwr_ctrl_common_scell_v1130_present) { HANDLE_CODE(ul_pwr_ctrl_common_scell_v1130->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pusch_cfg_common_v1270_present, 1)); if (pusch_cfg_common_v1270_present) { HANDLE_CODE(pusch_cfg_common_v1270->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pucch_cfg_common_r13_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_scell_v1310_present, 1)); if (pucch_cfg_common_r13_present) { HANDLE_CODE(pucch_cfg_common_r13->pack(bref)); } if (ul_pwr_ctrl_common_scell_v1310_present) { HANDLE_CODE(ul_pwr_ctrl_common_scell_v1310->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(high_speed_cfg_scell_r14_present, 1)); HANDLE_CODE(bref.pack(prach_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(harq_ref_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(srs_flex_timing_r14_present, 1)); if (high_speed_cfg_scell_r14_present) { HANDLE_CODE(high_speed_cfg_scell_r14->pack(bref)); } if (prach_cfg_v1430_present) { HANDLE_CODE(prach_cfg_v1430->pack(bref)); } if (ul_cfg_r14_present) { HANDLE_CODE(bref.pack(ul_cfg_r14->p_max_r14_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r14->prach_cfg_scell_r14_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r14->ul_pwr_ctrl_common_pusch_less_cell_v1430_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r14->ul_freq_info_r14.ul_carrier_freq_r14_present, 1)); HANDLE_CODE(bref.pack(ul_cfg_r14->ul_freq_info_r14.ul_bw_r14_present, 1)); if (ul_cfg_r14->ul_freq_info_r14.ul_carrier_freq_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_cfg_r14->ul_freq_info_r14.ul_carrier_freq_r14, (uint32_t)0, (uint32_t)262143)); } if (ul_cfg_r14->ul_freq_info_r14.ul_bw_r14_present) { HANDLE_CODE(pack_enum(bref, ul_cfg_r14->ul_freq_info_r14.ul_bw_r14)); } HANDLE_CODE(pack_unalign_integer(bref, ul_cfg_r14->ul_freq_info_r14.add_spec_emission_scell_r14, (uint8_t)1, (uint8_t)32)); if (ul_cfg_r14->p_max_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_cfg_r14->p_max_r14, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(ul_cfg_r14->srs_ul_cfg_common_r14.pack(bref)); HANDLE_CODE(pack_enum(bref, ul_cfg_r14->ul_cp_len_r14)); if (ul_cfg_r14->prach_cfg_scell_r14_present) { HANDLE_CODE(ul_cfg_r14->prach_cfg_scell_r14.pack(bref)); } if (ul_cfg_r14->ul_pwr_ctrl_common_pusch_less_cell_v1430_present) { HANDLE_CODE(ul_cfg_r14->ul_pwr_ctrl_common_pusch_less_cell_v1430.pack(bref)); } } if (harq_ref_cfg_r14_present) { HANDLE_CODE(pack_enum(bref, harq_ref_cfg_r14)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *mbsfn_sf_cfg_list_v1430, 1, 8)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_scell_v1530_present, 1)); if (ul_pwr_ctrl_common_scell_v1530_present) { HANDLE_CODE(ul_pwr_ctrl_common_scell_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_common_scell_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ul_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(non_ul_cfg_r10.mbsfn_sf_cfg_list_r10_present, 1)); HANDLE_CODE(bref.unpack(non_ul_cfg_r10.tdd_cfg_r10_present, 1)); HANDLE_CODE(unpack_enum(non_ul_cfg_r10.dl_bw_r10, bref)); HANDLE_CODE(non_ul_cfg_r10.ant_info_common_r10.unpack(bref)); if (non_ul_cfg_r10.mbsfn_sf_cfg_list_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(non_ul_cfg_r10.mbsfn_sf_cfg_list_r10, bref, 1, 8)); } HANDLE_CODE(non_ul_cfg_r10.phich_cfg_r10.unpack(bref)); HANDLE_CODE(non_ul_cfg_r10.pdsch_cfg_common_r10.unpack(bref)); if (non_ul_cfg_r10.tdd_cfg_r10_present) { HANDLE_CODE(non_ul_cfg_r10.tdd_cfg_r10.unpack(bref)); } if (ul_cfg_r10_present) { HANDLE_CODE(bref.unpack(ul_cfg_r10.p_max_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.prach_cfg_scell_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.ul_freq_info_r10.ul_carrier_freq_r10_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r10.ul_freq_info_r10.ul_bw_r10_present, 1)); if (ul_cfg_r10.ul_freq_info_r10.ul_carrier_freq_r10_present) { HANDLE_CODE( unpack_unalign_integer(ul_cfg_r10.ul_freq_info_r10.ul_carrier_freq_r10, bref, (uint16_t)0, (uint16_t)65535)); } if (ul_cfg_r10.ul_freq_info_r10.ul_bw_r10_present) { HANDLE_CODE(unpack_enum(ul_cfg_r10.ul_freq_info_r10.ul_bw_r10, bref)); } HANDLE_CODE( unpack_unalign_integer(ul_cfg_r10.ul_freq_info_r10.add_spec_emission_scell_r10, bref, (uint8_t)1, (uint8_t)32)); if (ul_cfg_r10.p_max_r10_present) { HANDLE_CODE(unpack_unalign_integer(ul_cfg_r10.p_max_r10, bref, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(ul_cfg_r10.ul_pwr_ctrl_common_scell_r10.unpack(bref)); HANDLE_CODE(ul_cfg_r10.srs_ul_cfg_common_r10.unpack(bref)); HANDLE_CODE(unpack_enum(ul_cfg_r10.ul_cp_len_r10, bref)); if (ul_cfg_r10.prach_cfg_scell_r10_present) { HANDLE_CODE(ul_cfg_r10.prach_cfg_scell_r10.unpack(bref)); } HANDLE_CODE(ul_cfg_r10.pusch_cfg_common_r10.unpack(bref)); } if (ext) { ext_groups_header group_flags(7); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_carrier_freq_v1090_present, 1)); if (ul_carrier_freq_v1090_present) { HANDLE_CODE(unpack_unalign_integer(ul_carrier_freq_v1090, bref, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rach_cfg_common_scell_r11_present, 1)); HANDLE_CODE(bref.unpack(prach_cfg_scell_r11_present, 1)); HANDLE_CODE(bref.unpack(tdd_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_scell_v1130_present, 1)); if (rach_cfg_common_scell_r11_present) { rach_cfg_common_scell_r11 = make_copy_ptr(rach_cfg_common_scell_r11_s()); HANDLE_CODE(rach_cfg_common_scell_r11->unpack(bref)); } if (prach_cfg_scell_r11_present) { prach_cfg_scell_r11 = make_copy_ptr(prach_cfg_s()); HANDLE_CODE(prach_cfg_scell_r11->unpack(bref)); } if (tdd_cfg_v1130_present) { tdd_cfg_v1130 = make_copy_ptr(tdd_cfg_v1130_s()); HANDLE_CODE(tdd_cfg_v1130->unpack(bref)); } if (ul_pwr_ctrl_common_scell_v1130_present) { ul_pwr_ctrl_common_scell_v1130 = make_copy_ptr(ul_pwr_ctrl_common_scell_v1130_s()); HANDLE_CODE(ul_pwr_ctrl_common_scell_v1130->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pusch_cfg_common_v1270_present, 1)); if (pusch_cfg_common_v1270_present) { pusch_cfg_common_v1270 = make_copy_ptr(pusch_cfg_common_v1270_s()); HANDLE_CODE(pusch_cfg_common_v1270->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pucch_cfg_common_r13_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_scell_v1310_present, 1)); if (pucch_cfg_common_r13_present) { pucch_cfg_common_r13 = make_copy_ptr(pucch_cfg_common_s()); HANDLE_CODE(pucch_cfg_common_r13->unpack(bref)); } if (ul_pwr_ctrl_common_scell_v1310_present) { ul_pwr_ctrl_common_scell_v1310 = make_copy_ptr(ul_pwr_ctrl_common_scell_v1310_s()); HANDLE_CODE(ul_pwr_ctrl_common_scell_v1310->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(high_speed_cfg_scell_r14_present, 1)); HANDLE_CODE(bref.unpack(prach_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(harq_ref_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(srs_flex_timing_r14_present, 1)); if (high_speed_cfg_scell_r14_present) { high_speed_cfg_scell_r14 = make_copy_ptr(high_speed_cfg_scell_r14_s()); HANDLE_CODE(high_speed_cfg_scell_r14->unpack(bref)); } if (prach_cfg_v1430_present) { prach_cfg_v1430 = make_copy_ptr(prach_cfg_v1430_s()); HANDLE_CODE(prach_cfg_v1430->unpack(bref)); } if (ul_cfg_r14_present) { ul_cfg_r14 = make_copy_ptr(ul_cfg_r14_s_()); HANDLE_CODE(bref.unpack(ul_cfg_r14->p_max_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r14->prach_cfg_scell_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r14->ul_pwr_ctrl_common_pusch_less_cell_v1430_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r14->ul_freq_info_r14.ul_carrier_freq_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_cfg_r14->ul_freq_info_r14.ul_bw_r14_present, 1)); if (ul_cfg_r14->ul_freq_info_r14.ul_carrier_freq_r14_present) { HANDLE_CODE(unpack_unalign_integer(ul_cfg_r14->ul_freq_info_r14.ul_carrier_freq_r14, bref, (uint32_t)0, (uint32_t)262143)); } if (ul_cfg_r14->ul_freq_info_r14.ul_bw_r14_present) { HANDLE_CODE(unpack_enum(ul_cfg_r14->ul_freq_info_r14.ul_bw_r14, bref)); } HANDLE_CODE(unpack_unalign_integer(ul_cfg_r14->ul_freq_info_r14.add_spec_emission_scell_r14, bref, (uint8_t)1, (uint8_t)32)); if (ul_cfg_r14->p_max_r14_present) { HANDLE_CODE(unpack_unalign_integer(ul_cfg_r14->p_max_r14, bref, (int8_t)-30, (int8_t)33)); } HANDLE_CODE(ul_cfg_r14->srs_ul_cfg_common_r14.unpack(bref)); HANDLE_CODE(unpack_enum(ul_cfg_r14->ul_cp_len_r14, bref)); if (ul_cfg_r14->prach_cfg_scell_r14_present) { HANDLE_CODE(ul_cfg_r14->prach_cfg_scell_r14.unpack(bref)); } if (ul_cfg_r14->ul_pwr_ctrl_common_pusch_less_cell_v1430_present) { HANDLE_CODE(ul_cfg_r14->ul_pwr_ctrl_common_pusch_less_cell_v1430.unpack(bref)); } } if (harq_ref_cfg_r14_present) { HANDLE_CODE(unpack_enum(harq_ref_cfg_r14, bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_v1430_present, 1)); if (mbsfn_sf_cfg_list_v1430_present) { mbsfn_sf_cfg_list_v1430 = make_copy_ptr(mbsfn_sf_cfg_list_v1430_l()); HANDLE_CODE(unpack_dyn_seq_of(*mbsfn_sf_cfg_list_v1430, bref, 1, 8)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_scell_v1530_present, 1)); if (ul_pwr_ctrl_common_scell_v1530_present) { ul_pwr_ctrl_common_scell_v1530 = make_copy_ptr(ul_pwr_ctrl_common_v1530_s()); HANDLE_CODE(ul_pwr_ctrl_common_scell_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void rr_cfg_common_scell_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("nonUL-Configuration-r10"); j.start_obj(); j.write_str("dl-Bandwidth-r10", non_ul_cfg_r10.dl_bw_r10.to_string()); j.write_fieldname("antennaInfoCommon-r10"); non_ul_cfg_r10.ant_info_common_r10.to_json(j); if (non_ul_cfg_r10.mbsfn_sf_cfg_list_r10_present) { j.start_array("mbsfn-SubframeConfigList-r10"); for (uint32_t i1 = 0; i1 < non_ul_cfg_r10.mbsfn_sf_cfg_list_r10.size(); ++i1) { non_ul_cfg_r10.mbsfn_sf_cfg_list_r10[i1].to_json(j); } j.end_array(); } j.write_fieldname("phich-Config-r10"); non_ul_cfg_r10.phich_cfg_r10.to_json(j); j.write_fieldname("pdsch-ConfigCommon-r10"); non_ul_cfg_r10.pdsch_cfg_common_r10.to_json(j); if (non_ul_cfg_r10.tdd_cfg_r10_present) { j.write_fieldname("tdd-Config-r10"); non_ul_cfg_r10.tdd_cfg_r10.to_json(j); } j.end_obj(); if (ul_cfg_r10_present) { j.write_fieldname("ul-Configuration-r10"); j.start_obj(); j.write_fieldname("ul-FreqInfo-r10"); j.start_obj(); if (ul_cfg_r10.ul_freq_info_r10.ul_carrier_freq_r10_present) { j.write_int("ul-CarrierFreq-r10", ul_cfg_r10.ul_freq_info_r10.ul_carrier_freq_r10); } if (ul_cfg_r10.ul_freq_info_r10.ul_bw_r10_present) { j.write_str("ul-Bandwidth-r10", ul_cfg_r10.ul_freq_info_r10.ul_bw_r10.to_string()); } j.write_int("additionalSpectrumEmissionSCell-r10", ul_cfg_r10.ul_freq_info_r10.add_spec_emission_scell_r10); j.end_obj(); if (ul_cfg_r10.p_max_r10_present) { j.write_int("p-Max-r10", ul_cfg_r10.p_max_r10); } j.write_fieldname("uplinkPowerControlCommonSCell-r10"); ul_cfg_r10.ul_pwr_ctrl_common_scell_r10.to_json(j); j.write_fieldname("soundingRS-UL-ConfigCommon-r10"); ul_cfg_r10.srs_ul_cfg_common_r10.to_json(j); j.write_str("ul-CyclicPrefixLength-r10", ul_cfg_r10.ul_cp_len_r10.to_string()); if (ul_cfg_r10.prach_cfg_scell_r10_present) { j.write_fieldname("prach-ConfigSCell-r10"); ul_cfg_r10.prach_cfg_scell_r10.to_json(j); } j.write_fieldname("pusch-ConfigCommon-r10"); ul_cfg_r10.pusch_cfg_common_r10.to_json(j); j.end_obj(); } if (ext) { if (ul_carrier_freq_v1090_present) { j.write_int("ul-CarrierFreq-v1090", ul_carrier_freq_v1090); } rrc_asn1_warn_assert(rach_cfg_common_scell_r11_present != (rach_cfg_common_scell_r11.get() != NULL), __FILE__, __LINE__); if (rach_cfg_common_scell_r11_present) { j.write_fieldname("rach-ConfigCommonSCell-r11"); rach_cfg_common_scell_r11->to_json(j); } rrc_asn1_warn_assert(prach_cfg_scell_r11_present != (prach_cfg_scell_r11.get() != NULL), __FILE__, __LINE__); if (prach_cfg_scell_r11_present) { j.write_fieldname("prach-ConfigSCell-r11"); prach_cfg_scell_r11->to_json(j); } rrc_asn1_warn_assert(tdd_cfg_v1130_present != (tdd_cfg_v1130.get() != NULL), __FILE__, __LINE__); if (tdd_cfg_v1130_present) { j.write_fieldname("tdd-Config-v1130"); tdd_cfg_v1130->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_common_scell_v1130_present != (ul_pwr_ctrl_common_scell_v1130.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_scell_v1130_present) { j.write_fieldname("uplinkPowerControlCommonSCell-v1130"); ul_pwr_ctrl_common_scell_v1130->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_common_v1270_present != (pusch_cfg_common_v1270.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_common_v1270_present) { j.write_fieldname("pusch-ConfigCommon-v1270"); pusch_cfg_common_v1270->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_common_r13_present != (pucch_cfg_common_r13.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_common_r13_present) { j.write_fieldname("pucch-ConfigCommon-r13"); pucch_cfg_common_r13->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_common_scell_v1310_present != (ul_pwr_ctrl_common_scell_v1310.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_scell_v1310_present) { j.write_fieldname("uplinkPowerControlCommonSCell-v1310"); ul_pwr_ctrl_common_scell_v1310->to_json(j); } rrc_asn1_warn_assert(high_speed_cfg_scell_r14_present != (high_speed_cfg_scell_r14.get() != NULL), __FILE__, __LINE__); if (high_speed_cfg_scell_r14_present) { j.write_fieldname("highSpeedConfigSCell-r14"); high_speed_cfg_scell_r14->to_json(j); } rrc_asn1_warn_assert(prach_cfg_v1430_present != (prach_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (prach_cfg_v1430_present) { j.write_fieldname("prach-Config-v1430"); prach_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(ul_cfg_r14_present != (ul_cfg_r14.get() != NULL), __FILE__, __LINE__); if (ul_cfg_r14_present) { j.write_fieldname("ul-Configuration-r14"); j.start_obj(); j.write_fieldname("ul-FreqInfo-r14"); j.start_obj(); if (ul_cfg_r14->ul_freq_info_r14.ul_carrier_freq_r14_present) { j.write_int("ul-CarrierFreq-r14", ul_cfg_r14->ul_freq_info_r14.ul_carrier_freq_r14); } if (ul_cfg_r14->ul_freq_info_r14.ul_bw_r14_present) { j.write_str("ul-Bandwidth-r14", ul_cfg_r14->ul_freq_info_r14.ul_bw_r14.to_string()); } j.write_int("additionalSpectrumEmissionSCell-r14", ul_cfg_r14->ul_freq_info_r14.add_spec_emission_scell_r14); j.end_obj(); if (ul_cfg_r14->p_max_r14_present) { j.write_int("p-Max-r14", ul_cfg_r14->p_max_r14); } j.write_fieldname("soundingRS-UL-ConfigCommon-r14"); ul_cfg_r14->srs_ul_cfg_common_r14.to_json(j); j.write_str("ul-CyclicPrefixLength-r14", ul_cfg_r14->ul_cp_len_r14.to_string()); if (ul_cfg_r14->prach_cfg_scell_r14_present) { j.write_fieldname("prach-ConfigSCell-r14"); ul_cfg_r14->prach_cfg_scell_r14.to_json(j); } if (ul_cfg_r14->ul_pwr_ctrl_common_pusch_less_cell_v1430_present) { j.write_fieldname("uplinkPowerControlCommonPUSCH-LessCell-v1430"); ul_cfg_r14->ul_pwr_ctrl_common_pusch_less_cell_v1430.to_json(j); } j.end_obj(); } if (harq_ref_cfg_r14_present) { j.write_str("harq-ReferenceConfig-r14", harq_ref_cfg_r14.to_string()); } if (srs_flex_timing_r14_present) { j.write_str("soundingRS-FlexibleTiming-r14", "true"); } rrc_asn1_warn_assert(mbsfn_sf_cfg_list_v1430_present != (mbsfn_sf_cfg_list_v1430.get() != NULL), __FILE__, __LINE__); if (mbsfn_sf_cfg_list_v1430_present) { j.start_array("mbsfn-SubframeConfigList-v1430"); for (uint32_t i1 = 0; i1 < mbsfn_sf_cfg_list_v1430->size(); ++i1) { ((*mbsfn_sf_cfg_list_v1430)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(ul_pwr_ctrl_common_scell_v1530_present != (ul_pwr_ctrl_common_scell_v1530.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_scell_v1530_present) { j.write_fieldname("uplinkPowerControlCommonSCell-v1530"); ul_pwr_ctrl_common_scell_v1530->to_json(j); } } j.end_obj(); } // RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE SRSASN_CODE rr_cfg_ded_scell_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(phys_cfg_ded_scell_r10_present, 1)); if (phys_cfg_ded_scell_r10_present) { HANDLE_CODE(phys_cfg_ded_scell_r10.pack(bref)); } if (ext) { ext_groups_header group_flags(5); rrc_asn1_warn_assert(mac_main_cfg_scell_r11_present != (mac_main_cfg_scell_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= mac_main_cfg_scell_r11_present; rrc_asn1_warn_assert(naics_info_r12_present != (naics_info_r12.get() != NULL), __FILE__, __LINE__); group_flags[1] |= naics_info_r12_present; rrc_asn1_warn_assert(neigh_cells_crs_info_scell_r13_present != (neigh_cells_crs_info_scell_r13.get() != NULL), __FILE__, __LINE__); group_flags[2] |= neigh_cells_crs_info_scell_r13_present; rrc_asn1_warn_assert(phys_cfg_ded_scell_v1370_present != (phys_cfg_ded_scell_v1370.get() != NULL), __FILE__, __LINE__); group_flags[3] |= phys_cfg_ded_scell_v1370_present; group_flags[4] |= crs_intf_mitig_enabled_r15_present; rrc_asn1_warn_assert(neigh_cells_crs_info_r15_present != (neigh_cells_crs_info_r15.get() != NULL), __FILE__, __LINE__); group_flags[4] |= neigh_cells_crs_info_r15_present; rrc_asn1_warn_assert(sps_cfg_v1530_present != (sps_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[4] |= sps_cfg_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mac_main_cfg_scell_r11_present, 1)); if (mac_main_cfg_scell_r11_present) { HANDLE_CODE(mac_main_cfg_scell_r11->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(naics_info_r12_present, 1)); if (naics_info_r12_present) { HANDLE_CODE(naics_info_r12->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(neigh_cells_crs_info_scell_r13_present, 1)); if (neigh_cells_crs_info_scell_r13_present) { HANDLE_CODE(neigh_cells_crs_info_scell_r13->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(phys_cfg_ded_scell_v1370_present, 1)); if (phys_cfg_ded_scell_v1370_present) { HANDLE_CODE(phys_cfg_ded_scell_v1370->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(crs_intf_mitig_enabled_r15_present, 1)); HANDLE_CODE(bref.pack(neigh_cells_crs_info_r15_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_v1530_present, 1)); if (crs_intf_mitig_enabled_r15_present) { HANDLE_CODE(bref.pack(crs_intf_mitig_enabled_r15, 1)); } if (neigh_cells_crs_info_r15_present) { HANDLE_CODE(neigh_cells_crs_info_r15->pack(bref)); } if (sps_cfg_v1530_present) { HANDLE_CODE(sps_cfg_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_scell_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(phys_cfg_ded_scell_r10_present, 1)); if (phys_cfg_ded_scell_r10_present) { HANDLE_CODE(phys_cfg_ded_scell_r10.unpack(bref)); } if (ext) { ext_groups_header group_flags(5); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mac_main_cfg_scell_r11_present, 1)); if (mac_main_cfg_scell_r11_present) { mac_main_cfg_scell_r11 = make_copy_ptr(mac_main_cfg_scell_r11_s()); HANDLE_CODE(mac_main_cfg_scell_r11->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(naics_info_r12_present, 1)); if (naics_info_r12_present) { naics_info_r12 = make_copy_ptr(naics_assist_info_r12_c()); HANDLE_CODE(naics_info_r12->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(neigh_cells_crs_info_scell_r13_present, 1)); if (neigh_cells_crs_info_scell_r13_present) { neigh_cells_crs_info_scell_r13 = make_copy_ptr(neigh_cells_crs_info_r13_c()); HANDLE_CODE(neigh_cells_crs_info_scell_r13->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(phys_cfg_ded_scell_v1370_present, 1)); if (phys_cfg_ded_scell_v1370_present) { phys_cfg_ded_scell_v1370 = make_copy_ptr(phys_cfg_ded_scell_v1370_s()); HANDLE_CODE(phys_cfg_ded_scell_v1370->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(crs_intf_mitig_enabled_r15_present, 1)); HANDLE_CODE(bref.unpack(neigh_cells_crs_info_r15_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_v1530_present, 1)); if (crs_intf_mitig_enabled_r15_present) { HANDLE_CODE(bref.unpack(crs_intf_mitig_enabled_r15, 1)); } if (neigh_cells_crs_info_r15_present) { neigh_cells_crs_info_r15 = make_copy_ptr(neigh_cells_crs_info_r15_c()); HANDLE_CODE(neigh_cells_crs_info_r15->unpack(bref)); } if (sps_cfg_v1530_present) { sps_cfg_v1530 = make_copy_ptr(sps_cfg_v1530_s()); HANDLE_CODE(sps_cfg_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void rr_cfg_ded_scell_r10_s::to_json(json_writer& j) const { j.start_obj(); if (phys_cfg_ded_scell_r10_present) { j.write_fieldname("physicalConfigDedicatedSCell-r10"); phys_cfg_ded_scell_r10.to_json(j); } if (ext) { rrc_asn1_warn_assert(mac_main_cfg_scell_r11_present != (mac_main_cfg_scell_r11.get() != NULL), __FILE__, __LINE__); if (mac_main_cfg_scell_r11_present) { j.write_fieldname("mac-MainConfigSCell-r11"); mac_main_cfg_scell_r11->to_json(j); } rrc_asn1_warn_assert(naics_info_r12_present != (naics_info_r12.get() != NULL), __FILE__, __LINE__); if (naics_info_r12_present) { j.write_fieldname("naics-Info-r12"); naics_info_r12->to_json(j); } rrc_asn1_warn_assert(neigh_cells_crs_info_scell_r13_present != (neigh_cells_crs_info_scell_r13.get() != NULL), __FILE__, __LINE__); if (neigh_cells_crs_info_scell_r13_present) { j.write_fieldname("neighCellsCRS-InfoSCell-r13"); neigh_cells_crs_info_scell_r13->to_json(j); } rrc_asn1_warn_assert(phys_cfg_ded_scell_v1370_present != (phys_cfg_ded_scell_v1370.get() != NULL), __FILE__, __LINE__); if (phys_cfg_ded_scell_v1370_present) { j.write_fieldname("physicalConfigDedicatedSCell-v1370"); phys_cfg_ded_scell_v1370->to_json(j); } if (crs_intf_mitig_enabled_r15_present) { j.write_bool("crs-IntfMitigEnabled-r15", crs_intf_mitig_enabled_r15); } rrc_asn1_warn_assert(neigh_cells_crs_info_r15_present != (neigh_cells_crs_info_r15.get() != NULL), __FILE__, __LINE__); if (neigh_cells_crs_info_r15_present) { j.write_fieldname("neighCellsCRS-Info-r15"); neigh_cells_crs_info_r15->to_json(j); } rrc_asn1_warn_assert(sps_cfg_v1530_present != (sps_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (sps_cfg_v1530_present) { j.write_fieldname("sps-Config-v1530"); sps_cfg_v1530->to_json(j); } } j.end_obj(); } // SCellToAddModExt-r13 ::= SEQUENCE SRSASN_CODE scell_to_add_mod_ext_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_identif_r13_present, 1)); HANDLE_CODE(bref.pack(rr_cfg_common_scell_r13_present, 1)); HANDLE_CODE(bref.pack(rr_cfg_ded_scell_r13_present, 1)); HANDLE_CODE(bref.pack(ant_info_ded_scell_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, s_cell_idx_r13, (uint8_t)1, (uint8_t)31)); if (cell_identif_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_identif_r13.pci_r13, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, cell_identif_r13.dl_carrier_freq_r13, (uint32_t)0, (uint32_t)262143)); } if (rr_cfg_common_scell_r13_present) { HANDLE_CODE(rr_cfg_common_scell_r13.pack(bref)); } if (rr_cfg_ded_scell_r13_present) { HANDLE_CODE(rr_cfg_ded_scell_r13.pack(bref)); } if (ant_info_ded_scell_r13_present) { HANDLE_CODE(ant_info_ded_scell_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scell_to_add_mod_ext_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_identif_r13_present, 1)); HANDLE_CODE(bref.unpack(rr_cfg_common_scell_r13_present, 1)); HANDLE_CODE(bref.unpack(rr_cfg_ded_scell_r13_present, 1)); HANDLE_CODE(bref.unpack(ant_info_ded_scell_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(s_cell_idx_r13, bref, (uint8_t)1, (uint8_t)31)); if (cell_identif_r13_present) { HANDLE_CODE(unpack_unalign_integer(cell_identif_r13.pci_r13, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(cell_identif_r13.dl_carrier_freq_r13, bref, (uint32_t)0, (uint32_t)262143)); } if (rr_cfg_common_scell_r13_present) { HANDLE_CODE(rr_cfg_common_scell_r13.unpack(bref)); } if (rr_cfg_ded_scell_r13_present) { HANDLE_CODE(rr_cfg_ded_scell_r13.unpack(bref)); } if (ant_info_ded_scell_r13_present) { HANDLE_CODE(ant_info_ded_scell_r13.unpack(bref)); } return SRSASN_SUCCESS; } void scell_to_add_mod_ext_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sCellIndex-r13", s_cell_idx_r13); if (cell_identif_r13_present) { j.write_fieldname("cellIdentification-r13"); j.start_obj(); j.write_int("physCellId-r13", cell_identif_r13.pci_r13); j.write_int("dl-CarrierFreq-r13", cell_identif_r13.dl_carrier_freq_r13); j.end_obj(); } if (rr_cfg_common_scell_r13_present) { j.write_fieldname("radioResourceConfigCommonSCell-r13"); rr_cfg_common_scell_r13.to_json(j); } if (rr_cfg_ded_scell_r13_present) { j.write_fieldname("radioResourceConfigDedicatedSCell-r13"); rr_cfg_ded_scell_r13.to_json(j); } if (ant_info_ded_scell_r13_present) { j.write_fieldname("antennaInfoDedicatedSCell-r13"); ant_info_ded_scell_r13.to_json(j); } j.end_obj(); } // SCellConfigCommon-r15 ::= SEQUENCE SRSASN_CODE scell_cfg_common_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rr_cfg_common_scell_r15_present, 1)); HANDLE_CODE(bref.pack(rr_cfg_ded_scell_r15_present, 1)); HANDLE_CODE(bref.pack(ant_info_ded_scell_r15_present, 1)); if (rr_cfg_common_scell_r15_present) { HANDLE_CODE(rr_cfg_common_scell_r15.pack(bref)); } if (rr_cfg_ded_scell_r15_present) { HANDLE_CODE(rr_cfg_ded_scell_r15.pack(bref)); } if (ant_info_ded_scell_r15_present) { HANDLE_CODE(ant_info_ded_scell_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scell_cfg_common_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rr_cfg_common_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(rr_cfg_ded_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(ant_info_ded_scell_r15_present, 1)); if (rr_cfg_common_scell_r15_present) { HANDLE_CODE(rr_cfg_common_scell_r15.unpack(bref)); } if (rr_cfg_ded_scell_r15_present) { HANDLE_CODE(rr_cfg_ded_scell_r15.unpack(bref)); } if (ant_info_ded_scell_r15_present) { HANDLE_CODE(ant_info_ded_scell_r15.unpack(bref)); } return SRSASN_SUCCESS; } void scell_cfg_common_r15_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_common_scell_r15_present) { j.write_fieldname("radioResourceConfigCommonSCell-r15"); rr_cfg_common_scell_r15.to_json(j); } if (rr_cfg_ded_scell_r15_present) { j.write_fieldname("radioResourceConfigDedicatedSCell-r15"); rr_cfg_ded_scell_r15.to_json(j); } if (ant_info_ded_scell_r15_present) { j.write_fieldname("antennaInfoDedicatedSCell-r15"); ant_info_ded_scell_r15.to_json(j); } j.end_obj(); } // SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE SRSASN_CODE sl_disc_tx_pool_to_add_mod_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pool_id_r12, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pool_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_pool_to_add_mod_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pool_id_r12, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pool_r12.unpack(bref)); return SRSASN_SUCCESS; } void sl_disc_tx_pool_to_add_mod_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("poolIdentity-r12", pool_id_r12); j.write_fieldname("pool-r12"); pool_r12.to_json(j); j.end_obj(); } // SL-TF-IndexPair-r12b ::= SEQUENCE SRSASN_CODE sl_tf_idx_pair_r12b_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(disc_sf_idx_r12b_present, 1)); HANDLE_CODE(bref.pack(disc_prb_idx_r12b_present, 1)); if (disc_sf_idx_r12b_present) { HANDLE_CODE(pack_unalign_integer(bref, disc_sf_idx_r12b, (uint8_t)0, (uint8_t)209)); } if (disc_prb_idx_r12b_present) { HANDLE_CODE(pack_unalign_integer(bref, disc_prb_idx_r12b, (uint8_t)0, (uint8_t)49)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_tf_idx_pair_r12b_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(disc_sf_idx_r12b_present, 1)); HANDLE_CODE(bref.unpack(disc_prb_idx_r12b_present, 1)); if (disc_sf_idx_r12b_present) { HANDLE_CODE(unpack_unalign_integer(disc_sf_idx_r12b, bref, (uint8_t)0, (uint8_t)209)); } if (disc_prb_idx_r12b_present) { HANDLE_CODE(unpack_unalign_integer(disc_prb_idx_r12b, bref, (uint8_t)0, (uint8_t)49)); } return SRSASN_SUCCESS; } void sl_tf_idx_pair_r12b_s::to_json(json_writer& j) const { j.start_obj(); if (disc_sf_idx_r12b_present) { j.write_int("discSF-Index-r12b", disc_sf_idx_r12b); } if (disc_prb_idx_r12b_present) { j.write_int("discPRB-Index-r12b", disc_prb_idx_r12b); } j.end_obj(); } // SCellGroupToAddMod-r15 ::= SEQUENCE SRSASN_CODE scell_group_to_add_mod_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(s_cell_cfg_common_r15_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_release_list_r15_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, s_cell_group_idx_r15, (uint8_t)1, (uint8_t)4)); if (s_cell_cfg_common_r15_present) { HANDLE_CODE(s_cell_cfg_common_r15.pack(bref)); } if (s_cell_to_release_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_release_list_r15, 1, 31, UnalignedIntegerPacker(1, 31))); } if (s_cell_to_add_mod_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_r15, 1, 31)); } return SRSASN_SUCCESS; } SRSASN_CODE scell_group_to_add_mod_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(s_cell_cfg_common_r15_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_release_list_r15_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(s_cell_group_idx_r15, bref, (uint8_t)1, (uint8_t)4)); if (s_cell_cfg_common_r15_present) { HANDLE_CODE(s_cell_cfg_common_r15.unpack(bref)); } if (s_cell_to_release_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_release_list_r15, bref, 1, 31, UnalignedIntegerPacker(1, 31))); } if (s_cell_to_add_mod_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_r15, bref, 1, 31)); } return SRSASN_SUCCESS; } void scell_group_to_add_mod_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sCellGroupIndex-r15", s_cell_group_idx_r15); if (s_cell_cfg_common_r15_present) { j.write_fieldname("sCellConfigCommon-r15"); s_cell_cfg_common_r15.to_json(j); } if (s_cell_to_release_list_r15_present) { j.start_array("sCellToReleaseList-r15"); for (uint32_t i1 = 0; i1 < s_cell_to_release_list_r15.size(); ++i1) { j.write_int(s_cell_to_release_list_r15[i1]); } j.end_array(); } if (s_cell_to_add_mod_list_r15_present) { j.start_array("sCellToAddModList-r15"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_r15.size(); ++i1) { s_cell_to_add_mod_list_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SL-HoppingConfigDisc-r12 ::= SEQUENCE SRSASN_CODE sl_hop_cfg_disc_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, a_r12, (uint8_t)1, (uint8_t)200)); HANDLE_CODE(pack_unalign_integer(bref, b_r12, (uint8_t)1, (uint8_t)10)); HANDLE_CODE(pack_enum(bref, c_r12)); return SRSASN_SUCCESS; } SRSASN_CODE sl_hop_cfg_disc_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(a_r12, bref, (uint8_t)1, (uint8_t)200)); HANDLE_CODE(unpack_unalign_integer(b_r12, bref, (uint8_t)1, (uint8_t)10)); HANDLE_CODE(unpack_enum(c_r12, bref)); return SRSASN_SUCCESS; } void sl_hop_cfg_disc_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("a-r12", a_r12); j.write_int("b-r12", b_r12); j.write_str("c-r12", c_r12.to_string()); j.end_obj(); } // SecurityAlgorithmConfig ::= SEQUENCE SRSASN_CODE security_algorithm_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, ciphering_algorithm)); HANDLE_CODE(pack_enum(bref, integrity_prot_algorithm)); return SRSASN_SUCCESS; } SRSASN_CODE security_algorithm_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(ciphering_algorithm, bref)); HANDLE_CODE(unpack_enum(integrity_prot_algorithm, bref)); return SRSASN_SUCCESS; } void security_algorithm_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cipheringAlgorithm", ciphering_algorithm.to_string()); j.write_str("integrityProtAlgorithm", integrity_prot_algorithm.to_string()); j.end_obj(); } // DRB-ToAddModSCG-r12 ::= SEQUENCE SRSASN_CODE drb_to_add_mod_scg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(drb_type_r12_present, 1)); HANDLE_CODE(bref.pack(rlc_cfg_scg_r12_present, 1)); HANDLE_CODE(bref.pack(rlc_cfg_v1250_present, 1)); HANDLE_CODE(bref.pack(lc_ch_id_scg_r12_present, 1)); HANDLE_CODE(bref.pack(lc_ch_cfg_scg_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, drb_id_r12, (uint8_t)1, (uint8_t)32)); if (drb_type_r12_present) { HANDLE_CODE(drb_type_r12.pack(bref)); } if (rlc_cfg_scg_r12_present) { HANDLE_CODE(rlc_cfg_scg_r12.pack(bref)); } if (rlc_cfg_v1250_present) { HANDLE_CODE(rlc_cfg_v1250.pack(bref)); } if (lc_ch_id_scg_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, lc_ch_id_scg_r12, (uint8_t)3, (uint8_t)10)); } if (lc_ch_cfg_scg_r12_present) { HANDLE_CODE(lc_ch_cfg_scg_r12.pack(bref)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(rlc_cfg_v1430_present != (rlc_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[0] |= rlc_cfg_v1430_present; group_flags[1] |= lc_ch_id_scg_r15_present; rrc_asn1_warn_assert(rlc_cfg_v1530_present != (rlc_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[1] |= rlc_cfg_v1530_present; rrc_asn1_warn_assert(rlc_bearer_cfg_dupl_r15_present != (rlc_bearer_cfg_dupl_r15.get() != NULL), __FILE__, __LINE__); group_flags[1] |= rlc_bearer_cfg_dupl_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rlc_cfg_v1430_present, 1)); if (rlc_cfg_v1430_present) { HANDLE_CODE(rlc_cfg_v1430->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(lc_ch_id_scg_r15_present, 1)); HANDLE_CODE(bref.pack(rlc_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(rlc_bearer_cfg_dupl_r15_present, 1)); if (lc_ch_id_scg_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, lc_ch_id_scg_r15, (uint8_t)32, (uint8_t)38)); } if (rlc_cfg_v1530_present) { HANDLE_CODE(rlc_cfg_v1530->pack(bref)); } if (rlc_bearer_cfg_dupl_r15_present) { HANDLE_CODE(rlc_bearer_cfg_dupl_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE drb_to_add_mod_scg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(drb_type_r12_present, 1)); HANDLE_CODE(bref.unpack(rlc_cfg_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(rlc_cfg_v1250_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_id_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_cfg_scg_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(drb_id_r12, bref, (uint8_t)1, (uint8_t)32)); if (drb_type_r12_present) { HANDLE_CODE(drb_type_r12.unpack(bref)); } if (rlc_cfg_scg_r12_present) { HANDLE_CODE(rlc_cfg_scg_r12.unpack(bref)); } if (rlc_cfg_v1250_present) { HANDLE_CODE(rlc_cfg_v1250.unpack(bref)); } if (lc_ch_id_scg_r12_present) { HANDLE_CODE(unpack_unalign_integer(lc_ch_id_scg_r12, bref, (uint8_t)3, (uint8_t)10)); } if (lc_ch_cfg_scg_r12_present) { HANDLE_CODE(lc_ch_cfg_scg_r12.unpack(bref)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rlc_cfg_v1430_present, 1)); if (rlc_cfg_v1430_present) { rlc_cfg_v1430 = make_copy_ptr(rlc_cfg_v1430_c()); HANDLE_CODE(rlc_cfg_v1430->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(lc_ch_id_scg_r15_present, 1)); HANDLE_CODE(bref.unpack(rlc_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(rlc_bearer_cfg_dupl_r15_present, 1)); if (lc_ch_id_scg_r15_present) { HANDLE_CODE(unpack_unalign_integer(lc_ch_id_scg_r15, bref, (uint8_t)32, (uint8_t)38)); } if (rlc_cfg_v1530_present) { rlc_cfg_v1530 = make_copy_ptr(rlc_cfg_v1530_c()); HANDLE_CODE(rlc_cfg_v1530->unpack(bref)); } if (rlc_bearer_cfg_dupl_r15_present) { rlc_bearer_cfg_dupl_r15 = make_copy_ptr(rlc_bearer_cfg_r15_c()); HANDLE_CODE(rlc_bearer_cfg_dupl_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void drb_to_add_mod_scg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("drb-Identity-r12", drb_id_r12); if (drb_type_r12_present) { j.write_fieldname("drb-Type-r12"); drb_type_r12.to_json(j); } if (rlc_cfg_scg_r12_present) { j.write_fieldname("rlc-ConfigSCG-r12"); rlc_cfg_scg_r12.to_json(j); } if (rlc_cfg_v1250_present) { j.write_fieldname("rlc-Config-v1250"); rlc_cfg_v1250.to_json(j); } if (lc_ch_id_scg_r12_present) { j.write_int("logicalChannelIdentitySCG-r12", lc_ch_id_scg_r12); } if (lc_ch_cfg_scg_r12_present) { j.write_fieldname("logicalChannelConfigSCG-r12"); lc_ch_cfg_scg_r12.to_json(j); } if (ext) { rrc_asn1_warn_assert(rlc_cfg_v1430_present != (rlc_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (rlc_cfg_v1430_present) { j.write_fieldname("rlc-Config-v1430"); rlc_cfg_v1430->to_json(j); } if (lc_ch_id_scg_r15_present) { j.write_int("logicalChannelIdentitySCG-r15", lc_ch_id_scg_r15); } rrc_asn1_warn_assert(rlc_cfg_v1530_present != (rlc_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (rlc_cfg_v1530_present) { j.write_fieldname("rlc-Config-v1530"); rlc_cfg_v1530->to_json(j); } rrc_asn1_warn_assert(rlc_bearer_cfg_dupl_r15_present != (rlc_bearer_cfg_dupl_r15.get() != NULL), __FILE__, __LINE__); if (rlc_bearer_cfg_dupl_r15_present) { j.write_fieldname("rlc-BearerConfigDupl-r15"); rlc_bearer_cfg_dupl_r15->to_json(j); } } j.end_obj(); } void drb_to_add_mod_scg_r12_s::drb_type_r12_c_::set(types::options e) { type_ = e; } void drb_to_add_mod_scg_r12_s::drb_type_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::split_r12: break; case types::scg_r12: j.write_fieldname("scg-r12"); j.start_obj(); if (c.eps_bearer_id_r12_present) { j.write_int("eps-BearerIdentity-r12", c.eps_bearer_id_r12); } if (c.pdcp_cfg_r12_present) { j.write_fieldname("pdcp-Config-r12"); c.pdcp_cfg_r12.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "drb_to_add_mod_scg_r12_s::drb_type_r12_c_"); } j.end_obj(); } SRSASN_CODE drb_to_add_mod_scg_r12_s::drb_type_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::split_r12: break; case types::scg_r12: HANDLE_CODE(bref.pack(c.eps_bearer_id_r12_present, 1)); HANDLE_CODE(bref.pack(c.pdcp_cfg_r12_present, 1)); if (c.eps_bearer_id_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, c.eps_bearer_id_r12, (uint8_t)0, (uint8_t)15)); } if (c.pdcp_cfg_r12_present) { HANDLE_CODE(c.pdcp_cfg_r12.pack(bref)); } break; default: log_invalid_choice_id(type_, "drb_to_add_mod_scg_r12_s::drb_type_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE drb_to_add_mod_scg_r12_s::drb_type_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::split_r12: break; case types::scg_r12: HANDLE_CODE(bref.unpack(c.eps_bearer_id_r12_present, 1)); HANDLE_CODE(bref.unpack(c.pdcp_cfg_r12_present, 1)); if (c.eps_bearer_id_r12_present) { HANDLE_CODE(unpack_unalign_integer(c.eps_bearer_id_r12, bref, (uint8_t)0, (uint8_t)15)); } if (c.pdcp_cfg_r12_present) { HANDLE_CODE(c.pdcp_cfg_r12.unpack(bref)); } break; default: log_invalid_choice_id(type_, "drb_to_add_mod_scg_r12_s::drb_type_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // IKE-Identity-r13 ::= SEQUENCE SRSASN_CODE ike_id_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(id_i_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ike_id_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(id_i_r13.unpack(bref)); return SRSASN_SUCCESS; } void ike_id_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("idI-r13", id_i_r13.to_string()); j.end_obj(); } // IP-Address-r13 ::= CHOICE void ip_address_r13_c::destroy_() { switch (type_) { case types::ipv4_r13: c.destroy >(); break; case types::ipv6_r13: c.destroy >(); break; default: break; } } void ip_address_r13_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ipv4_r13: c.init >(); break; case types::ipv6_r13: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ip_address_r13_c"); } } ip_address_r13_c::ip_address_r13_c(const ip_address_r13_c& other) { type_ = other.type(); switch (type_) { case types::ipv4_r13: c.init(other.c.get >()); break; case types::ipv6_r13: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ip_address_r13_c"); } } ip_address_r13_c& ip_address_r13_c::operator=(const ip_address_r13_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ipv4_r13: c.set(other.c.get >()); break; case types::ipv6_r13: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ip_address_r13_c"); } return *this; } void ip_address_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ipv4_r13: j.write_str("ipv4-r13", c.get >().to_string()); break; case types::ipv6_r13: j.write_str("ipv6-r13", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "ip_address_r13_c"); } j.end_obj(); } SRSASN_CODE ip_address_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ipv4_r13: HANDLE_CODE(c.get >().pack(bref)); break; case types::ipv6_r13: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "ip_address_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ip_address_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ipv4_r13: HANDLE_CODE(c.get >().unpack(bref)); break; case types::ipv6_r13: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "ip_address_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PhysicalConfigDedicated-v1370 ::= SEQUENCE SRSASN_CODE phys_cfg_ded_v1370_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pucch_cfg_ded_v1370_present, 1)); if (pucch_cfg_ded_v1370_present) { HANDLE_CODE(pucch_cfg_ded_v1370.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE phys_cfg_ded_v1370_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pucch_cfg_ded_v1370_present, 1)); if (pucch_cfg_ded_v1370_present) { HANDLE_CODE(pucch_cfg_ded_v1370.unpack(bref)); } return SRSASN_SUCCESS; } void phys_cfg_ded_v1370_s::to_json(json_writer& j) const { j.start_obj(); if (pucch_cfg_ded_v1370_present) { j.write_fieldname("pucch-ConfigDedicated-v1370"); pucch_cfg_ded_v1370.to_json(j); } j.end_obj(); } // RAN-AreaConfig-r15 ::= SEQUENCE SRSASN_CODE ran_area_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ran_area_code_list_r15_present, 1)); HANDLE_CODE(tac_minus5_gc_r15.pack(bref)); if (ran_area_code_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ran_area_code_list_r15, 1, 32, UnalignedIntegerPacker(0, 255))); } return SRSASN_SUCCESS; } SRSASN_CODE ran_area_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ran_area_code_list_r15_present, 1)); HANDLE_CODE(tac_minus5_gc_r15.unpack(bref)); if (ran_area_code_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(ran_area_code_list_r15, bref, 1, 32, UnalignedIntegerPacker(0, 255))); } return SRSASN_SUCCESS; } void ran_area_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("trackingAreaCode-5GC-r15", tac_minus5_gc_r15.to_string()); if (ran_area_code_list_r15_present) { j.start_array("ran-AreaCodeList-r15"); for (uint32_t i1 = 0; i1 < ran_area_code_list_r15.size(); ++i1) { j.write_int(ran_area_code_list_r15[i1]); } j.end_array(); } j.end_obj(); } // RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE SRSASN_CODE rr_cfg_common_scell_v10l0_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, ul_cfg_v10l0.add_spec_emission_scell_v10l0, (uint16_t)33, (uint16_t)288)); return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_common_scell_v10l0_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(ul_cfg_v10l0.add_spec_emission_scell_v10l0, bref, (uint16_t)33, (uint16_t)288)); return SRSASN_SUCCESS; } void rr_cfg_common_scell_v10l0_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ul-Configuration-v10l0"); j.start_obj(); j.write_int("additionalSpectrumEmissionSCell-v10l0", ul_cfg_v10l0.add_spec_emission_scell_v10l0); j.end_obj(); j.end_obj(); } // RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE SRSASN_CODE rr_cfg_common_scell_v1440_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, ul_cfg_v1440.ul_freq_info_v1440.add_spec_emission_scell_v1440, (uint16_t)33, (uint16_t)288)); return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_common_scell_v1440_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(ul_cfg_v1440.ul_freq_info_v1440.add_spec_emission_scell_v1440, bref, (uint16_t)33, (uint16_t)288)); return SRSASN_SUCCESS; } void rr_cfg_common_scell_v1440_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ul-Configuration-v1440"); j.start_obj(); j.write_fieldname("ul-FreqInfo-v1440"); j.start_obj(); j.write_int("additionalSpectrumEmissionSCell-v1440", ul_cfg_v1440.ul_freq_info_v1440.add_spec_emission_scell_v1440); j.end_obj(); j.end_obj(); j.end_obj(); } // SL-DiscTxConfigScheduled-r13 ::= SEQUENCE SRSASN_CODE sl_disc_tx_cfg_sched_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(disc_tx_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tf_idx_list_r13_present, 1)); HANDLE_CODE(bref.pack(disc_hop_cfg_r13_present, 1)); if (disc_tx_cfg_r13_present) { HANDLE_CODE(disc_tx_cfg_r13.pack(bref)); } if (disc_tf_idx_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_tf_idx_list_r13, 1, 64)); } if (disc_hop_cfg_r13_present) { HANDLE_CODE(disc_hop_cfg_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_cfg_sched_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(disc_tx_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tf_idx_list_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_hop_cfg_r13_present, 1)); if (disc_tx_cfg_r13_present) { HANDLE_CODE(disc_tx_cfg_r13.unpack(bref)); } if (disc_tf_idx_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_tf_idx_list_r13, bref, 1, 64)); } if (disc_hop_cfg_r13_present) { HANDLE_CODE(disc_hop_cfg_r13.unpack(bref)); } return SRSASN_SUCCESS; } void sl_disc_tx_cfg_sched_r13_s::to_json(json_writer& j) const { j.start_obj(); if (disc_tx_cfg_r13_present) { j.write_fieldname("discTxConfig-r13"); disc_tx_cfg_r13.to_json(j); } if (disc_tf_idx_list_r13_present) { j.start_array("discTF-IndexList-r13"); for (uint32_t i1 = 0; i1 < disc_tf_idx_list_r13.size(); ++i1) { disc_tf_idx_list_r13[i1].to_json(j); } j.end_array(); } if (disc_hop_cfg_r13_present) { j.write_fieldname("discHoppingConfig-r13"); disc_hop_cfg_r13.to_json(j); } j.end_obj(); } // SL-DiscTxPoolDedicated-r13 ::= SEQUENCE SRSASN_CODE sl_disc_tx_pool_ded_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pool_to_release_list_r13_present, 1)); HANDLE_CODE(bref.pack(pool_to_add_mod_list_r13_present, 1)); if (pool_to_release_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, pool_to_release_list_r13, 1, 4, UnalignedIntegerPacker(1, 4))); } if (pool_to_add_mod_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, pool_to_add_mod_list_r13, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_pool_ded_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pool_to_release_list_r13_present, 1)); HANDLE_CODE(bref.unpack(pool_to_add_mod_list_r13_present, 1)); if (pool_to_release_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(pool_to_release_list_r13, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (pool_to_add_mod_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(pool_to_add_mod_list_r13, bref, 1, 4)); } return SRSASN_SUCCESS; } void sl_disc_tx_pool_ded_r13_s::to_json(json_writer& j) const { j.start_obj(); if (pool_to_release_list_r13_present) { j.start_array("poolToReleaseList-r13"); for (uint32_t i1 = 0; i1 < pool_to_release_list_r13.size(); ++i1) { j.write_int(pool_to_release_list_r13[i1]); } j.end_array(); } if (pool_to_add_mod_list_r13_present) { j.start_array("poolToAddModList-r13"); for (uint32_t i1 = 0; i1 < pool_to_add_mod_list_r13.size(); ++i1) { pool_to_add_mod_list_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SL-TxPoolToAddMod-r14 ::= SEQUENCE SRSASN_CODE sl_tx_pool_to_add_mod_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pool_id_r14, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pool_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_tx_pool_to_add_mod_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pool_id_r14, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pool_r14.unpack(bref)); return SRSASN_SUCCESS; } void sl_tx_pool_to_add_mod_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("poolIdentity-r14", pool_id_r14); j.write_fieldname("pool-r14"); pool_r14.to_json(j); j.end_obj(); } // SecurityConfigHO-v1530 ::= SEQUENCE SRSASN_CODE security_cfg_ho_v1530_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(ho_type_v1530.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE security_cfg_ho_v1530_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(ho_type_v1530.unpack(bref)); return SRSASN_SUCCESS; } void security_cfg_ho_v1530_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("handoverType-v1530"); ho_type_v1530.to_json(j); j.end_obj(); } void security_cfg_ho_v1530_s::ho_type_v1530_c_::destroy_() { switch (type_) { case types::intra5_gc_r15: c.destroy(); break; case types::ngc_to_epc_r15: c.destroy(); break; case types::epc_to_ngc_r15: c.destroy(); break; default: break; } } void security_cfg_ho_v1530_s::ho_type_v1530_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::intra5_gc_r15: c.init(); break; case types::ngc_to_epc_r15: c.init(); break; case types::epc_to_ngc_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_cfg_ho_v1530_s::ho_type_v1530_c_"); } } security_cfg_ho_v1530_s::ho_type_v1530_c_::ho_type_v1530_c_(const security_cfg_ho_v1530_s::ho_type_v1530_c_& other) { type_ = other.type(); switch (type_) { case types::intra5_gc_r15: c.init(other.c.get()); break; case types::ngc_to_epc_r15: c.init(other.c.get()); break; case types::epc_to_ngc_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_cfg_ho_v1530_s::ho_type_v1530_c_"); } } security_cfg_ho_v1530_s::ho_type_v1530_c_& security_cfg_ho_v1530_s::ho_type_v1530_c_:: operator=(const security_cfg_ho_v1530_s::ho_type_v1530_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::intra5_gc_r15: c.set(other.c.get()); break; case types::ngc_to_epc_r15: c.set(other.c.get()); break; case types::epc_to_ngc_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_cfg_ho_v1530_s::ho_type_v1530_c_"); } return *this; } void security_cfg_ho_v1530_s::ho_type_v1530_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::intra5_gc_r15: j.write_fieldname("intra5GC-r15"); j.start_obj(); if (c.get().security_algorithm_cfg_r15_present) { j.write_fieldname("securityAlgorithmConfig-r15"); c.get().security_algorithm_cfg_r15.to_json(j); } j.write_bool("keyChangeIndicator-r15", c.get().key_change_ind_r15); j.write_int("nextHopChainingCount-r15", c.get().next_hop_chaining_count_r15); if (c.get().nas_container_r15_present) { j.write_str("nas-Container-r15", c.get().nas_container_r15.to_string()); } j.end_obj(); break; case types::ngc_to_epc_r15: j.write_fieldname("ngc-ToEPC-r15"); j.start_obj(); j.write_fieldname("securityAlgorithmConfig-r15"); c.get().security_algorithm_cfg_r15.to_json(j); j.write_int("nextHopChainingCount-r15", c.get().next_hop_chaining_count_r15); j.end_obj(); break; case types::epc_to_ngc_r15: j.write_fieldname("epc-ToNGC-r15"); j.start_obj(); j.write_fieldname("securityAlgorithmConfig-r15"); c.get().security_algorithm_cfg_r15.to_json(j); j.write_str("nas-Container-r15", c.get().nas_container_r15.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "security_cfg_ho_v1530_s::ho_type_v1530_c_"); } j.end_obj(); } SRSASN_CODE security_cfg_ho_v1530_s::ho_type_v1530_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::intra5_gc_r15: HANDLE_CODE(bref.pack(c.get().security_algorithm_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.get().nas_container_r15_present, 1)); if (c.get().security_algorithm_cfg_r15_present) { HANDLE_CODE(c.get().security_algorithm_cfg_r15.pack(bref)); } HANDLE_CODE(bref.pack(c.get().key_change_ind_r15, 1)); HANDLE_CODE( pack_unalign_integer(bref, c.get().next_hop_chaining_count_r15, (uint8_t)0, (uint8_t)7)); if (c.get().nas_container_r15_present) { HANDLE_CODE(c.get().nas_container_r15.pack(bref)); } break; case types::ngc_to_epc_r15: HANDLE_CODE(c.get().security_algorithm_cfg_r15.pack(bref)); HANDLE_CODE( pack_unalign_integer(bref, c.get().next_hop_chaining_count_r15, (uint8_t)0, (uint8_t)7)); break; case types::epc_to_ngc_r15: HANDLE_CODE(c.get().security_algorithm_cfg_r15.pack(bref)); HANDLE_CODE(c.get().nas_container_r15.pack(bref)); break; default: log_invalid_choice_id(type_, "security_cfg_ho_v1530_s::ho_type_v1530_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE security_cfg_ho_v1530_s::ho_type_v1530_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::intra5_gc_r15: HANDLE_CODE(bref.unpack(c.get().security_algorithm_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.get().nas_container_r15_present, 1)); if (c.get().security_algorithm_cfg_r15_present) { HANDLE_CODE(c.get().security_algorithm_cfg_r15.unpack(bref)); } HANDLE_CODE(bref.unpack(c.get().key_change_ind_r15, 1)); HANDLE_CODE( unpack_unalign_integer(c.get().next_hop_chaining_count_r15, bref, (uint8_t)0, (uint8_t)7)); if (c.get().nas_container_r15_present) { HANDLE_CODE(c.get().nas_container_r15.unpack(bref)); } break; case types::ngc_to_epc_r15: HANDLE_CODE(c.get().security_algorithm_cfg_r15.unpack(bref)); HANDLE_CODE( unpack_unalign_integer(c.get().next_hop_chaining_count_r15, bref, (uint8_t)0, (uint8_t)7)); break; case types::epc_to_ngc_r15: HANDLE_CODE(c.get().security_algorithm_cfg_r15.unpack(bref)); HANDLE_CODE(c.get().nas_container_r15.unpack(bref)); break; default: log_invalid_choice_id(type_, "security_cfg_ho_v1530_s::ho_type_v1530_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UplinkPowerControlCommon-v1310 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(delta_f_pucch_format4_r13_present, 1)); HANDLE_CODE(bref.pack(delta_f_pucch_format5_minus13_present, 1)); if (delta_f_pucch_format4_r13_present) { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format4_r13)); } if (delta_f_pucch_format5_minus13_present) { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format5_minus13)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(delta_f_pucch_format4_r13_present, 1)); HANDLE_CODE(bref.unpack(delta_f_pucch_format5_minus13_present, 1)); if (delta_f_pucch_format4_r13_present) { HANDLE_CODE(unpack_enum(delta_f_pucch_format4_r13, bref)); } if (delta_f_pucch_format5_minus13_present) { HANDLE_CODE(unpack_enum(delta_f_pucch_format5_minus13, bref)); } return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (delta_f_pucch_format4_r13_present) { j.write_str("deltaF-PUCCH-Format4-r13", delta_f_pucch_format4_r13.to_string()); } if (delta_f_pucch_format5_minus13_present) { j.write_str("deltaF-PUCCH-Format5-13", delta_f_pucch_format5_minus13.to_string()); } j.end_obj(); } // UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE SRSASN_CODE ul_pwr_ctrl_common_ps_cell_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, delta_f_pucch_format3_r12)); HANDLE_CODE(pack_enum(bref, delta_f_pucch_format1b_cs_r12)); HANDLE_CODE(pack_unalign_integer(bref, p0_nominal_pucch_r12, (int8_t)-127, (int8_t)-96)); HANDLE_CODE(delta_flist_pucch_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pwr_ctrl_common_ps_cell_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(delta_f_pucch_format3_r12, bref)); HANDLE_CODE(unpack_enum(delta_f_pucch_format1b_cs_r12, bref)); HANDLE_CODE(unpack_unalign_integer(p0_nominal_pucch_r12, bref, (int8_t)-127, (int8_t)-96)); HANDLE_CODE(delta_flist_pucch_r12.unpack(bref)); return SRSASN_SUCCESS; } void ul_pwr_ctrl_common_ps_cell_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("deltaF-PUCCH-Format3-r12", delta_f_pucch_format3_r12.to_string()); j.write_str("deltaF-PUCCH-Format1bCS-r12", delta_f_pucch_format1b_cs_r12.to_string()); j.write_int("p0-NominalPUCCH-r12", p0_nominal_pucch_r12); j.write_fieldname("deltaFList-PUCCH-r12"); delta_flist_pucch_r12.to_json(j); j.end_obj(); } // WLAN-SuspendConfig-r14 ::= SEQUENCE SRSASN_CODE wlan_suspend_cfg_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(wlan_suspend_resume_allowed_r14_present, 1)); HANDLE_CODE(bref.pack(wlan_suspend_triggers_status_report_r14_present, 1)); if (wlan_suspend_resume_allowed_r14_present) { HANDLE_CODE(bref.pack(wlan_suspend_resume_allowed_r14, 1)); } if (wlan_suspend_triggers_status_report_r14_present) { HANDLE_CODE(bref.pack(wlan_suspend_triggers_status_report_r14, 1)); } return SRSASN_SUCCESS; } SRSASN_CODE wlan_suspend_cfg_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(wlan_suspend_resume_allowed_r14_present, 1)); HANDLE_CODE(bref.unpack(wlan_suspend_triggers_status_report_r14_present, 1)); if (wlan_suspend_resume_allowed_r14_present) { HANDLE_CODE(bref.unpack(wlan_suspend_resume_allowed_r14, 1)); } if (wlan_suspend_triggers_status_report_r14_present) { HANDLE_CODE(bref.unpack(wlan_suspend_triggers_status_report_r14, 1)); } return SRSASN_SUCCESS; } void wlan_suspend_cfg_r14_s::to_json(json_writer& j) const { j.start_obj(); if (wlan_suspend_resume_allowed_r14_present) { j.write_bool("wlan-SuspendResumeAllowed-r14", wlan_suspend_resume_allowed_r14); } if (wlan_suspend_triggers_status_report_r14_present) { j.write_bool("wlan-SuspendTriggersStatusReport-r14", wlan_suspend_triggers_status_report_r14); } j.end_obj(); } // MAC-MainConfigSL-r12 ::= SEQUENCE SRSASN_CODE mac_main_cfg_sl_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(periodic_bsr_timer_sl_present, 1)); if (periodic_bsr_timer_sl_present) { HANDLE_CODE(pack_enum(bref, periodic_bsr_timer_sl)); } HANDLE_CODE(pack_enum(bref, retx_bsr_timer_sl)); return SRSASN_SUCCESS; } SRSASN_CODE mac_main_cfg_sl_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(periodic_bsr_timer_sl_present, 1)); if (periodic_bsr_timer_sl_present) { HANDLE_CODE(unpack_enum(periodic_bsr_timer_sl, bref)); } HANDLE_CODE(unpack_enum(retx_bsr_timer_sl, bref)); return SRSASN_SUCCESS; } void mac_main_cfg_sl_r12_s::to_json(json_writer& j) const { j.start_obj(); if (periodic_bsr_timer_sl_present) { j.write_str("periodic-BSR-TimerSL", periodic_bsr_timer_sl.to_string()); } j.write_str("retx-BSR-TimerSL", retx_bsr_timer_sl.to_string()); j.end_obj(); } // PLMN-RAN-AreaCell-r15 ::= SEQUENCE SRSASN_CODE plmn_ran_area_cell_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(plmn_id_r15_present, 1)); if (plmn_id_r15_present) { HANDLE_CODE(plmn_id_r15.pack(bref)); } HANDLE_CODE(pack_dyn_seq_of(bref, ran_area_cells_r15, 1, 32)); return SRSASN_SUCCESS; } SRSASN_CODE plmn_ran_area_cell_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(plmn_id_r15_present, 1)); if (plmn_id_r15_present) { HANDLE_CODE(plmn_id_r15.unpack(bref)); } HANDLE_CODE(unpack_dyn_seq_of(ran_area_cells_r15, bref, 1, 32)); return SRSASN_SUCCESS; } void plmn_ran_area_cell_r15_s::to_json(json_writer& j) const { j.start_obj(); if (plmn_id_r15_present) { j.write_fieldname("plmn-Identity-r15"); plmn_id_r15.to_json(j); } j.start_array("ran-AreaCells-r15"); for (uint32_t i1 = 0; i1 < ran_area_cells_r15.size(); ++i1) { j.write_str(ran_area_cells_r15[i1].to_string()); } j.end_array(); j.end_obj(); } // PLMN-RAN-AreaConfig-r15 ::= SEQUENCE SRSASN_CODE plmn_ran_area_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(plmn_id_r15_present, 1)); if (plmn_id_r15_present) { HANDLE_CODE(plmn_id_r15.pack(bref)); } HANDLE_CODE(pack_dyn_seq_of(bref, ran_area_r15, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE plmn_ran_area_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(plmn_id_r15_present, 1)); if (plmn_id_r15_present) { HANDLE_CODE(plmn_id_r15.unpack(bref)); } HANDLE_CODE(unpack_dyn_seq_of(ran_area_r15, bref, 1, 16)); return SRSASN_SUCCESS; } void plmn_ran_area_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); if (plmn_id_r15_present) { j.write_fieldname("plmn-Identity-r15"); plmn_id_r15.to_json(j); } j.start_array("ran-Area-r15"); for (uint32_t i1 = 0; i1 < ran_area_r15.size(); ++i1) { ran_area_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } // RACH-ConfigDedicated ::= SEQUENCE SRSASN_CODE rach_cfg_ded_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, ra_preamb_idx, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(pack_unalign_integer(bref, ra_prach_mask_idx, (uint8_t)0, (uint8_t)15)); return SRSASN_SUCCESS; } SRSASN_CODE rach_cfg_ded_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(ra_preamb_idx, bref, (uint8_t)0, (uint8_t)63)); HANDLE_CODE(unpack_unalign_integer(ra_prach_mask_idx, bref, (uint8_t)0, (uint8_t)15)); return SRSASN_SUCCESS; } void rach_cfg_ded_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("ra-PreambleIndex", ra_preamb_idx); j.write_int("ra-PRACH-MaskIndex", ra_prach_mask_idx); j.end_obj(); } // RACH-Skip-r14 ::= SEQUENCE SRSASN_CODE rach_skip_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_cfg_info_r14_present, 1)); HANDLE_CODE(target_ta_r14.pack(bref)); if (ul_cfg_info_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_cfg_info_r14.nof_conf_ul_processes_r14, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pack_enum(bref, ul_cfg_info_r14.ul_sched_interv_r14)); HANDLE_CODE(pack_unalign_integer(bref, ul_cfg_info_r14.ul_start_sf_r14, (uint8_t)0, (uint8_t)9)); HANDLE_CODE(ul_cfg_info_r14.ul_grant_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rach_skip_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_cfg_info_r14_present, 1)); HANDLE_CODE(target_ta_r14.unpack(bref)); if (ul_cfg_info_r14_present) { HANDLE_CODE(unpack_unalign_integer(ul_cfg_info_r14.nof_conf_ul_processes_r14, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_enum(ul_cfg_info_r14.ul_sched_interv_r14, bref)); HANDLE_CODE(unpack_unalign_integer(ul_cfg_info_r14.ul_start_sf_r14, bref, (uint8_t)0, (uint8_t)9)); HANDLE_CODE(ul_cfg_info_r14.ul_grant_r14.unpack(bref)); } return SRSASN_SUCCESS; } void rach_skip_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("targetTA-r14"); target_ta_r14.to_json(j); if (ul_cfg_info_r14_present) { j.write_fieldname("ul-ConfigInfo-r14"); j.start_obj(); j.write_int("numberOfConfUL-Processes-r14", ul_cfg_info_r14.nof_conf_ul_processes_r14); j.write_str("ul-SchedInterval-r14", ul_cfg_info_r14.ul_sched_interv_r14.to_string()); j.write_int("ul-StartSubframe-r14", ul_cfg_info_r14.ul_start_sf_r14); j.write_str("ul-Grant-r14", ul_cfg_info_r14.ul_grant_r14.to_string()); j.end_obj(); } j.end_obj(); } void rach_skip_r14_s::target_ta_r14_c_::destroy_() {} void rach_skip_r14_s::target_ta_r14_c_::set(types::options e) { destroy_(); type_ = e; } rach_skip_r14_s::target_ta_r14_c_::target_ta_r14_c_(const rach_skip_r14_s::target_ta_r14_c_& other) { type_ = other.type(); switch (type_) { case types::ta0_r14: break; case types::mcg_ptag_r14: break; case types::scg_ptag_r14: break; case types::mcg_stag_r14: c.init(other.c.get()); break; case types::scg_stag_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rach_skip_r14_s::target_ta_r14_c_"); } } rach_skip_r14_s::target_ta_r14_c_& rach_skip_r14_s::target_ta_r14_c_:: operator=(const rach_skip_r14_s::target_ta_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ta0_r14: break; case types::mcg_ptag_r14: break; case types::scg_ptag_r14: break; case types::mcg_stag_r14: c.set(other.c.get()); break; case types::scg_stag_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rach_skip_r14_s::target_ta_r14_c_"); } return *this; } void rach_skip_r14_s::target_ta_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ta0_r14: break; case types::mcg_ptag_r14: break; case types::scg_ptag_r14: break; case types::mcg_stag_r14: j.write_int("mcg-STAG-r14", c.get()); break; case types::scg_stag_r14: j.write_int("scg-STAG-r14", c.get()); break; default: log_invalid_choice_id(type_, "rach_skip_r14_s::target_ta_r14_c_"); } j.end_obj(); } SRSASN_CODE rach_skip_r14_s::target_ta_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ta0_r14: break; case types::mcg_ptag_r14: break; case types::scg_ptag_r14: break; case types::mcg_stag_r14: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)3)); break; case types::scg_stag_r14: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)3)); break; default: log_invalid_choice_id(type_, "rach_skip_r14_s::target_ta_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rach_skip_r14_s::target_ta_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ta0_r14: break; case types::mcg_ptag_r14: break; case types::scg_ptag_r14: break; case types::mcg_stag_r14: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)3)); break; case types::scg_stag_r14: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)3)); break; default: log_invalid_choice_id(type_, "rach_skip_r14_s::target_ta_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RLF-TimersAndConstantsSCG-r12 ::= CHOICE void rlf_timers_and_consts_scg_r12_c::set(types::options e) { type_ = e; } void rlf_timers_and_consts_scg_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("t313-r12", c.t313_r12.to_string()); j.write_str("n313-r12", c.n313_r12.to_string()); j.write_str("n314-r12", c.n314_r12.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_scg_r12_c"); } j.end_obj(); } SRSASN_CODE rlf_timers_and_consts_scg_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(pack_enum(bref, c.t313_r12)); HANDLE_CODE(pack_enum(bref, c.n313_r12)); HANDLE_CODE(pack_enum(bref, c.n314_r12)); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_scg_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlf_timers_and_consts_scg_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(unpack_enum(c.t313_r12, bref)); HANDLE_CODE(unpack_enum(c.n313_r12, bref)); HANDLE_CODE(unpack_enum(c.n314_r12, bref)); break; default: log_invalid_choice_id(type_, "rlf_timers_and_consts_scg_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReconfiguration-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(security_cfg_ho_v1530_present, 1)); HANDLE_CODE(bref.pack(s_cell_group_to_release_list_r15_present, 1)); HANDLE_CODE(bref.pack(s_cell_group_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.pack(ded_info_nas_list_r15_present, 1)); HANDLE_CODE(bref.pack(p_max_ue_fr1_r15_present, 1)); HANDLE_CODE(bref.pack(smtc_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (security_cfg_ho_v1530_present) { HANDLE_CODE(security_cfg_ho_v1530.pack(bref)); } if (s_cell_group_to_release_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_group_to_release_list_r15, 1, 4, UnalignedIntegerPacker(1, 4))); } if (s_cell_group_to_add_mod_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_group_to_add_mod_list_r15, 1, 4)); } if (ded_info_nas_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ded_info_nas_list_r15, 1, 15)); } if (p_max_ue_fr1_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, p_max_ue_fr1_r15, (int8_t)-30, (int8_t)33)); } if (smtc_r15_present) { HANDLE_CODE(smtc_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(security_cfg_ho_v1530_present, 1)); HANDLE_CODE(bref.unpack(s_cell_group_to_release_list_r15_present, 1)); HANDLE_CODE(bref.unpack(s_cell_group_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.unpack(ded_info_nas_list_r15_present, 1)); HANDLE_CODE(bref.unpack(p_max_ue_fr1_r15_present, 1)); HANDLE_CODE(bref.unpack(smtc_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (security_cfg_ho_v1530_present) { HANDLE_CODE(security_cfg_ho_v1530.unpack(bref)); } if (s_cell_group_to_release_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_group_to_release_list_r15, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (s_cell_group_to_add_mod_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_group_to_add_mod_list_r15, bref, 1, 4)); } if (ded_info_nas_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(ded_info_nas_list_r15, bref, 1, 15)); } if (p_max_ue_fr1_r15_present) { HANDLE_CODE(unpack_unalign_integer(p_max_ue_fr1_r15, bref, (int8_t)-30, (int8_t)33)); } if (smtc_r15_present) { HANDLE_CODE(smtc_r15.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (security_cfg_ho_v1530_present) { j.write_fieldname("securityConfigHO-v1530"); security_cfg_ho_v1530.to_json(j); } if (s_cell_group_to_release_list_r15_present) { j.start_array("sCellGroupToReleaseList-r15"); for (uint32_t i1 = 0; i1 < s_cell_group_to_release_list_r15.size(); ++i1) { j.write_int(s_cell_group_to_release_list_r15[i1]); } j.end_array(); } if (s_cell_group_to_add_mod_list_r15_present) { j.start_array("sCellGroupToAddModList-r15"); for (uint32_t i1 = 0; i1 < s_cell_group_to_add_mod_list_r15.size(); ++i1) { s_cell_group_to_add_mod_list_r15[i1].to_json(j); } j.end_array(); } if (ded_info_nas_list_r15_present) { j.start_array("dedicatedInfoNASList-r15"); for (uint32_t i1 = 0; i1 < ded_info_nas_list_r15.size(); ++i1) { j.write_str(ded_info_nas_list_r15[i1].to_string()); } j.end_array(); } if (p_max_ue_fr1_r15_present) { j.write_int("p-MaxUE-FR1-r15", p_max_ue_fr1_r15); } if (smtc_r15_present) { j.write_fieldname("smtc-r15"); smtc_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE SRSASN_CODE rr_cfg_common_ps_cell_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(basic_fields_r12.pack(bref)); HANDLE_CODE(pucch_cfg_common_r12.pack(bref)); HANDLE_CODE(rach_cfg_common_r12.pack(bref)); HANDLE_CODE(ul_pwr_ctrl_common_ps_cell_r12.pack(bref)); if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(ul_pwr_ctrl_common_ps_cell_v1310_present != (ul_pwr_ctrl_common_ps_cell_v1310.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ul_pwr_ctrl_common_ps_cell_v1310_present; rrc_asn1_warn_assert(ul_pwr_ctrl_common_ps_cell_v1530_present != (ul_pwr_ctrl_common_ps_cell_v1530.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ul_pwr_ctrl_common_ps_cell_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_ps_cell_v1310_present, 1)); if (ul_pwr_ctrl_common_ps_cell_v1310_present) { HANDLE_CODE(ul_pwr_ctrl_common_ps_cell_v1310->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_ps_cell_v1530_present, 1)); if (ul_pwr_ctrl_common_ps_cell_v1530_present) { HANDLE_CODE(ul_pwr_ctrl_common_ps_cell_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_common_ps_cell_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(basic_fields_r12.unpack(bref)); HANDLE_CODE(pucch_cfg_common_r12.unpack(bref)); HANDLE_CODE(rach_cfg_common_r12.unpack(bref)); HANDLE_CODE(ul_pwr_ctrl_common_ps_cell_r12.unpack(bref)); if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_ps_cell_v1310_present, 1)); if (ul_pwr_ctrl_common_ps_cell_v1310_present) { ul_pwr_ctrl_common_ps_cell_v1310 = make_copy_ptr(ul_pwr_ctrl_common_v1310_s()); HANDLE_CODE(ul_pwr_ctrl_common_ps_cell_v1310->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_ps_cell_v1530_present, 1)); if (ul_pwr_ctrl_common_ps_cell_v1530_present) { ul_pwr_ctrl_common_ps_cell_v1530 = make_copy_ptr(ul_pwr_ctrl_common_v1530_s()); HANDLE_CODE(ul_pwr_ctrl_common_ps_cell_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void rr_cfg_common_ps_cell_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("basicFields-r12"); basic_fields_r12.to_json(j); j.write_fieldname("pucch-ConfigCommon-r12"); pucch_cfg_common_r12.to_json(j); j.write_fieldname("rach-ConfigCommon-r12"); rach_cfg_common_r12.to_json(j); j.write_fieldname("uplinkPowerControlCommonPSCell-r12"); ul_pwr_ctrl_common_ps_cell_r12.to_json(j); if (ext) { rrc_asn1_warn_assert(ul_pwr_ctrl_common_ps_cell_v1310_present != (ul_pwr_ctrl_common_ps_cell_v1310.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_ps_cell_v1310_present) { j.write_fieldname("uplinkPowerControlCommonPSCell-v1310"); ul_pwr_ctrl_common_ps_cell_v1310->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_common_ps_cell_v1530_present != (ul_pwr_ctrl_common_ps_cell_v1530.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_ps_cell_v1530_present) { j.write_fieldname("uplinkPowerControlCommonPSCell-v1530"); ul_pwr_ctrl_common_ps_cell_v1530->to_json(j); } } j.end_obj(); } // RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE SRSASN_CODE rr_cfg_common_ps_cell_v12f0_s::pack(bit_ref& bref) const { HANDLE_CODE(basic_fields_v12f0.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_common_ps_cell_v12f0_s::unpack(bit_ref& bref) { HANDLE_CODE(basic_fields_v12f0.unpack(bref)); return SRSASN_SUCCESS; } void rr_cfg_common_ps_cell_v12f0_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("basicFields-v12f0"); basic_fields_v12f0.to_json(j); j.end_obj(); } // RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE SRSASN_CODE rr_cfg_common_ps_cell_v1440_s::pack(bit_ref& bref) const { HANDLE_CODE(basic_fields_v1440.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_common_ps_cell_v1440_s::unpack(bit_ref& bref) { HANDLE_CODE(basic_fields_v1440.unpack(bref)); return SRSASN_SUCCESS; } void rr_cfg_common_ps_cell_v1440_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("basicFields-v1440"); basic_fields_v1440.to_json(j); j.end_obj(); } // RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE SRSASN_CODE rr_cfg_ded_ps_cell_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(phys_cfg_ded_ps_cell_r12_present, 1)); HANDLE_CODE(bref.pack(sps_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(naics_info_r12_present, 1)); if (phys_cfg_ded_ps_cell_r12_present) { HANDLE_CODE(phys_cfg_ded_ps_cell_r12.pack(bref)); } if (sps_cfg_r12_present) { HANDLE_CODE(sps_cfg_r12.pack(bref)); } if (naics_info_r12_present) { HANDLE_CODE(naics_info_r12.pack(bref)); } if (ext) { ext_groups_header group_flags(3); rrc_asn1_warn_assert(neigh_cells_crs_info_ps_cell_r13_present != (neigh_cells_crs_info_ps_cell_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= neigh_cells_crs_info_ps_cell_r13_present; rrc_asn1_warn_assert(sps_cfg_v1430_present != (sps_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[1] |= sps_cfg_v1430_present; rrc_asn1_warn_assert(sps_cfg_v1530_present != (sps_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[2] |= sps_cfg_v1530_present; group_flags[2] |= crs_intf_mitig_enabled_r15_present; rrc_asn1_warn_assert(neigh_cells_crs_info_r15_present != (neigh_cells_crs_info_r15.get() != NULL), __FILE__, __LINE__); group_flags[2] |= neigh_cells_crs_info_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(neigh_cells_crs_info_ps_cell_r13_present, 1)); if (neigh_cells_crs_info_ps_cell_r13_present) { HANDLE_CODE(neigh_cells_crs_info_ps_cell_r13->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sps_cfg_v1430_present, 1)); if (sps_cfg_v1430_present) { HANDLE_CODE(sps_cfg_v1430->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sps_cfg_v1530_present, 1)); HANDLE_CODE(bref.pack(crs_intf_mitig_enabled_r15_present, 1)); HANDLE_CODE(bref.pack(neigh_cells_crs_info_r15_present, 1)); if (sps_cfg_v1530_present) { HANDLE_CODE(sps_cfg_v1530->pack(bref)); } if (crs_intf_mitig_enabled_r15_present) { HANDLE_CODE(bref.pack(crs_intf_mitig_enabled_r15, 1)); } if (neigh_cells_crs_info_r15_present) { HANDLE_CODE(neigh_cells_crs_info_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_ps_cell_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(phys_cfg_ded_ps_cell_r12_present, 1)); HANDLE_CODE(bref.unpack(sps_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(naics_info_r12_present, 1)); if (phys_cfg_ded_ps_cell_r12_present) { HANDLE_CODE(phys_cfg_ded_ps_cell_r12.unpack(bref)); } if (sps_cfg_r12_present) { HANDLE_CODE(sps_cfg_r12.unpack(bref)); } if (naics_info_r12_present) { HANDLE_CODE(naics_info_r12.unpack(bref)); } if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(neigh_cells_crs_info_ps_cell_r13_present, 1)); if (neigh_cells_crs_info_ps_cell_r13_present) { neigh_cells_crs_info_ps_cell_r13 = make_copy_ptr(neigh_cells_crs_info_r13_c()); HANDLE_CODE(neigh_cells_crs_info_ps_cell_r13->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sps_cfg_v1430_present, 1)); if (sps_cfg_v1430_present) { sps_cfg_v1430 = make_copy_ptr(sps_cfg_v1430_s()); HANDLE_CODE(sps_cfg_v1430->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sps_cfg_v1530_present, 1)); HANDLE_CODE(bref.unpack(crs_intf_mitig_enabled_r15_present, 1)); HANDLE_CODE(bref.unpack(neigh_cells_crs_info_r15_present, 1)); if (sps_cfg_v1530_present) { sps_cfg_v1530 = make_copy_ptr(sps_cfg_v1530_s()); HANDLE_CODE(sps_cfg_v1530->unpack(bref)); } if (crs_intf_mitig_enabled_r15_present) { HANDLE_CODE(bref.unpack(crs_intf_mitig_enabled_r15, 1)); } if (neigh_cells_crs_info_r15_present) { neigh_cells_crs_info_r15 = make_copy_ptr(neigh_cells_crs_info_r15_c()); HANDLE_CODE(neigh_cells_crs_info_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void rr_cfg_ded_ps_cell_r12_s::to_json(json_writer& j) const { j.start_obj(); if (phys_cfg_ded_ps_cell_r12_present) { j.write_fieldname("physicalConfigDedicatedPSCell-r12"); phys_cfg_ded_ps_cell_r12.to_json(j); } if (sps_cfg_r12_present) { j.write_fieldname("sps-Config-r12"); sps_cfg_r12.to_json(j); } if (naics_info_r12_present) { j.write_fieldname("naics-Info-r12"); naics_info_r12.to_json(j); } if (ext) { rrc_asn1_warn_assert(neigh_cells_crs_info_ps_cell_r13_present != (neigh_cells_crs_info_ps_cell_r13.get() != NULL), __FILE__, __LINE__); if (neigh_cells_crs_info_ps_cell_r13_present) { j.write_fieldname("neighCellsCRS-InfoPSCell-r13"); neigh_cells_crs_info_ps_cell_r13->to_json(j); } rrc_asn1_warn_assert(sps_cfg_v1430_present != (sps_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (sps_cfg_v1430_present) { j.write_fieldname("sps-Config-v1430"); sps_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(sps_cfg_v1530_present != (sps_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (sps_cfg_v1530_present) { j.write_fieldname("sps-Config-v1530"); sps_cfg_v1530->to_json(j); } if (crs_intf_mitig_enabled_r15_present) { j.write_bool("crs-IntfMitigEnabled-r15", crs_intf_mitig_enabled_r15); } rrc_asn1_warn_assert(neigh_cells_crs_info_r15_present != (neigh_cells_crs_info_r15.get() != NULL), __FILE__, __LINE__); if (neigh_cells_crs_info_r15_present) { j.write_fieldname("neighCellsCRS-Info-r15"); neigh_cells_crs_info_r15->to_json(j); } } j.end_obj(); } // RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE SRSASN_CODE rr_cfg_ded_ps_cell_v1370_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phys_cfg_ded_ps_cell_v1370_present, 1)); if (phys_cfg_ded_ps_cell_v1370_present) { HANDLE_CODE(phys_cfg_ded_ps_cell_v1370.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_ps_cell_v1370_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phys_cfg_ded_ps_cell_v1370_present, 1)); if (phys_cfg_ded_ps_cell_v1370_present) { HANDLE_CODE(phys_cfg_ded_ps_cell_v1370.unpack(bref)); } return SRSASN_SUCCESS; } void rr_cfg_ded_ps_cell_v1370_s::to_json(json_writer& j) const { j.start_obj(); if (phys_cfg_ded_ps_cell_v1370_present) { j.write_fieldname("physicalConfigDedicatedPSCell-v1370"); phys_cfg_ded_ps_cell_v1370.to_json(j); } j.end_obj(); } // SCellToAddMod-r10 ::= SEQUENCE SRSASN_CODE scell_to_add_mod_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_identif_r10_present, 1)); HANDLE_CODE(bref.pack(rr_cfg_common_scell_r10_present, 1)); HANDLE_CODE(bref.pack(rr_cfg_ded_scell_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, s_cell_idx_r10, (uint8_t)1, (uint8_t)7)); if (cell_identif_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_identif_r10.pci_r10, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, cell_identif_r10.dl_carrier_freq_r10, (uint16_t)0, (uint16_t)65535)); } if (rr_cfg_common_scell_r10_present) { HANDLE_CODE(rr_cfg_common_scell_r10.pack(bref)); } if (rr_cfg_ded_scell_r10_present) { HANDLE_CODE(rr_cfg_ded_scell_r10.pack(bref)); } if (ext) { ext_groups_header group_flags(4); group_flags[0] |= dl_carrier_freq_v1090_present; rrc_asn1_warn_assert(ant_info_ded_scell_v10i0_present != (ant_info_ded_scell_v10i0.get() != NULL), __FILE__, __LINE__); group_flags[1] |= ant_info_ded_scell_v10i0_present; group_flags[2] |= srs_switch_from_serv_cell_idx_r14_present; group_flags[3] |= s_cell_state_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(dl_carrier_freq_v1090_present, 1)); if (dl_carrier_freq_v1090_present) { HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq_v1090, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ant_info_ded_scell_v10i0_present, 1)); if (ant_info_ded_scell_v10i0_present) { HANDLE_CODE(ant_info_ded_scell_v10i0->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(srs_switch_from_serv_cell_idx_r14_present, 1)); if (srs_switch_from_serv_cell_idx_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, srs_switch_from_serv_cell_idx_r14, (uint8_t)0, (uint8_t)31)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(s_cell_state_r15_present, 1)); if (s_cell_state_r15_present) { HANDLE_CODE(pack_enum(bref, s_cell_state_r15)); } } } return SRSASN_SUCCESS; } SRSASN_CODE scell_to_add_mod_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_identif_r10_present, 1)); HANDLE_CODE(bref.unpack(rr_cfg_common_scell_r10_present, 1)); HANDLE_CODE(bref.unpack(rr_cfg_ded_scell_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(s_cell_idx_r10, bref, (uint8_t)1, (uint8_t)7)); if (cell_identif_r10_present) { HANDLE_CODE(unpack_unalign_integer(cell_identif_r10.pci_r10, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(cell_identif_r10.dl_carrier_freq_r10, bref, (uint16_t)0, (uint16_t)65535)); } if (rr_cfg_common_scell_r10_present) { HANDLE_CODE(rr_cfg_common_scell_r10.unpack(bref)); } if (rr_cfg_ded_scell_r10_present) { HANDLE_CODE(rr_cfg_ded_scell_r10.unpack(bref)); } if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(dl_carrier_freq_v1090_present, 1)); if (dl_carrier_freq_v1090_present) { HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq_v1090, bref, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ant_info_ded_scell_v10i0_present, 1)); if (ant_info_ded_scell_v10i0_present) { ant_info_ded_scell_v10i0 = make_copy_ptr(ant_info_ded_v10i0_s()); HANDLE_CODE(ant_info_ded_scell_v10i0->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(srs_switch_from_serv_cell_idx_r14_present, 1)); if (srs_switch_from_serv_cell_idx_r14_present) { HANDLE_CODE(unpack_unalign_integer(srs_switch_from_serv_cell_idx_r14, bref, (uint8_t)0, (uint8_t)31)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(s_cell_state_r15_present, 1)); if (s_cell_state_r15_present) { HANDLE_CODE(unpack_enum(s_cell_state_r15, bref)); } } } return SRSASN_SUCCESS; } void scell_to_add_mod_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sCellIndex-r10", s_cell_idx_r10); if (cell_identif_r10_present) { j.write_fieldname("cellIdentification-r10"); j.start_obj(); j.write_int("physCellId-r10", cell_identif_r10.pci_r10); j.write_int("dl-CarrierFreq-r10", cell_identif_r10.dl_carrier_freq_r10); j.end_obj(); } if (rr_cfg_common_scell_r10_present) { j.write_fieldname("radioResourceConfigCommonSCell-r10"); rr_cfg_common_scell_r10.to_json(j); } if (rr_cfg_ded_scell_r10_present) { j.write_fieldname("radioResourceConfigDedicatedSCell-r10"); rr_cfg_ded_scell_r10.to_json(j); } if (ext) { if (dl_carrier_freq_v1090_present) { j.write_int("dl-CarrierFreq-v1090", dl_carrier_freq_v1090); } rrc_asn1_warn_assert(ant_info_ded_scell_v10i0_present != (ant_info_ded_scell_v10i0.get() != NULL), __FILE__, __LINE__); if (ant_info_ded_scell_v10i0_present) { j.write_fieldname("antennaInfoDedicatedSCell-v10i0"); ant_info_ded_scell_v10i0->to_json(j); } if (srs_switch_from_serv_cell_idx_r14_present) { j.write_int("srs-SwitchFromServCellIndex-r14", srs_switch_from_serv_cell_idx_r14); } if (s_cell_state_r15_present) { j.write_str("sCellState-r15", s_cell_state_r15.to_string()); } } j.end_obj(); } // SCellToAddMod-v10l0 ::= SEQUENCE SRSASN_CODE scell_to_add_mod_v10l0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rr_cfg_common_scell_v10l0_present, 1)); if (rr_cfg_common_scell_v10l0_present) { HANDLE_CODE(rr_cfg_common_scell_v10l0.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scell_to_add_mod_v10l0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rr_cfg_common_scell_v10l0_present, 1)); if (rr_cfg_common_scell_v10l0_present) { HANDLE_CODE(rr_cfg_common_scell_v10l0.unpack(bref)); } return SRSASN_SUCCESS; } void scell_to_add_mod_v10l0_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_common_scell_v10l0_present) { j.write_fieldname("radioResourceConfigCommonSCell-v10l0"); rr_cfg_common_scell_v10l0.to_json(j); } j.end_obj(); } // SCellToAddModExt-v1370 ::= SEQUENCE SRSASN_CODE scell_to_add_mod_ext_v1370_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rr_cfg_common_scell_v1370_present, 1)); if (rr_cfg_common_scell_v1370_present) { HANDLE_CODE(rr_cfg_common_scell_v1370.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scell_to_add_mod_ext_v1370_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rr_cfg_common_scell_v1370_present, 1)); if (rr_cfg_common_scell_v1370_present) { HANDLE_CODE(rr_cfg_common_scell_v1370.unpack(bref)); } return SRSASN_SUCCESS; } void scell_to_add_mod_ext_v1370_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_common_scell_v1370_present) { j.write_fieldname("radioResourceConfigCommonSCell-v1370"); rr_cfg_common_scell_v1370.to_json(j); } j.end_obj(); } // SCellToAddModExt-v1430 ::= SEQUENCE SRSASN_CODE scell_to_add_mod_ext_v1430_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(srs_switch_from_serv_cell_idx_r14_present, 1)); if (srs_switch_from_serv_cell_idx_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, srs_switch_from_serv_cell_idx_r14, (uint8_t)0, (uint8_t)31)); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= s_cell_state_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(s_cell_state_r15_present, 1)); if (s_cell_state_r15_present) { HANDLE_CODE(pack_enum(bref, s_cell_state_r15)); } } } return SRSASN_SUCCESS; } SRSASN_CODE scell_to_add_mod_ext_v1430_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(srs_switch_from_serv_cell_idx_r14_present, 1)); if (srs_switch_from_serv_cell_idx_r14_present) { HANDLE_CODE(unpack_unalign_integer(srs_switch_from_serv_cell_idx_r14, bref, (uint8_t)0, (uint8_t)31)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(s_cell_state_r15_present, 1)); if (s_cell_state_r15_present) { HANDLE_CODE(unpack_enum(s_cell_state_r15, bref)); } } } return SRSASN_SUCCESS; } void scell_to_add_mod_ext_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (srs_switch_from_serv_cell_idx_r14_present) { j.write_int("srs-SwitchFromServCellIndex-r14", srs_switch_from_serv_cell_idx_r14); } if (ext) { if (s_cell_state_r15_present) { j.write_str("sCellState-r15", s_cell_state_r15.to_string()); } } j.end_obj(); } // SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE void sl_disc_tx_ref_carrier_ded_r13_c::set(types::options e) { type_ = e; } void sl_disc_tx_ref_carrier_ded_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::p_cell: break; case types::s_cell: j.write_int("sCell", c); break; default: log_invalid_choice_id(type_, "sl_disc_tx_ref_carrier_ded_r13_c"); } j.end_obj(); } SRSASN_CODE sl_disc_tx_ref_carrier_ded_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::p_cell: break; case types::s_cell: HANDLE_CODE(pack_unalign_integer(bref, c, (uint8_t)1, (uint8_t)7)); break; default: log_invalid_choice_id(type_, "sl_disc_tx_ref_carrier_ded_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_ref_carrier_ded_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::p_cell: break; case types::s_cell: HANDLE_CODE(unpack_unalign_integer(c, bref, (uint8_t)1, (uint8_t)7)); break; default: log_invalid_choice_id(type_, "sl_disc_tx_ref_carrier_ded_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-DiscTxResource-r13 ::= CHOICE void sl_disc_tx_res_r13_c::set(types::options e) { type_ = e; } void sl_disc_tx_res_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c"); } j.end_obj(); } SRSASN_CODE sl_disc_tx_res_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_res_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_tx_res_r13_c::setup_c_::destroy_() { switch (type_) { case types::sched_r13: c.destroy(); break; case types::ue_sel_r13: c.destroy(); break; default: break; } } void sl_disc_tx_res_r13_c::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sched_r13: c.init(); break; case types::ue_sel_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c::setup_c_"); } } sl_disc_tx_res_r13_c::setup_c_::setup_c_(const sl_disc_tx_res_r13_c::setup_c_& other) { type_ = other.type(); switch (type_) { case types::sched_r13: c.init(other.c.get()); break; case types::ue_sel_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c::setup_c_"); } } sl_disc_tx_res_r13_c::setup_c_& sl_disc_tx_res_r13_c::setup_c_::operator=(const sl_disc_tx_res_r13_c::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sched_r13: c.set(other.c.get()); break; case types::ue_sel_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c::setup_c_"); } return *this; } void sl_disc_tx_res_r13_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sched_r13: j.write_fieldname("scheduled-r13"); c.get().to_json(j); break; case types::ue_sel_r13: j.write_fieldname("ue-Selected-r13"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c::setup_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_tx_res_r13_c::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sched_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::ue_sel_r13: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_res_r13_c::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sched_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::ue_sel_r13: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_tx_res_r13_c::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-GapPattern-r13 ::= SEQUENCE SRSASN_CODE sl_gap_pattern_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, gap_period_r13)); HANDLE_CODE(gap_offset_r12.pack(bref)); HANDLE_CODE(gap_sf_bitmap_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_gap_pattern_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(gap_period_r13, bref)); HANDLE_CODE(gap_offset_r12.unpack(bref)); HANDLE_CODE(gap_sf_bitmap_r13.unpack(bref)); return SRSASN_SUCCESS; } void sl_gap_pattern_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("gapPeriod-r13", gap_period_r13.to_string()); j.write_fieldname("gapOffset-r12"); gap_offset_r12.to_json(j); j.write_str("gapSubframeBitmap-r13", gap_sf_bitmap_r13.to_string()); j.end_obj(); } // TunnelConfigLWIP-r13 ::= SEQUENCE SRSASN_CODE tunnel_cfg_lwip_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(ip_address_r13.pack(bref)); HANDLE_CODE(ike_id_r13.pack(bref)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= lwip_counter_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(lwip_counter_r13_present, 1)); if (lwip_counter_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, lwip_counter_r13, (uint16_t)0, (uint16_t)65535)); } } } return SRSASN_SUCCESS; } SRSASN_CODE tunnel_cfg_lwip_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(ip_address_r13.unpack(bref)); HANDLE_CODE(ike_id_r13.unpack(bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(lwip_counter_r13_present, 1)); if (lwip_counter_r13_present) { HANDLE_CODE(unpack_unalign_integer(lwip_counter_r13, bref, (uint16_t)0, (uint16_t)65535)); } } } return SRSASN_SUCCESS; } void tunnel_cfg_lwip_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ip-Address-r13"); ip_address_r13.to_json(j); j.write_fieldname("ike-Identity-r13"); ike_id_r13.to_json(j); if (ext) { if (lwip_counter_r13_present) { j.write_int("lwip-Counter-r13", lwip_counter_r13); } } j.end_obj(); } // WLAN-MobilityConfig-r13 ::= SEQUENCE SRSASN_CODE wlan_mob_cfg_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(wlan_to_release_list_r13_present, 1)); HANDLE_CODE(bref.pack(wlan_to_add_list_r13_present, 1)); HANDLE_CODE(bref.pack(association_timer_r13_present, 1)); HANDLE_CODE(bref.pack(success_report_requested_r13_present, 1)); if (wlan_to_release_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_to_release_list_r13, 1, 32)); } if (wlan_to_add_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_to_add_list_r13, 1, 32)); } if (association_timer_r13_present) { HANDLE_CODE(pack_enum(bref, association_timer_r13)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(wlan_suspend_cfg_r14_present != (wlan_suspend_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[0] |= wlan_suspend_cfg_r14_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(wlan_suspend_cfg_r14_present, 1)); if (wlan_suspend_cfg_r14_present) { HANDLE_CODE(wlan_suspend_cfg_r14->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE wlan_mob_cfg_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(wlan_to_release_list_r13_present, 1)); HANDLE_CODE(bref.unpack(wlan_to_add_list_r13_present, 1)); HANDLE_CODE(bref.unpack(association_timer_r13_present, 1)); HANDLE_CODE(bref.unpack(success_report_requested_r13_present, 1)); if (wlan_to_release_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_to_release_list_r13, bref, 1, 32)); } if (wlan_to_add_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_to_add_list_r13, bref, 1, 32)); } if (association_timer_r13_present) { HANDLE_CODE(unpack_enum(association_timer_r13, bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(wlan_suspend_cfg_r14_present, 1)); if (wlan_suspend_cfg_r14_present) { wlan_suspend_cfg_r14 = make_copy_ptr(wlan_suspend_cfg_r14_s()); HANDLE_CODE(wlan_suspend_cfg_r14->unpack(bref)); } } } return SRSASN_SUCCESS; } void wlan_mob_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); if (wlan_to_release_list_r13_present) { j.start_array("wlan-ToReleaseList-r13"); for (uint32_t i1 = 0; i1 < wlan_to_release_list_r13.size(); ++i1) { wlan_to_release_list_r13[i1].to_json(j); } j.end_array(); } if (wlan_to_add_list_r13_present) { j.start_array("wlan-ToAddList-r13"); for (uint32_t i1 = 0; i1 < wlan_to_add_list_r13.size(); ++i1) { wlan_to_add_list_r13[i1].to_json(j); } j.end_array(); } if (association_timer_r13_present) { j.write_str("associationTimer-r13", association_timer_r13.to_string()); } if (success_report_requested_r13_present) { j.write_str("successReportRequested-r13", "true"); } if (ext) { rrc_asn1_warn_assert(wlan_suspend_cfg_r14_present != (wlan_suspend_cfg_r14.get() != NULL), __FILE__, __LINE__); if (wlan_suspend_cfg_r14_present) { j.write_fieldname("wlan-SuspendConfig-r14"); wlan_suspend_cfg_r14->to_json(j); } } j.end_obj(); } // LWA-Config-r13 ::= SEQUENCE SRSASN_CODE lwa_cfg_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(lwa_mob_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(lwa_wt_counter_r13_present, 1)); if (lwa_mob_cfg_r13_present) { HANDLE_CODE(lwa_mob_cfg_r13.pack(bref)); } if (lwa_wt_counter_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, lwa_wt_counter_r13, (uint16_t)0, (uint16_t)65535)); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= wt_mac_address_r14_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(wt_mac_address_r14_present, 1)); if (wt_mac_address_r14_present) { HANDLE_CODE(wt_mac_address_r14.pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE lwa_cfg_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(lwa_mob_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(lwa_wt_counter_r13_present, 1)); if (lwa_mob_cfg_r13_present) { HANDLE_CODE(lwa_mob_cfg_r13.unpack(bref)); } if (lwa_wt_counter_r13_present) { HANDLE_CODE(unpack_unalign_integer(lwa_wt_counter_r13, bref, (uint16_t)0, (uint16_t)65535)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(wt_mac_address_r14_present, 1)); if (wt_mac_address_r14_present) { HANDLE_CODE(wt_mac_address_r14.unpack(bref)); } } } return SRSASN_SUCCESS; } void lwa_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); if (lwa_mob_cfg_r13_present) { j.write_fieldname("lwa-MobilityConfig-r13"); lwa_mob_cfg_r13.to_json(j); } if (lwa_wt_counter_r13_present) { j.write_int("lwa-WT-Counter-r13", lwa_wt_counter_r13); } if (ext) { if (wt_mac_address_r14_present) { j.write_str("wt-MAC-Address-r14", wt_mac_address_r14.to_string()); } } j.end_obj(); } // LWIP-Config-r13 ::= SEQUENCE SRSASN_CODE lwip_cfg_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(lwip_mob_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(tunnel_cfg_lwip_r13_present, 1)); if (lwip_mob_cfg_r13_present) { HANDLE_CODE(lwip_mob_cfg_r13.pack(bref)); } if (tunnel_cfg_lwip_r13_present) { HANDLE_CODE(tunnel_cfg_lwip_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE lwip_cfg_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(lwip_mob_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(tunnel_cfg_lwip_r13_present, 1)); if (lwip_mob_cfg_r13_present) { HANDLE_CODE(lwip_mob_cfg_r13.unpack(bref)); } if (tunnel_cfg_lwip_r13_present) { HANDLE_CODE(tunnel_cfg_lwip_r13.unpack(bref)); } return SRSASN_SUCCESS; } void lwip_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); if (lwip_mob_cfg_r13_present) { j.write_fieldname("lwip-MobilityConfig-r13"); lwip_mob_cfg_r13.to_json(j); } if (tunnel_cfg_lwip_r13_present) { j.write_fieldname("tunnelConfigLWIP-r13"); tunnel_cfg_lwip_r13.to_json(j); } j.end_obj(); } // MobilityControlInfoSCG-r12 ::= SEQUENCE SRSASN_CODE mob_ctrl_info_scg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ue_id_scg_r12_present, 1)); HANDLE_CODE(bref.pack(rach_cfg_ded_r12_present, 1)); HANDLE_CODE(bref.pack(ciphering_algorithm_scg_r12_present, 1)); HANDLE_CODE(pack_enum(bref, t307_r12)); if (ue_id_scg_r12_present) { HANDLE_CODE(ue_id_scg_r12.pack(bref)); } if (rach_cfg_ded_r12_present) { HANDLE_CODE(rach_cfg_ded_r12.pack(bref)); } if (ciphering_algorithm_scg_r12_present) { HANDLE_CODE(pack_enum(bref, ciphering_algorithm_scg_r12)); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= make_before_break_scg_r14_present; rrc_asn1_warn_assert(rach_skip_scg_r14_present != (rach_skip_scg_r14.get() != NULL), __FILE__, __LINE__); group_flags[0] |= rach_skip_scg_r14_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(make_before_break_scg_r14_present, 1)); HANDLE_CODE(bref.pack(rach_skip_scg_r14_present, 1)); if (rach_skip_scg_r14_present) { HANDLE_CODE(rach_skip_scg_r14->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE mob_ctrl_info_scg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ue_id_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(rach_cfg_ded_r12_present, 1)); HANDLE_CODE(bref.unpack(ciphering_algorithm_scg_r12_present, 1)); HANDLE_CODE(unpack_enum(t307_r12, bref)); if (ue_id_scg_r12_present) { HANDLE_CODE(ue_id_scg_r12.unpack(bref)); } if (rach_cfg_ded_r12_present) { HANDLE_CODE(rach_cfg_ded_r12.unpack(bref)); } if (ciphering_algorithm_scg_r12_present) { HANDLE_CODE(unpack_enum(ciphering_algorithm_scg_r12, bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(make_before_break_scg_r14_present, 1)); HANDLE_CODE(bref.unpack(rach_skip_scg_r14_present, 1)); if (rach_skip_scg_r14_present) { rach_skip_scg_r14 = make_copy_ptr(rach_skip_r14_s()); HANDLE_CODE(rach_skip_scg_r14->unpack(bref)); } } } return SRSASN_SUCCESS; } void mob_ctrl_info_scg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("t307-r12", t307_r12.to_string()); if (ue_id_scg_r12_present) { j.write_str("ue-IdentitySCG-r12", ue_id_scg_r12.to_string()); } if (rach_cfg_ded_r12_present) { j.write_fieldname("rach-ConfigDedicated-r12"); rach_cfg_ded_r12.to_json(j); } if (ciphering_algorithm_scg_r12_present) { j.write_str("cipheringAlgorithmSCG-r12", ciphering_algorithm_scg_r12.to_string()); } if (ext) { if (make_before_break_scg_r14_present) { j.write_str("makeBeforeBreakSCG-r14", "true"); } rrc_asn1_warn_assert(rach_skip_scg_r14_present != (rach_skip_scg_r14.get() != NULL), __FILE__, __LINE__); if (rach_skip_scg_r14_present) { j.write_fieldname("rach-SkipSCG-r14"); rach_skip_scg_r14->to_json(j); } } j.end_obj(); } // PSCellToAddMod-r12 ::= SEQUENCE SRSASN_CODE ps_cell_to_add_mod_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_identif_r12_present, 1)); HANDLE_CODE(bref.pack(rr_cfg_common_ps_cell_r12_present, 1)); HANDLE_CODE(bref.pack(rr_cfg_ded_ps_cell_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, s_cell_idx_r12, (uint8_t)1, (uint8_t)7)); if (cell_identif_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_identif_r12.pci_r12, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, cell_identif_r12.dl_carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); } if (rr_cfg_common_ps_cell_r12_present) { HANDLE_CODE(rr_cfg_common_ps_cell_r12.pack(bref)); } if (rr_cfg_ded_ps_cell_r12_present) { HANDLE_CODE(rr_cfg_ded_ps_cell_r12.pack(bref)); } if (ext) { ext_groups_header group_flags(3); rrc_asn1_warn_assert(ant_info_ded_ps_cell_v1280_present != (ant_info_ded_ps_cell_v1280.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ant_info_ded_ps_cell_v1280_present; group_flags[1] |= s_cell_idx_r13_present; rrc_asn1_warn_assert(rr_cfg_ded_ps_cell_v1370_present != (rr_cfg_ded_ps_cell_v1370.get() != NULL), __FILE__, __LINE__); group_flags[2] |= rr_cfg_ded_ps_cell_v1370_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ant_info_ded_ps_cell_v1280_present, 1)); if (ant_info_ded_ps_cell_v1280_present) { HANDLE_CODE(ant_info_ded_ps_cell_v1280->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(s_cell_idx_r13_present, 1)); if (s_cell_idx_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, s_cell_idx_r13, (uint8_t)1, (uint8_t)31)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rr_cfg_ded_ps_cell_v1370_present, 1)); if (rr_cfg_ded_ps_cell_v1370_present) { HANDLE_CODE(rr_cfg_ded_ps_cell_v1370->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE ps_cell_to_add_mod_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_identif_r12_present, 1)); HANDLE_CODE(bref.unpack(rr_cfg_common_ps_cell_r12_present, 1)); HANDLE_CODE(bref.unpack(rr_cfg_ded_ps_cell_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(s_cell_idx_r12, bref, (uint8_t)1, (uint8_t)7)); if (cell_identif_r12_present) { HANDLE_CODE(unpack_unalign_integer(cell_identif_r12.pci_r12, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(cell_identif_r12.dl_carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); } if (rr_cfg_common_ps_cell_r12_present) { HANDLE_CODE(rr_cfg_common_ps_cell_r12.unpack(bref)); } if (rr_cfg_ded_ps_cell_r12_present) { HANDLE_CODE(rr_cfg_ded_ps_cell_r12.unpack(bref)); } if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ant_info_ded_ps_cell_v1280_present, 1)); if (ant_info_ded_ps_cell_v1280_present) { ant_info_ded_ps_cell_v1280 = make_copy_ptr(ant_info_ded_v10i0_s()); HANDLE_CODE(ant_info_ded_ps_cell_v1280->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(s_cell_idx_r13_present, 1)); if (s_cell_idx_r13_present) { HANDLE_CODE(unpack_unalign_integer(s_cell_idx_r13, bref, (uint8_t)1, (uint8_t)31)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rr_cfg_ded_ps_cell_v1370_present, 1)); if (rr_cfg_ded_ps_cell_v1370_present) { rr_cfg_ded_ps_cell_v1370 = make_copy_ptr(rr_cfg_ded_ps_cell_v1370_s()); HANDLE_CODE(rr_cfg_ded_ps_cell_v1370->unpack(bref)); } } } return SRSASN_SUCCESS; } void ps_cell_to_add_mod_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sCellIndex-r12", s_cell_idx_r12); if (cell_identif_r12_present) { j.write_fieldname("cellIdentification-r12"); j.start_obj(); j.write_int("physCellId-r12", cell_identif_r12.pci_r12); j.write_int("dl-CarrierFreq-r12", cell_identif_r12.dl_carrier_freq_r12); j.end_obj(); } if (rr_cfg_common_ps_cell_r12_present) { j.write_fieldname("radioResourceConfigCommonPSCell-r12"); rr_cfg_common_ps_cell_r12.to_json(j); } if (rr_cfg_ded_ps_cell_r12_present) { j.write_fieldname("radioResourceConfigDedicatedPSCell-r12"); rr_cfg_ded_ps_cell_r12.to_json(j); } if (ext) { rrc_asn1_warn_assert(ant_info_ded_ps_cell_v1280_present != (ant_info_ded_ps_cell_v1280.get() != NULL), __FILE__, __LINE__); if (ant_info_ded_ps_cell_v1280_present) { j.write_fieldname("antennaInfoDedicatedPSCell-v1280"); ant_info_ded_ps_cell_v1280->to_json(j); } if (s_cell_idx_r13_present) { j.write_int("sCellIndex-r13", s_cell_idx_r13); } rrc_asn1_warn_assert(rr_cfg_ded_ps_cell_v1370_present != (rr_cfg_ded_ps_cell_v1370.get() != NULL), __FILE__, __LINE__); if (rr_cfg_ded_ps_cell_v1370_present) { j.write_fieldname("radioResourceConfigDedicatedPSCell-v1370"); rr_cfg_ded_ps_cell_v1370->to_json(j); } } j.end_obj(); } // PSCellToAddMod-v12f0 ::= SEQUENCE SRSASN_CODE ps_cell_to_add_mod_v12f0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rr_cfg_common_ps_cell_r12_present, 1)); if (rr_cfg_common_ps_cell_r12_present) { HANDLE_CODE(rr_cfg_common_ps_cell_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ps_cell_to_add_mod_v12f0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rr_cfg_common_ps_cell_r12_present, 1)); if (rr_cfg_common_ps_cell_r12_present) { HANDLE_CODE(rr_cfg_common_ps_cell_r12.unpack(bref)); } return SRSASN_SUCCESS; } void ps_cell_to_add_mod_v12f0_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_common_ps_cell_r12_present) { j.write_fieldname("radioResourceConfigCommonPSCell-r12"); rr_cfg_common_ps_cell_r12.to_json(j); } j.end_obj(); } // PSCellToAddMod-v1440 ::= SEQUENCE SRSASN_CODE ps_cell_to_add_mod_v1440_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rr_cfg_common_ps_cell_r14_present, 1)); if (rr_cfg_common_ps_cell_r14_present) { HANDLE_CODE(rr_cfg_common_ps_cell_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ps_cell_to_add_mod_v1440_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rr_cfg_common_ps_cell_r14_present, 1)); if (rr_cfg_common_ps_cell_r14_present) { HANDLE_CODE(rr_cfg_common_ps_cell_r14.unpack(bref)); } return SRSASN_SUCCESS; } void ps_cell_to_add_mod_v1440_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_common_ps_cell_r14_present) { j.write_fieldname("radioResourceConfigCommonPSCell-r14"); rr_cfg_common_ps_cell_r14.to_json(j); } j.end_obj(); } // RCLWI-Config-r13 ::= SEQUENCE SRSASN_CODE rclwi_cfg_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(cmd.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rclwi_cfg_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(cmd.unpack(bref)); return SRSASN_SUCCESS; } void rclwi_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("command"); cmd.to_json(j); j.end_obj(); } void rclwi_cfg_r13_s::cmd_c_::set(types::options e) { type_ = e; } void rclwi_cfg_r13_s::cmd_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::steer_to_wlan_r13: j.write_fieldname("steerToWLAN-r13"); j.start_obj(); j.start_array("mobilityConfig-r13"); for (uint32_t i1 = 0; i1 < c.mob_cfg_r13.size(); ++i1) { c.mob_cfg_r13[i1].to_json(j); } j.end_array(); j.end_obj(); break; case types::steer_to_lte_r13: break; default: log_invalid_choice_id(type_, "rclwi_cfg_r13_s::cmd_c_"); } j.end_obj(); } SRSASN_CODE rclwi_cfg_r13_s::cmd_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::steer_to_wlan_r13: HANDLE_CODE(pack_dyn_seq_of(bref, c.mob_cfg_r13, 1, 16)); break; case types::steer_to_lte_r13: break; default: log_invalid_choice_id(type_, "rclwi_cfg_r13_s::cmd_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rclwi_cfg_r13_s::cmd_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::steer_to_wlan_r13: HANDLE_CODE(unpack_dyn_seq_of(c.mob_cfg_r13, bref, 1, 16)); break; case types::steer_to_lte_r13: break; default: log_invalid_choice_id(type_, "rclwi_cfg_r13_s::cmd_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReconfiguration-v1510-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1510_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(nr_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(sk_counter_r15_present, 1)); HANDLE_CODE(bref.pack(nr_radio_bearer_cfg1_r15_present, 1)); HANDLE_CODE(bref.pack(nr_radio_bearer_cfg2_r15_present, 1)); HANDLE_CODE(bref.pack(tdm_pattern_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (nr_cfg_r15_present) { HANDLE_CODE(nr_cfg_r15.pack(bref)); } if (sk_counter_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, sk_counter_r15, (uint16_t)0, (uint16_t)65535)); } if (nr_radio_bearer_cfg1_r15_present) { HANDLE_CODE(nr_radio_bearer_cfg1_r15.pack(bref)); } if (nr_radio_bearer_cfg2_r15_present) { HANDLE_CODE(nr_radio_bearer_cfg2_r15.pack(bref)); } if (tdm_pattern_cfg_r15_present) { HANDLE_CODE(tdm_pattern_cfg_r15.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1510_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(nr_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(sk_counter_r15_present, 1)); HANDLE_CODE(bref.unpack(nr_radio_bearer_cfg1_r15_present, 1)); HANDLE_CODE(bref.unpack(nr_radio_bearer_cfg2_r15_present, 1)); HANDLE_CODE(bref.unpack(tdm_pattern_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (nr_cfg_r15_present) { HANDLE_CODE(nr_cfg_r15.unpack(bref)); } if (sk_counter_r15_present) { HANDLE_CODE(unpack_unalign_integer(sk_counter_r15, bref, (uint16_t)0, (uint16_t)65535)); } if (nr_radio_bearer_cfg1_r15_present) { HANDLE_CODE(nr_radio_bearer_cfg1_r15.unpack(bref)); } if (nr_radio_bearer_cfg2_r15_present) { HANDLE_CODE(nr_radio_bearer_cfg2_r15.unpack(bref)); } if (tdm_pattern_cfg_r15_present) { HANDLE_CODE(tdm_pattern_cfg_r15.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1510_ies_s::to_json(json_writer& j) const { j.start_obj(); if (nr_cfg_r15_present) { j.write_fieldname("nr-Config-r15"); nr_cfg_r15.to_json(j); } if (sk_counter_r15_present) { j.write_int("sk-Counter-r15", sk_counter_r15); } if (nr_radio_bearer_cfg1_r15_present) { j.write_str("nr-RadioBearerConfig1-r15", nr_radio_bearer_cfg1_r15.to_string()); } if (nr_radio_bearer_cfg2_r15_present) { j.write_str("nr-RadioBearerConfig2-r15", nr_radio_bearer_cfg2_r15.to_string()); } if (tdm_pattern_cfg_r15_present) { j.write_fieldname("tdm-PatternConfig-r15"); tdm_pattern_cfg_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::set(types::options e) { type_ = e; } void rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_bool("endc-ReleaseAndAdd-r15", c.endc_release_and_add_r15); if (c.nr_secondary_cell_group_cfg_r15_present) { j.write_str("nr-SecondaryCellGroupConfig-r15", c.nr_secondary_cell_group_cfg_r15.to_string()); } if (c.p_max_eutra_r15_present) { j.write_int("p-MaxEUTRA-r15", c.p_max_eutra_r15); } j.end_obj(); break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.nr_secondary_cell_group_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(c.p_max_eutra_r15_present, 1)); HANDLE_CODE(bref.pack(c.endc_release_and_add_r15, 1)); if (c.nr_secondary_cell_group_cfg_r15_present) { HANDLE_CODE(c.nr_secondary_cell_group_cfg_r15.pack(bref)); } if (c.p_max_eutra_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.p_max_eutra_r15, (int8_t)-30, (int8_t)33)); } break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.nr_secondary_cell_group_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(c.p_max_eutra_r15_present, 1)); HANDLE_CODE(bref.unpack(c.endc_release_and_add_r15, 1)); if (c.nr_secondary_cell_group_cfg_r15_present) { HANDLE_CODE(c.nr_secondary_cell_group_cfg_r15.unpack(bref)); } if (c.p_max_eutra_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.p_max_eutra_r15, bref, (int8_t)-30, (int8_t)33)); } break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_::set(types::options e) { type_ = e; } void rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("subframeAssignment-r15", c.sf_assign_r15.to_string()); j.write_int("harq-Offset-r15", c.harq_offset_r15); j.end_obj(); break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.sf_assign_r15)); HANDLE_CODE(pack_unalign_integer(bref, c.harq_offset_r15, (uint8_t)0, (uint8_t)9)); break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.sf_assign_r15, bref)); HANDLE_CODE(unpack_unalign_integer(c.harq_offset_r15, bref, (uint8_t)0, (uint8_t)9)); break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE SRSASN_CODE rr_cfg_ded_scg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(drb_to_add_mod_list_scg_r12_present, 1)); HANDLE_CODE(bref.pack(mac_main_cfg_scg_r12_present, 1)); HANDLE_CODE(bref.pack(rlf_timers_and_consts_scg_r12_present, 1)); if (drb_to_add_mod_list_scg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_add_mod_list_scg_r12, 1, 11)); } if (mac_main_cfg_scg_r12_present) { HANDLE_CODE(mac_main_cfg_scg_r12.pack(bref)); } if (rlf_timers_and_consts_scg_r12_present) { HANDLE_CODE(rlf_timers_and_consts_scg_r12.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(drb_to_add_mod_list_scg_r15_present != (drb_to_add_mod_list_scg_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= drb_to_add_mod_list_scg_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(drb_to_add_mod_list_scg_r15_present, 1)); if (drb_to_add_mod_list_scg_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *drb_to_add_mod_list_scg_r15, 1, 15)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_scg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(drb_to_add_mod_list_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(mac_main_cfg_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(rlf_timers_and_consts_scg_r12_present, 1)); if (drb_to_add_mod_list_scg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_to_add_mod_list_scg_r12, bref, 1, 11)); } if (mac_main_cfg_scg_r12_present) { HANDLE_CODE(mac_main_cfg_scg_r12.unpack(bref)); } if (rlf_timers_and_consts_scg_r12_present) { HANDLE_CODE(rlf_timers_and_consts_scg_r12.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(drb_to_add_mod_list_scg_r15_present, 1)); if (drb_to_add_mod_list_scg_r15_present) { drb_to_add_mod_list_scg_r15 = make_copy_ptr(drb_to_add_mod_list_scg_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*drb_to_add_mod_list_scg_r15, bref, 1, 15)); } } } return SRSASN_SUCCESS; } void rr_cfg_ded_scg_r12_s::to_json(json_writer& j) const { j.start_obj(); if (drb_to_add_mod_list_scg_r12_present) { j.start_array("drb-ToAddModListSCG-r12"); for (uint32_t i1 = 0; i1 < drb_to_add_mod_list_scg_r12.size(); ++i1) { drb_to_add_mod_list_scg_r12[i1].to_json(j); } j.end_array(); } if (mac_main_cfg_scg_r12_present) { j.write_fieldname("mac-MainConfigSCG-r12"); mac_main_cfg_scg_r12.to_json(j); } if (rlf_timers_and_consts_scg_r12_present) { j.write_fieldname("rlf-TimersAndConstantsSCG-r12"); rlf_timers_and_consts_scg_r12.to_json(j); } if (ext) { rrc_asn1_warn_assert(drb_to_add_mod_list_scg_r15_present != (drb_to_add_mod_list_scg_r15.get() != NULL), __FILE__, __LINE__); if (drb_to_add_mod_list_scg_r15_present) { j.start_array("drb-ToAddModListSCG-r15"); for (uint32_t i1 = 0; i1 < drb_to_add_mod_list_scg_r15->size(); ++i1) { ((*drb_to_add_mod_list_scg_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SL-CommTxPoolToAddMod-r12 ::= SEQUENCE SRSASN_CODE sl_comm_tx_pool_to_add_mod_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pool_id_r12, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pool_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_tx_pool_to_add_mod_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pool_id_r12, bref, (uint8_t)1, (uint8_t)4)); HANDLE_CODE(pool_r12.unpack(bref)); return SRSASN_SUCCESS; } void sl_comm_tx_pool_to_add_mod_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("poolIdentity-r12", pool_id_r12); j.write_fieldname("pool-r12"); pool_r12.to_json(j); j.end_obj(); } // SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE SRSASN_CODE sl_comm_tx_pool_to_add_mod_ext_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pool_id_v1310, (uint8_t)5, (uint8_t)8)); HANDLE_CODE(pool_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_tx_pool_to_add_mod_ext_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pool_id_v1310, bref, (uint8_t)5, (uint8_t)8)); HANDLE_CODE(pool_r13.unpack(bref)); return SRSASN_SUCCESS; } void sl_comm_tx_pool_to_add_mod_ext_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("poolIdentity-v1310", pool_id_v1310); j.write_fieldname("pool-r13"); pool_r13.to_json(j); j.end_obj(); } // SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE SRSASN_CODE sl_disc_tx_res_info_per_freq_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(disc_tx_res_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_res_ps_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_ref_carrier_ded_r13_present, 1)); HANDLE_CODE(bref.pack(disc_cell_sel_info_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, disc_tx_carrier_freq_r13, (uint32_t)0, (uint32_t)262143)); if (disc_tx_res_r13_present) { HANDLE_CODE(disc_tx_res_r13.pack(bref)); } if (disc_tx_res_ps_r13_present) { HANDLE_CODE(disc_tx_res_ps_r13.pack(bref)); } if (disc_tx_ref_carrier_ded_r13_present) { HANDLE_CODE(disc_tx_ref_carrier_ded_r13.pack(bref)); } if (disc_cell_sel_info_r13_present) { HANDLE_CODE(disc_cell_sel_info_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_res_info_per_freq_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(disc_tx_res_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_res_ps_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_ref_carrier_ded_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_cell_sel_info_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(disc_tx_carrier_freq_r13, bref, (uint32_t)0, (uint32_t)262143)); if (disc_tx_res_r13_present) { HANDLE_CODE(disc_tx_res_r13.unpack(bref)); } if (disc_tx_res_ps_r13_present) { HANDLE_CODE(disc_tx_res_ps_r13.unpack(bref)); } if (disc_tx_ref_carrier_ded_r13_present) { HANDLE_CODE(disc_tx_ref_carrier_ded_r13.unpack(bref)); } if (disc_cell_sel_info_r13_present) { HANDLE_CODE(disc_cell_sel_info_r13.unpack(bref)); } return SRSASN_SUCCESS; } void sl_disc_tx_res_info_per_freq_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("discTxCarrierFreq-r13", disc_tx_carrier_freq_r13); if (disc_tx_res_r13_present) { j.write_fieldname("discTxResources-r13"); disc_tx_res_r13.to_json(j); } if (disc_tx_res_ps_r13_present) { j.write_fieldname("discTxResourcesPS-r13"); disc_tx_res_ps_r13.to_json(j); } if (disc_tx_ref_carrier_ded_r13_present) { j.write_fieldname("discTxRefCarrierDedicated-r13"); disc_tx_ref_carrier_ded_r13.to_json(j); } if (disc_cell_sel_info_r13_present) { j.write_fieldname("discCellSelectionInfo-r13"); disc_cell_sel_info_r13.to_json(j); } j.end_obj(); } // SL-TF-IndexPair-r12 ::= SEQUENCE SRSASN_CODE sl_tf_idx_pair_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(disc_sf_idx_r12_present, 1)); HANDLE_CODE(bref.pack(disc_prb_idx_r12_present, 1)); if (disc_sf_idx_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, disc_sf_idx_r12, (uint8_t)1, (uint8_t)200)); } if (disc_prb_idx_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, disc_prb_idx_r12, (uint8_t)1, (uint8_t)50)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_tf_idx_pair_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(disc_sf_idx_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_prb_idx_r12_present, 1)); if (disc_sf_idx_r12_present) { HANDLE_CODE(unpack_unalign_integer(disc_sf_idx_r12, bref, (uint8_t)1, (uint8_t)200)); } if (disc_prb_idx_r12_present) { HANDLE_CODE(unpack_unalign_integer(disc_prb_idx_r12, bref, (uint8_t)1, (uint8_t)50)); } return SRSASN_SUCCESS; } void sl_tf_idx_pair_r12_s::to_json(json_writer& j) const { j.start_obj(); if (disc_sf_idx_r12_present) { j.write_int("discSF-Index-r12", disc_sf_idx_r12); } if (disc_prb_idx_r12_present) { j.write_int("discPRB-Index-r12", disc_prb_idx_r12); } j.end_obj(); } // SL-V2X-ConfigDedicated-r14 ::= SEQUENCE SRSASN_CODE sl_v2x_cfg_ded_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(comm_tx_res_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_inter_freq_info_list_r14_present, 1)); HANDLE_CODE(bref.pack(thres_sl_tx_prioritization_r14_present, 1)); HANDLE_CODE(bref.pack(type_tx_sync_r14_present, 1)); HANDLE_CODE(bref.pack(cbr_ded_tx_cfg_list_r14_present, 1)); if (comm_tx_res_r14_present) { HANDLE_CODE(comm_tx_res_r14.pack(bref)); } if (v2x_inter_freq_info_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_inter_freq_info_list_r14, 0, 7)); } if (thres_sl_tx_prioritization_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_sl_tx_prioritization_r14, (uint8_t)1, (uint8_t)8)); } if (type_tx_sync_r14_present) { HANDLE_CODE(pack_enum(bref, type_tx_sync_r14)); } if (cbr_ded_tx_cfg_list_r14_present) { HANDLE_CODE(cbr_ded_tx_cfg_list_r14.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(comm_tx_res_v1530_present != (comm_tx_res_v1530.get() != NULL), __FILE__, __LINE__); group_flags[0] |= comm_tx_res_v1530_present; rrc_asn1_warn_assert(v2x_packet_dupl_cfg_r15_present != (v2x_packet_dupl_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= v2x_packet_dupl_cfg_r15_present; rrc_asn1_warn_assert(sync_freq_list_r15_present != (sync_freq_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= sync_freq_list_r15_present; group_flags[0] |= slss_tx_multi_freq_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(comm_tx_res_v1530_present, 1)); HANDLE_CODE(bref.pack(v2x_packet_dupl_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(sync_freq_list_r15_present, 1)); HANDLE_CODE(bref.pack(slss_tx_multi_freq_r15_present, 1)); if (comm_tx_res_v1530_present) { HANDLE_CODE(comm_tx_res_v1530->pack(bref)); } if (v2x_packet_dupl_cfg_r15_present) { HANDLE_CODE(v2x_packet_dupl_cfg_r15->pack(bref)); } if (sync_freq_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *sync_freq_list_r15, 1, 8, UnalignedIntegerPacker(0, 262143))); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_cfg_ded_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(comm_tx_res_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_inter_freq_info_list_r14_present, 1)); HANDLE_CODE(bref.unpack(thres_sl_tx_prioritization_r14_present, 1)); HANDLE_CODE(bref.unpack(type_tx_sync_r14_present, 1)); HANDLE_CODE(bref.unpack(cbr_ded_tx_cfg_list_r14_present, 1)); if (comm_tx_res_r14_present) { HANDLE_CODE(comm_tx_res_r14.unpack(bref)); } if (v2x_inter_freq_info_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_inter_freq_info_list_r14, bref, 0, 7)); } if (thres_sl_tx_prioritization_r14_present) { HANDLE_CODE(unpack_unalign_integer(thres_sl_tx_prioritization_r14, bref, (uint8_t)1, (uint8_t)8)); } if (type_tx_sync_r14_present) { HANDLE_CODE(unpack_enum(type_tx_sync_r14, bref)); } if (cbr_ded_tx_cfg_list_r14_present) { HANDLE_CODE(cbr_ded_tx_cfg_list_r14.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(comm_tx_res_v1530_present, 1)); HANDLE_CODE(bref.unpack(v2x_packet_dupl_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(sync_freq_list_r15_present, 1)); HANDLE_CODE(bref.unpack(slss_tx_multi_freq_r15_present, 1)); if (comm_tx_res_v1530_present) { comm_tx_res_v1530 = make_copy_ptr(comm_tx_res_v1530_c_()); HANDLE_CODE(comm_tx_res_v1530->unpack(bref)); } if (v2x_packet_dupl_cfg_r15_present) { v2x_packet_dupl_cfg_r15 = make_copy_ptr(sl_v2x_packet_dupl_cfg_r15_s()); HANDLE_CODE(v2x_packet_dupl_cfg_r15->unpack(bref)); } if (sync_freq_list_r15_present) { sync_freq_list_r15 = make_copy_ptr(sl_v2x_sync_freq_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*sync_freq_list_r15, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); } } } return SRSASN_SUCCESS; } void sl_v2x_cfg_ded_r14_s::to_json(json_writer& j) const { j.start_obj(); if (comm_tx_res_r14_present) { j.write_fieldname("commTxResources-r14"); comm_tx_res_r14.to_json(j); } if (v2x_inter_freq_info_list_r14_present) { j.start_array("v2x-InterFreqInfoList-r14"); for (uint32_t i1 = 0; i1 < v2x_inter_freq_info_list_r14.size(); ++i1) { v2x_inter_freq_info_list_r14[i1].to_json(j); } j.end_array(); } if (thres_sl_tx_prioritization_r14_present) { j.write_int("thresSL-TxPrioritization-r14", thres_sl_tx_prioritization_r14); } if (type_tx_sync_r14_present) { j.write_str("typeTxSync-r14", type_tx_sync_r14.to_string()); } if (cbr_ded_tx_cfg_list_r14_present) { j.write_fieldname("cbr-DedicatedTxConfigList-r14"); cbr_ded_tx_cfg_list_r14.to_json(j); } if (ext) { rrc_asn1_warn_assert(comm_tx_res_v1530_present != (comm_tx_res_v1530.get() != NULL), __FILE__, __LINE__); if (comm_tx_res_v1530_present) { j.write_fieldname("commTxResources-v1530"); comm_tx_res_v1530->to_json(j); } rrc_asn1_warn_assert(v2x_packet_dupl_cfg_r15_present != (v2x_packet_dupl_cfg_r15.get() != NULL), __FILE__, __LINE__); if (v2x_packet_dupl_cfg_r15_present) { j.write_fieldname("v2x-PacketDuplicationConfig-r15"); v2x_packet_dupl_cfg_r15->to_json(j); } rrc_asn1_warn_assert(sync_freq_list_r15_present != (sync_freq_list_r15.get() != NULL), __FILE__, __LINE__); if (sync_freq_list_r15_present) { j.start_array("syncFreqList-r15"); for (uint32_t i1 = 0; i1 < sync_freq_list_r15->size(); ++i1) { j.write_int(((*sync_freq_list_r15)[i1])); } j.end_array(); } if (slss_tx_multi_freq_r15_present) { j.write_str("slss-TxMultiFreq-r15", "true"); } } j.end_obj(); } void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::set(types::options e) { type_ = e; } void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_"); } j.end_obj(); } SRSASN_CODE sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::destroy_() { switch (type_) { case types::sched_r14: c.destroy(); break; case types::ue_sel_r14: c.destroy(); break; default: break; } } void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sched_r14: c.init(); break; case types::ue_sel_r14: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_"); } } sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::setup_c_( const sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::sched_r14: c.init(other.c.get()); break; case types::ue_sel_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_"); } } sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_& sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_:: operator=(const sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sched_r14: c.set(other.c.get()); break; case types::ue_sel_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_"); } return *this; } void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sched_r14: j.write_fieldname("scheduled-r14"); j.start_obj(); j.write_str("sl-V-RNTI-r14", c.get().sl_v_rnti_r14.to_string()); j.write_fieldname("mac-MainConfig-r14"); c.get().mac_main_cfg_r14.to_json(j); if (c.get().v2x_sched_pool_r14_present) { j.write_fieldname("v2x-SchedulingPool-r14"); c.get().v2x_sched_pool_r14.to_json(j); } if (c.get().mcs_r14_present) { j.write_int("mcs-r14", c.get().mcs_r14); } j.start_array("logicalChGroupInfoList-r14"); for (uint32_t i1 = 0; i1 < c.get().lc_ch_group_info_list_r14.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < c.get().lc_ch_group_info_list_r14[i1].size(); ++i2) { j.write_int(c.get().lc_ch_group_info_list_r14[i1][i2]); } j.end_array(); } j.end_array(); j.end_obj(); break; case types::ue_sel_r14: j.write_fieldname("ue-Selected-r14"); j.start_obj(); j.write_fieldname("v2x-CommTxPoolNormalDedicated-r14"); j.start_obj(); if (c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14_present) { j.start_array("poolToReleaseList-r14"); for (uint32_t i1 = 0; i1 < c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14.size(); ++i1) { j.write_int(c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14[i1]); } j.end_array(); } if (c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14_present) { j.start_array("poolToAddModList-r14"); for (uint32_t i1 = 0; i1 < c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14.size(); ++i1) { c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14[i1].to_json(j); } j.end_array(); } if (c.get().v2x_comm_tx_pool_normal_ded_r14.v2x_comm_tx_pool_sensing_cfg_r14_present) { j.write_fieldname("v2x-CommTxPoolSensingConfig-r14"); c.get().v2x_comm_tx_pool_normal_ded_r14.v2x_comm_tx_pool_sensing_cfg_r14.to_json(j); } j.end_obj(); j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sched_r14: HANDLE_CODE(bref.pack(c.get().v2x_sched_pool_r14_present, 1)); HANDLE_CODE(bref.pack(c.get().mcs_r14_present, 1)); HANDLE_CODE(c.get().sl_v_rnti_r14.pack(bref)); HANDLE_CODE(c.get().mac_main_cfg_r14.pack(bref)); if (c.get().v2x_sched_pool_r14_present) { HANDLE_CODE(c.get().v2x_sched_pool_r14.pack(bref)); } if (c.get().mcs_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, c.get().mcs_r14, (uint8_t)0, (uint8_t)31)); } HANDLE_CODE( pack_dyn_seq_of(bref, c.get().lc_ch_group_info_list_r14, 1, 4, SeqOfPacker >(1, 8, UnalignedIntegerPacker(1, 8)))); break; case types::ue_sel_r14: HANDLE_CODE( bref.pack(c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14_present, 1)); HANDLE_CODE( bref.pack(c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14_present, 1)); HANDLE_CODE(bref.pack( c.get().v2x_comm_tx_pool_normal_ded_r14.v2x_comm_tx_pool_sensing_cfg_r14_present, 1)); if (c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14, 1, 8, UnalignedIntegerPacker(1, 8))); } if (c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of( bref, c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14, 1, 8)); } if (c.get().v2x_comm_tx_pool_normal_ded_r14.v2x_comm_tx_pool_sensing_cfg_r14_present) { HANDLE_CODE(c.get().v2x_comm_tx_pool_normal_ded_r14.v2x_comm_tx_pool_sensing_cfg_r14.pack(bref)); } break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sched_r14: HANDLE_CODE(bref.unpack(c.get().v2x_sched_pool_r14_present, 1)); HANDLE_CODE(bref.unpack(c.get().mcs_r14_present, 1)); HANDLE_CODE(c.get().sl_v_rnti_r14.unpack(bref)); HANDLE_CODE(c.get().mac_main_cfg_r14.unpack(bref)); if (c.get().v2x_sched_pool_r14_present) { HANDLE_CODE(c.get().v2x_sched_pool_r14.unpack(bref)); } if (c.get().mcs_r14_present) { HANDLE_CODE(unpack_unalign_integer(c.get().mcs_r14, bref, (uint8_t)0, (uint8_t)31)); } HANDLE_CODE(unpack_dyn_seq_of( c.get().lc_ch_group_info_list_r14, bref, 1, 4, SeqOfPacker >(1, 8, UnalignedIntegerPacker(1, 8)))); break; case types::ue_sel_r14: HANDLE_CODE( bref.unpack(c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14_present, 1)); HANDLE_CODE( bref.unpack(c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14_present, 1)); HANDLE_CODE(bref.unpack( c.get().v2x_comm_tx_pool_normal_ded_r14.v2x_comm_tx_pool_sensing_cfg_r14_present, 1)); if (c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_release_list_r14, bref, 1, 8, UnalignedIntegerPacker(1, 8))); } if (c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().v2x_comm_tx_pool_normal_ded_r14.pool_to_add_mod_list_r14, bref, 1, 8)); } if (c.get().v2x_comm_tx_pool_normal_ded_r14.v2x_comm_tx_pool_sensing_cfg_r14_present) { HANDLE_CODE( c.get().v2x_comm_tx_pool_normal_ded_r14.v2x_comm_tx_pool_sensing_cfg_r14.unpack(bref)); } break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::set(types::options e) { type_ = e; } void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_"); } j.end_obj(); } SRSASN_CODE sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::destroy_() { switch (type_) { case types::sched_v1530: c.destroy(); break; case types::ue_sel_v1530: c.destroy(); break; default: break; } } void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sched_v1530: c.init(); break; case types::ue_sel_v1530: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_"); } } sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::setup_c_( const sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::sched_v1530: c.init(other.c.get()); break; case types::ue_sel_v1530: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_"); } } sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_& sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_:: operator=(const sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sched_v1530: c.set(other.c.get()); break; case types::ue_sel_v1530: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_"); } return *this; } void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sched_v1530: j.write_fieldname("scheduled-v1530"); j.start_obj(); if (c.get().lc_ch_group_info_list_v1530_present) { j.start_array("logicalChGroupInfoList-v1530"); for (uint32_t i1 = 0; i1 < c.get().lc_ch_group_info_list_v1530.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < c.get().lc_ch_group_info_list_v1530[i1].size(); ++i2) { j.write_int(c.get().lc_ch_group_info_list_v1530[i1][i2]); } j.end_array(); } j.end_array(); } if (c.get().mcs_r15_present) { j.write_int("mcs-r15", c.get().mcs_r15); } j.end_obj(); break; case types::ue_sel_v1530: j.write_fieldname("ue-Selected-v1530"); j.start_obj(); if (c.get().v2x_freq_sel_cfg_list_r15_present) { j.start_array("v2x-FreqSelectionConfigList-r15"); for (uint32_t i1 = 0; i1 < c.get().v2x_freq_sel_cfg_list_r15.size(); ++i1) { c.get().v2x_freq_sel_cfg_list_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sched_v1530: HANDLE_CODE(bref.pack(c.get().lc_ch_group_info_list_v1530_present, 1)); HANDLE_CODE(bref.pack(c.get().mcs_r15_present, 1)); if (c.get().lc_ch_group_info_list_v1530_present) { HANDLE_CODE(pack_dyn_seq_of( bref, c.get().lc_ch_group_info_list_v1530, 1, 4, SeqOfPacker >(1, 8, UnalignedIntegerPacker(1, 8)))); } if (c.get().mcs_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, c.get().mcs_r15, (uint8_t)0, (uint8_t)31)); } break; case types::ue_sel_v1530: HANDLE_CODE(bref.pack(c.get().v2x_freq_sel_cfg_list_r15_present, 1)); if (c.get().v2x_freq_sel_cfg_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().v2x_freq_sel_cfg_list_r15, 1, 8)); } break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sched_v1530: HANDLE_CODE(bref.unpack(c.get().lc_ch_group_info_list_v1530_present, 1)); HANDLE_CODE(bref.unpack(c.get().mcs_r15_present, 1)); if (c.get().lc_ch_group_info_list_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of( c.get().lc_ch_group_info_list_v1530, bref, 1, 4, SeqOfPacker >(1, 8, UnalignedIntegerPacker(1, 8)))); } if (c.get().mcs_r15_present) { HANDLE_CODE(unpack_unalign_integer(c.get().mcs_r15, bref, (uint8_t)0, (uint8_t)31)); } break; case types::ue_sel_v1530: HANDLE_CODE(bref.unpack(c.get().v2x_freq_sel_cfg_list_r15_present, 1)); if (c.get().v2x_freq_sel_cfg_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().v2x_freq_sel_cfg_list_r15, bref, 1, 8)); } break; default: log_invalid_choice_id(type_, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // BandIndication-r14 ::= SEQUENCE SRSASN_CODE band_ind_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ca_bw_class_ul_r14_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, band_eutra_r14, (uint16_t)1, (uint16_t)256)); HANDLE_CODE(pack_enum(bref, ca_bw_class_dl_r14)); if (ca_bw_class_ul_r14_present) { HANDLE_CODE(pack_enum(bref, ca_bw_class_ul_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE band_ind_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ca_bw_class_ul_r14_present, 1)); HANDLE_CODE(unpack_unalign_integer(band_eutra_r14, bref, (uint16_t)1, (uint16_t)256)); HANDLE_CODE(unpack_enum(ca_bw_class_dl_r14, bref)); if (ca_bw_class_ul_r14_present) { HANDLE_CODE(unpack_enum(ca_bw_class_ul_r14, bref)); } return SRSASN_SUCCESS; } void band_ind_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("bandEUTRA-r14", band_eutra_r14); j.write_str("ca-BandwidthClassDL-r14", ca_bw_class_dl_r14.to_string()); if (ca_bw_class_ul_r14_present) { j.write_str("ca-BandwidthClassUL-r14", ca_bw_class_ul_r14.to_string()); } j.end_obj(); } // LWA-Configuration-r13 ::= CHOICE void lwa_cfg_r13_c::set(types::options e) { type_ = e; } void lwa_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("lwa-Config-r13"); c.lwa_cfg_r13.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "lwa_cfg_r13_c"); } j.end_obj(); } SRSASN_CODE lwa_cfg_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.lwa_cfg_r13.pack(bref)); break; default: log_invalid_choice_id(type_, "lwa_cfg_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE lwa_cfg_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.lwa_cfg_r13.unpack(bref)); break; default: log_invalid_choice_id(type_, "lwa_cfg_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // LWIP-Configuration-r13 ::= CHOICE void lwip_cfg_r13_c::set(types::options e) { type_ = e; } void lwip_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("lwip-Config-r13"); c.lwip_cfg_r13.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "lwip_cfg_r13_c"); } j.end_obj(); } SRSASN_CODE lwip_cfg_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.lwip_cfg_r13.pack(bref)); break; default: log_invalid_choice_id(type_, "lwip_cfg_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE lwip_cfg_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.lwip_cfg_r13.unpack(bref)); break; default: log_invalid_choice_id(type_, "lwip_cfg_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasCSI-RS-Config-r12 ::= SEQUENCE SRSASN_CODE meas_csi_rs_cfg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, meas_csi_rs_id_r12, (uint8_t)1, (uint8_t)96)); HANDLE_CODE(pack_unalign_integer(bref, pci_r12, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, scrambling_id_r12, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, res_cfg_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, sf_offset_r12, (uint8_t)0, (uint8_t)4)); HANDLE_CODE(pack_enum(bref, csi_rs_individual_offset_r12)); return SRSASN_SUCCESS; } SRSASN_CODE meas_csi_rs_cfg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(meas_csi_rs_id_r12, bref, (uint8_t)1, (uint8_t)96)); HANDLE_CODE(unpack_unalign_integer(pci_r12, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(scrambling_id_r12, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(res_cfg_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(sf_offset_r12, bref, (uint8_t)0, (uint8_t)4)); HANDLE_CODE(unpack_enum(csi_rs_individual_offset_r12, bref)); return SRSASN_SUCCESS; } void meas_csi_rs_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measCSI-RS-Id-r12", meas_csi_rs_id_r12); j.write_int("physCellId-r12", pci_r12); j.write_int("scramblingIdentity-r12", scrambling_id_r12); j.write_int("resourceConfig-r12", res_cfg_r12); j.write_int("subframeOffset-r12", sf_offset_r12); j.write_str("csi-RS-IndividualOffset-r12", csi_rs_individual_offset_r12.to_string()); j.end_obj(); } // PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE SRSASN_CODE pci_range_utra_fdd_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(range_r9_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, start_r9, (uint16_t)0, (uint16_t)511)); if (range_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, range_r9, (uint16_t)2, (uint16_t)512)); } return SRSASN_SUCCESS; } SRSASN_CODE pci_range_utra_fdd_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(range_r9_present, 1)); HANDLE_CODE(unpack_unalign_integer(start_r9, bref, (uint16_t)0, (uint16_t)511)); if (range_r9_present) { HANDLE_CODE(unpack_unalign_integer(range_r9, bref, (uint16_t)2, (uint16_t)512)); } return SRSASN_SUCCESS; } void pci_range_utra_fdd_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("start-r9", start_r9); if (range_r9_present) { j.write_int("range-r9", range_r9); } j.end_obj(); } // PowerCoordinationInfo-r12 ::= SEQUENCE SRSASN_CODE pwr_coordination_info_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, p_me_nb_r12, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_unalign_integer(bref, p_se_nb_r12, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_unalign_integer(bref, pwr_ctrl_mode_r12, (uint8_t)1, (uint8_t)2)); return SRSASN_SUCCESS; } SRSASN_CODE pwr_coordination_info_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(p_me_nb_r12, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_unalign_integer(p_se_nb_r12, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_unalign_integer(pwr_ctrl_mode_r12, bref, (uint8_t)1, (uint8_t)2)); return SRSASN_SUCCESS; } void pwr_coordination_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("p-MeNB-r12", p_me_nb_r12); j.write_int("p-SeNB-r12", p_se_nb_r12); j.write_int("powerControlMode-r12", pwr_ctrl_mode_r12); j.end_obj(); } // RAN-NotificationAreaInfo-r15 ::= CHOICE void ran_notif_area_info_r15_c::destroy_() { switch (type_) { case types::cell_list_r15: c.destroy(); break; case types::ran_area_cfg_list_r15: c.destroy(); break; default: break; } } void ran_notif_area_info_r15_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cell_list_r15: c.init(); break; case types::ran_area_cfg_list_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ran_notif_area_info_r15_c"); } } ran_notif_area_info_r15_c::ran_notif_area_info_r15_c(const ran_notif_area_info_r15_c& other) { type_ = other.type(); switch (type_) { case types::cell_list_r15: c.init(other.c.get()); break; case types::ran_area_cfg_list_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ran_notif_area_info_r15_c"); } } ran_notif_area_info_r15_c& ran_notif_area_info_r15_c::operator=(const ran_notif_area_info_r15_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cell_list_r15: c.set(other.c.get()); break; case types::ran_area_cfg_list_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ran_notif_area_info_r15_c"); } return *this; } void ran_notif_area_info_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cell_list_r15: j.start_array("cellList-r15"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::ran_area_cfg_list_r15: j.start_array("ran-AreaConfigList-r15"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "ran_notif_area_info_r15_c"); } j.end_obj(); } SRSASN_CODE ran_notif_area_info_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cell_list_r15: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); break; case types::ran_area_cfg_list_r15: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); break; default: log_invalid_choice_id(type_, "ran_notif_area_info_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ran_notif_area_info_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cell_list_r15: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); break; case types::ran_area_cfg_list_r15: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); break; default: log_invalid_choice_id(type_, "ran_notif_area_info_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RCLWI-Configuration-r13 ::= CHOICE void rclwi_cfg_r13_c::set(types::options e) { type_ = e; } void rclwi_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("rclwi-Config-r13"); c.rclwi_cfg_r13.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "rclwi_cfg_r13_c"); } j.end_obj(); } SRSASN_CODE rclwi_cfg_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.rclwi_cfg_r13.pack(bref)); break; default: log_invalid_choice_id(type_, "rclwi_cfg_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rclwi_cfg_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.rclwi_cfg_r13.unpack(bref)); break; default: log_invalid_choice_id(type_, "rclwi_cfg_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(sl_v2x_cfg_ded_r14_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_ext_v1430_present, 1)); HANDLE_CODE(bref.pack(per_cc_gap_ind_request_r14_present, 1)); HANDLE_CODE(bref.pack(sib_type2_ded_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (sl_v2x_cfg_ded_r14_present) { HANDLE_CODE(sl_v2x_cfg_ded_r14.pack(bref)); } if (s_cell_to_add_mod_list_ext_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_ext_v1430, 1, 31)); } if (sib_type2_ded_r14_present) { HANDLE_CODE(sib_type2_ded_r14.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(sl_v2x_cfg_ded_r14_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_ext_v1430_present, 1)); HANDLE_CODE(bref.unpack(per_cc_gap_ind_request_r14_present, 1)); HANDLE_CODE(bref.unpack(sib_type2_ded_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (sl_v2x_cfg_ded_r14_present) { HANDLE_CODE(sl_v2x_cfg_ded_r14.unpack(bref)); } if (s_cell_to_add_mod_list_ext_v1430_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_ext_v1430, bref, 1, 31)); } if (sib_type2_ded_r14_present) { HANDLE_CODE(sib_type2_ded_r14.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (sl_v2x_cfg_ded_r14_present) { j.write_fieldname("sl-V2X-ConfigDedicated-r14"); sl_v2x_cfg_ded_r14.to_json(j); } if (s_cell_to_add_mod_list_ext_v1430_present) { j.start_array("sCellToAddModListExt-v1430"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_ext_v1430.size(); ++i1) { s_cell_to_add_mod_list_ext_v1430[i1].to_json(j); } j.end_array(); } if (per_cc_gap_ind_request_r14_present) { j.write_str("perCC-GapIndicationRequest-r14", "true"); } if (sib_type2_ded_r14_present) { j.write_str("systemInformationBlockType2Dedicated-r14", sib_type2_ded_r14.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RadioResourceConfigDedicated-v1370 ::= SEQUENCE SRSASN_CODE rr_cfg_ded_v1370_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phys_cfg_ded_v1370_present, 1)); if (phys_cfg_ded_v1370_present) { HANDLE_CODE(phys_cfg_ded_v1370.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_ded_v1370_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phys_cfg_ded_v1370_present, 1)); if (phys_cfg_ded_v1370_present) { HANDLE_CODE(phys_cfg_ded_v1370.unpack(bref)); } return SRSASN_SUCCESS; } void rr_cfg_ded_v1370_s::to_json(json_writer& j) const { j.start_obj(); if (phys_cfg_ded_v1370_present) { j.write_fieldname("physicalConfigDedicated-v1370"); phys_cfg_ded_v1370.to_json(j); } j.end_obj(); } // SCG-ConfigPartSCG-r12 ::= SEQUENCE SRSASN_CODE scg_cfg_part_scg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rr_cfg_ded_scg_r12_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_release_list_scg_r12_present, 1)); HANDLE_CODE(bref.pack(p_scell_to_add_mod_r12_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_scg_r12_present, 1)); HANDLE_CODE(bref.pack(mob_ctrl_info_scg_r12_present, 1)); if (rr_cfg_ded_scg_r12_present) { HANDLE_CODE(rr_cfg_ded_scg_r12.pack(bref)); } if (s_cell_to_release_list_scg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_release_list_scg_r12, 1, 4, UnalignedIntegerPacker(1, 7))); } if (p_scell_to_add_mod_r12_present) { HANDLE_CODE(p_scell_to_add_mod_r12.pack(bref)); } if (s_cell_to_add_mod_list_scg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_scg_r12, 1, 4)); } if (mob_ctrl_info_scg_r12_present) { HANDLE_CODE(mob_ctrl_info_scg_r12.pack(bref)); } if (ext) { ext_groups_header group_flags(4); rrc_asn1_warn_assert(s_cell_to_release_list_scg_ext_r13_present != (s_cell_to_release_list_scg_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= s_cell_to_release_list_scg_ext_r13_present; rrc_asn1_warn_assert(s_cell_to_add_mod_list_scg_ext_r13_present != (s_cell_to_add_mod_list_scg_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= s_cell_to_add_mod_list_scg_ext_r13_present; rrc_asn1_warn_assert(s_cell_to_add_mod_list_scg_ext_v1370_present != (s_cell_to_add_mod_list_scg_ext_v1370.get() != NULL), __FILE__, __LINE__); group_flags[1] |= s_cell_to_add_mod_list_scg_ext_v1370_present; rrc_asn1_warn_assert(p_scell_to_add_mod_v1440_present != (p_scell_to_add_mod_v1440.get() != NULL), __FILE__, __LINE__); group_flags[2] |= p_scell_to_add_mod_v1440_present; rrc_asn1_warn_assert(s_cell_group_to_release_list_scg_r15_present != (s_cell_group_to_release_list_scg_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= s_cell_group_to_release_list_scg_r15_present; rrc_asn1_warn_assert(s_cell_group_to_add_mod_list_scg_r15_present != (s_cell_group_to_add_mod_list_scg_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= s_cell_group_to_add_mod_list_scg_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(s_cell_to_release_list_scg_ext_r13_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_scg_ext_r13_present, 1)); if (s_cell_to_release_list_scg_ext_r13_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *s_cell_to_release_list_scg_ext_r13, 1, 31, UnalignedIntegerPacker(1, 31))); } if (s_cell_to_add_mod_list_scg_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *s_cell_to_add_mod_list_scg_ext_r13, 1, 31)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_scg_ext_v1370_present, 1)); if (s_cell_to_add_mod_list_scg_ext_v1370_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *s_cell_to_add_mod_list_scg_ext_v1370, 1, 31)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(p_scell_to_add_mod_v1440_present, 1)); if (p_scell_to_add_mod_v1440_present) { HANDLE_CODE(p_scell_to_add_mod_v1440->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(s_cell_group_to_release_list_scg_r15_present, 1)); HANDLE_CODE(bref.pack(s_cell_group_to_add_mod_list_scg_r15_present, 1)); if (s_cell_group_to_release_list_scg_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *s_cell_group_to_release_list_scg_r15, 1, 4, UnalignedIntegerPacker(1, 4))); } if (s_cell_group_to_add_mod_list_scg_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *s_cell_group_to_add_mod_list_scg_r15, 1, 4)); } } } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_part_scg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rr_cfg_ded_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_release_list_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(p_scell_to_add_mod_r12_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(mob_ctrl_info_scg_r12_present, 1)); if (rr_cfg_ded_scg_r12_present) { HANDLE_CODE(rr_cfg_ded_scg_r12.unpack(bref)); } if (s_cell_to_release_list_scg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_release_list_scg_r12, bref, 1, 4, UnalignedIntegerPacker(1, 7))); } if (p_scell_to_add_mod_r12_present) { HANDLE_CODE(p_scell_to_add_mod_r12.unpack(bref)); } if (s_cell_to_add_mod_list_scg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_scg_r12, bref, 1, 4)); } if (mob_ctrl_info_scg_r12_present) { HANDLE_CODE(mob_ctrl_info_scg_r12.unpack(bref)); } if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(s_cell_to_release_list_scg_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_scg_ext_r13_present, 1)); if (s_cell_to_release_list_scg_ext_r13_present) { s_cell_to_release_list_scg_ext_r13 = make_copy_ptr(scell_to_release_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*s_cell_to_release_list_scg_ext_r13, bref, 1, 31, UnalignedIntegerPacker(1, 31))); } if (s_cell_to_add_mod_list_scg_ext_r13_present) { s_cell_to_add_mod_list_scg_ext_r13 = make_copy_ptr(scell_to_add_mod_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*s_cell_to_add_mod_list_scg_ext_r13, bref, 1, 31)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_scg_ext_v1370_present, 1)); if (s_cell_to_add_mod_list_scg_ext_v1370_present) { s_cell_to_add_mod_list_scg_ext_v1370 = make_copy_ptr(scell_to_add_mod_list_ext_v1370_l()); HANDLE_CODE(unpack_dyn_seq_of(*s_cell_to_add_mod_list_scg_ext_v1370, bref, 1, 31)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(p_scell_to_add_mod_v1440_present, 1)); if (p_scell_to_add_mod_v1440_present) { p_scell_to_add_mod_v1440 = make_copy_ptr(ps_cell_to_add_mod_v1440_s()); HANDLE_CODE(p_scell_to_add_mod_v1440->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(s_cell_group_to_release_list_scg_r15_present, 1)); HANDLE_CODE(bref.unpack(s_cell_group_to_add_mod_list_scg_r15_present, 1)); if (s_cell_group_to_release_list_scg_r15_present) { s_cell_group_to_release_list_scg_r15 = make_copy_ptr(scell_group_to_release_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*s_cell_group_to_release_list_scg_r15, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (s_cell_group_to_add_mod_list_scg_r15_present) { s_cell_group_to_add_mod_list_scg_r15 = make_copy_ptr(scell_group_to_add_mod_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*s_cell_group_to_add_mod_list_scg_r15, bref, 1, 4)); } } } return SRSASN_SUCCESS; } void scg_cfg_part_scg_r12_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_ded_scg_r12_present) { j.write_fieldname("radioResourceConfigDedicatedSCG-r12"); rr_cfg_ded_scg_r12.to_json(j); } if (s_cell_to_release_list_scg_r12_present) { j.start_array("sCellToReleaseListSCG-r12"); for (uint32_t i1 = 0; i1 < s_cell_to_release_list_scg_r12.size(); ++i1) { j.write_int(s_cell_to_release_list_scg_r12[i1]); } j.end_array(); } if (p_scell_to_add_mod_r12_present) { j.write_fieldname("pSCellToAddMod-r12"); p_scell_to_add_mod_r12.to_json(j); } if (s_cell_to_add_mod_list_scg_r12_present) { j.start_array("sCellToAddModListSCG-r12"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_scg_r12.size(); ++i1) { s_cell_to_add_mod_list_scg_r12[i1].to_json(j); } j.end_array(); } if (mob_ctrl_info_scg_r12_present) { j.write_fieldname("mobilityControlInfoSCG-r12"); mob_ctrl_info_scg_r12.to_json(j); } if (ext) { rrc_asn1_warn_assert(s_cell_to_release_list_scg_ext_r13_present != (s_cell_to_release_list_scg_ext_r13.get() != NULL), __FILE__, __LINE__); if (s_cell_to_release_list_scg_ext_r13_present) { j.start_array("sCellToReleaseListSCG-Ext-r13"); for (uint32_t i1 = 0; i1 < s_cell_to_release_list_scg_ext_r13->size(); ++i1) { j.write_int(((*s_cell_to_release_list_scg_ext_r13)[i1])); } j.end_array(); } rrc_asn1_warn_assert(s_cell_to_add_mod_list_scg_ext_r13_present != (s_cell_to_add_mod_list_scg_ext_r13.get() != NULL), __FILE__, __LINE__); if (s_cell_to_add_mod_list_scg_ext_r13_present) { j.start_array("sCellToAddModListSCG-Ext-r13"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_scg_ext_r13->size(); ++i1) { ((*s_cell_to_add_mod_list_scg_ext_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(s_cell_to_add_mod_list_scg_ext_v1370_present != (s_cell_to_add_mod_list_scg_ext_v1370.get() != NULL), __FILE__, __LINE__); if (s_cell_to_add_mod_list_scg_ext_v1370_present) { j.start_array("sCellToAddModListSCG-Ext-v1370"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_scg_ext_v1370->size(); ++i1) { ((*s_cell_to_add_mod_list_scg_ext_v1370)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(p_scell_to_add_mod_v1440_present != (p_scell_to_add_mod_v1440.get() != NULL), __FILE__, __LINE__); if (p_scell_to_add_mod_v1440_present) { j.write_fieldname("pSCellToAddMod-v1440"); p_scell_to_add_mod_v1440->to_json(j); } rrc_asn1_warn_assert(s_cell_group_to_release_list_scg_r15_present != (s_cell_group_to_release_list_scg_r15.get() != NULL), __FILE__, __LINE__); if (s_cell_group_to_release_list_scg_r15_present) { j.start_array("sCellGroupToReleaseListSCG-r15"); for (uint32_t i1 = 0; i1 < s_cell_group_to_release_list_scg_r15->size(); ++i1) { j.write_int(((*s_cell_group_to_release_list_scg_r15)[i1])); } j.end_array(); } rrc_asn1_warn_assert(s_cell_group_to_add_mod_list_scg_r15_present != (s_cell_group_to_add_mod_list_scg_r15.get() != NULL), __FILE__, __LINE__); if (s_cell_group_to_add_mod_list_scg_r15_present) { j.start_array("sCellGroupToAddModListSCG-r15"); for (uint32_t i1 = 0; i1 < s_cell_group_to_add_mod_list_scg_r15->size(); ++i1) { ((*s_cell_group_to_add_mod_list_scg_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SCG-ConfigPartSCG-v12f0 ::= SEQUENCE SRSASN_CODE scg_cfg_part_scg_v12f0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p_scell_to_add_mod_v12f0_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_scg_v12f0_present, 1)); if (p_scell_to_add_mod_v12f0_present) { HANDLE_CODE(p_scell_to_add_mod_v12f0.pack(bref)); } if (s_cell_to_add_mod_list_scg_v12f0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_scg_v12f0, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_part_scg_v12f0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p_scell_to_add_mod_v12f0_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_scg_v12f0_present, 1)); if (p_scell_to_add_mod_v12f0_present) { HANDLE_CODE(p_scell_to_add_mod_v12f0.unpack(bref)); } if (s_cell_to_add_mod_list_scg_v12f0_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_scg_v12f0, bref, 1, 4)); } return SRSASN_SUCCESS; } void scg_cfg_part_scg_v12f0_s::to_json(json_writer& j) const { j.start_obj(); if (p_scell_to_add_mod_v12f0_present) { j.write_fieldname("pSCellToAddMod-v12f0"); p_scell_to_add_mod_v12f0.to_json(j); } if (s_cell_to_add_mod_list_scg_v12f0_present) { j.start_array("sCellToAddModListSCG-v12f0"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_scg_v12f0.size(); ++i1) { s_cell_to_add_mod_list_scg_v12f0[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE SRSASN_CODE sl_disc_tx_info_inter_freq_list_add_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(disc_tx_freq_to_add_mod_list_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_freq_to_release_list_r13_present, 1)); if (disc_tx_freq_to_add_mod_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_tx_freq_to_add_mod_list_r13, 1, 8)); } if (disc_tx_freq_to_release_list_r13_present) { HANDLE_CODE( pack_dyn_seq_of(bref, disc_tx_freq_to_release_list_r13, 1, 8, UnalignedIntegerPacker(0, 262143))); } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_info_inter_freq_list_add_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(disc_tx_freq_to_add_mod_list_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_freq_to_release_list_r13_present, 1)); if (disc_tx_freq_to_add_mod_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_tx_freq_to_add_mod_list_r13, bref, 1, 8)); } if (disc_tx_freq_to_release_list_r13_present) { HANDLE_CODE( unpack_dyn_seq_of(disc_tx_freq_to_release_list_r13, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); } return SRSASN_SUCCESS; } void sl_disc_tx_info_inter_freq_list_add_r13_s::to_json(json_writer& j) const { j.start_obj(); if (disc_tx_freq_to_add_mod_list_r13_present) { j.start_array("discTxFreqToAddModList-r13"); for (uint32_t i1 = 0; i1 < disc_tx_freq_to_add_mod_list_r13.size(); ++i1) { disc_tx_freq_to_add_mod_list_r13[i1].to_json(j); } j.end_array(); } if (disc_tx_freq_to_release_list_r13_present) { j.start_array("discTxFreqToReleaseList-r13"); for (uint32_t i1 = 0; i1 < disc_tx_freq_to_release_list_r13.size(); ++i1) { j.write_int(disc_tx_freq_to_release_list_r13[i1]); } j.end_array(); } j.end_obj(); } // SL-GapConfig-r13 ::= SEQUENCE SRSASN_CODE sl_gap_cfg_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, gap_pattern_list_r13, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE sl_gap_cfg_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(gap_pattern_list_r13, bref, 1, 8)); return SRSASN_SUCCESS; } void sl_gap_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("gapPatternList-r13"); for (uint32_t i1 = 0; i1 < gap_pattern_list_r13.size(); ++i1) { gap_pattern_list_r13[i1].to_json(j); } j.end_array(); j.end_obj(); } // AltTTT-CellsToAddMod-r12 ::= SEQUENCE SRSASN_CODE alt_ttt_cells_to_add_mod_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_idx_r12, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pci_range_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE alt_ttt_cells_to_add_mod_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_idx_r12, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pci_range_r12.unpack(bref)); return SRSASN_SUCCESS; } void alt_ttt_cells_to_add_mod_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellIndex-r12", cell_idx_r12); j.write_fieldname("physCellIdRange-r12"); pci_range_r12.to_json(j); j.end_obj(); } // BlackCellsToAddMod ::= SEQUENCE SRSASN_CODE black_cells_to_add_mod_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_idx, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pci_range.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE black_cells_to_add_mod_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_idx, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pci_range.unpack(bref)); return SRSASN_SUCCESS; } void black_cells_to_add_mod_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellIndex", cell_idx); j.write_fieldname("physCellIdRange"); pci_range.to_json(j); j.end_obj(); } // CellsToAddMod ::= SEQUENCE SRSASN_CODE cells_to_add_mod_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_idx, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_enum(bref, cell_individual_offset)); return SRSASN_SUCCESS; } SRSASN_CODE cells_to_add_mod_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_idx, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_enum(cell_individual_offset, bref)); return SRSASN_SUCCESS; } void cells_to_add_mod_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellIndex", cell_idx); j.write_int("physCellId", pci); j.write_str("cellIndividualOffset", cell_individual_offset.to_string()); j.end_obj(); } // CellsToAddModCDMA2000 ::= SEQUENCE SRSASN_CODE cells_to_add_mod_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_idx, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)511)); return SRSASN_SUCCESS; } SRSASN_CODE cells_to_add_mod_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_idx, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)511)); return SRSASN_SUCCESS; } void cells_to_add_mod_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellIndex", cell_idx); j.write_int("physCellId", pci); j.end_obj(); } // CellsToAddModNR-r15 ::= SEQUENCE SRSASN_CODE cells_to_add_mod_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_idx_r15, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, pci_r15, (uint16_t)0, (uint16_t)1007)); return SRSASN_SUCCESS; } SRSASN_CODE cells_to_add_mod_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_idx_r15, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(pci_r15, bref, (uint16_t)0, (uint16_t)1007)); return SRSASN_SUCCESS; } void cells_to_add_mod_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellIndex-r15", cell_idx_r15); j.write_int("physCellId-r15", pci_r15); j.end_obj(); } // CellsToAddModUTRA-FDD ::= SEQUENCE SRSASN_CODE cells_to_add_mod_utra_fdd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_idx, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)511)); return SRSASN_SUCCESS; } SRSASN_CODE cells_to_add_mod_utra_fdd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_idx, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)511)); return SRSASN_SUCCESS; } void cells_to_add_mod_utra_fdd_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellIndex", cell_idx); j.write_int("physCellId", pci); j.end_obj(); } // CellsToAddModUTRA-TDD ::= SEQUENCE SRSASN_CODE cells_to_add_mod_utra_tdd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_idx, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint8_t)0, (uint8_t)127)); return SRSASN_SUCCESS; } SRSASN_CODE cells_to_add_mod_utra_tdd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_idx, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint8_t)0, (uint8_t)127)); return SRSASN_SUCCESS; } void cells_to_add_mod_utra_tdd_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellIndex", cell_idx); j.write_int("physCellId", pci); j.end_obj(); } // FlightPathInfoReportConfig-r15 ::= SEQUENCE SRSASN_CODE flight_path_info_report_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(include_time_stamp_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, max_way_point_num_r15, (uint8_t)1, (uint8_t)20)); return SRSASN_SUCCESS; } SRSASN_CODE flight_path_info_report_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(include_time_stamp_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(max_way_point_num_r15, bref, (uint8_t)1, (uint8_t)20)); return SRSASN_SUCCESS; } void flight_path_info_report_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("maxWayPointNumber-r15", max_way_point_num_r15); if (include_time_stamp_r15_present) { j.write_str("includeTimeStamp-r15", "true"); } j.end_obj(); } // MeasIdleConfigDedicated-r15 ::= SEQUENCE SRSASN_CODE meas_idle_cfg_ded_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_idle_carrier_list_eutra_r15_present, 1)); if (meas_idle_carrier_list_eutra_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_idle_carrier_list_eutra_r15, 1, 8)); } HANDLE_CODE(pack_enum(bref, meas_idle_dur_r15)); return SRSASN_SUCCESS; } SRSASN_CODE meas_idle_cfg_ded_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_idle_carrier_list_eutra_r15_present, 1)); if (meas_idle_carrier_list_eutra_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_idle_carrier_list_eutra_r15, bref, 1, 8)); } HANDLE_CODE(unpack_enum(meas_idle_dur_r15, bref)); return SRSASN_SUCCESS; } void meas_idle_cfg_ded_r15_s::to_json(json_writer& j) const { j.start_obj(); if (meas_idle_carrier_list_eutra_r15_present) { j.start_array("measIdleCarrierListEUTRA-r15"); for (uint32_t i1 = 0; i1 < meas_idle_carrier_list_eutra_r15.size(); ++i1) { meas_idle_carrier_list_eutra_r15[i1].to_json(j); } j.end_array(); } j.write_str("measIdleDuration-r15", meas_idle_dur_r15.to_string()); j.end_obj(); } // RRC-InactiveConfig-r15 ::= SEQUENCE SRSASN_CODE rrc_inactive_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ran_paging_cycle_r15_present, 1)); HANDLE_CODE(bref.pack(ran_notif_area_info_r15_present, 1)); HANDLE_CODE(bref.pack(periodic_rnau_timer_r15_present, 1)); HANDLE_CODE(bref.pack(next_hop_chaining_count_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(full_i_rnti_r15.pack(bref)); HANDLE_CODE(short_i_rnti_r15.pack(bref)); if (ran_paging_cycle_r15_present) { HANDLE_CODE(pack_enum(bref, ran_paging_cycle_r15)); } if (ran_notif_area_info_r15_present) { HANDLE_CODE(ran_notif_area_info_r15.pack(bref)); } if (periodic_rnau_timer_r15_present) { HANDLE_CODE(pack_enum(bref, periodic_rnau_timer_r15)); } if (next_hop_chaining_count_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, next_hop_chaining_count_r15, (uint8_t)0, (uint8_t)7)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_inactive_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ran_paging_cycle_r15_present, 1)); HANDLE_CODE(bref.unpack(ran_notif_area_info_r15_present, 1)); HANDLE_CODE(bref.unpack(periodic_rnau_timer_r15_present, 1)); HANDLE_CODE(bref.unpack(next_hop_chaining_count_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(full_i_rnti_r15.unpack(bref)); HANDLE_CODE(short_i_rnti_r15.unpack(bref)); if (ran_paging_cycle_r15_present) { HANDLE_CODE(unpack_enum(ran_paging_cycle_r15, bref)); } if (ran_notif_area_info_r15_present) { HANDLE_CODE(ran_notif_area_info_r15.unpack(bref)); } if (periodic_rnau_timer_r15_present) { HANDLE_CODE(unpack_enum(periodic_rnau_timer_r15, bref)); } if (next_hop_chaining_count_r15_present) { HANDLE_CODE(unpack_unalign_integer(next_hop_chaining_count_r15, bref, (uint8_t)0, (uint8_t)7)); } return SRSASN_SUCCESS; } void rrc_inactive_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("fullI-RNTI-r15", full_i_rnti_r15.to_string()); j.write_str("shortI-RNTI-r15", short_i_rnti_r15.to_string()); if (ran_paging_cycle_r15_present) { j.write_str("ran-PagingCycle-r15", ran_paging_cycle_r15.to_string()); } if (ran_notif_area_info_r15_present) { j.write_fieldname("ran-NotificationAreaInfo-r15"); ran_notif_area_info_r15.to_json(j); } if (periodic_rnau_timer_r15_present) { j.write_str("periodic-RNAU-timer-r15", periodic_rnau_timer_r15.to_string()); } if (next_hop_chaining_count_r15_present) { j.write_int("nextHopChainingCount-r15", next_hop_chaining_count_r15); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(s_cell_to_release_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(lwa_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(lwip_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(rclwi_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (s_cell_to_release_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_release_list_ext_r13, 1, 31, UnalignedIntegerPacker(1, 31))); } if (s_cell_to_add_mod_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_ext_r13, 1, 31)); } if (lwa_cfg_r13_present) { HANDLE_CODE(lwa_cfg_r13.pack(bref)); } if (lwip_cfg_r13_present) { HANDLE_CODE(lwip_cfg_r13.pack(bref)); } if (rclwi_cfg_r13_present) { HANDLE_CODE(rclwi_cfg_r13.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(s_cell_to_release_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(lwa_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(lwip_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(rclwi_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (s_cell_to_release_list_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_release_list_ext_r13, bref, 1, 31, UnalignedIntegerPacker(1, 31))); } if (s_cell_to_add_mod_list_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_ext_r13, bref, 1, 31)); } if (lwa_cfg_r13_present) { HANDLE_CODE(lwa_cfg_r13.unpack(bref)); } if (lwip_cfg_r13_present) { HANDLE_CODE(lwip_cfg_r13.unpack(bref)); } if (rclwi_cfg_r13_present) { HANDLE_CODE(rclwi_cfg_r13.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (s_cell_to_release_list_ext_r13_present) { j.start_array("sCellToReleaseListExt-r13"); for (uint32_t i1 = 0; i1 < s_cell_to_release_list_ext_r13.size(); ++i1) { j.write_int(s_cell_to_release_list_ext_r13[i1]); } j.end_array(); } if (s_cell_to_add_mod_list_ext_r13_present) { j.start_array("sCellToAddModListExt-r13"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_ext_r13.size(); ++i1) { s_cell_to_add_mod_list_ext_r13[i1].to_json(j); } j.end_array(); } if (lwa_cfg_r13_present) { j.write_fieldname("lwa-Configuration-r13"); lwa_cfg_r13.to_json(j); } if (lwip_cfg_r13_present) { j.write_fieldname("lwip-Configuration-r13"); lwip_cfg_r13.to_json(j); } if (rclwi_cfg_r13_present) { j.write_fieldname("rclwi-Configuration-r13"); rclwi_cfg_r13.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1370_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rr_cfg_ded_v1370_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_ext_v1370_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rr_cfg_ded_v1370_present) { HANDLE_CODE(rr_cfg_ded_v1370.pack(bref)); } if (s_cell_to_add_mod_list_ext_v1370_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_ext_v1370, 1, 31)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1370_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rr_cfg_ded_v1370_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_ext_v1370_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rr_cfg_ded_v1370_present) { HANDLE_CODE(rr_cfg_ded_v1370.unpack(bref)); } if (s_cell_to_add_mod_list_ext_v1370_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_ext_v1370, bref, 1, 31)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1370_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_ded_v1370_present) { j.write_fieldname("radioResourceConfigDedicated-v1370"); rr_cfg_ded_v1370.to_json(j); } if (s_cell_to_add_mod_list_ext_v1370_present) { j.start_array("sCellToAddModListExt-v1370"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_ext_v1370.size(); ++i1) { s_cell_to_add_mod_list_ext_v1370[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SCG-Configuration-r12 ::= CHOICE void scg_cfg_r12_c::set(types::options e) { type_ = e; } void scg_cfg_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.scg_cfg_part_mcg_r12_present) { j.write_fieldname("scg-ConfigPartMCG-r12"); j.start_obj(); if (c.scg_cfg_part_mcg_r12.scg_counter_r12_present) { j.write_int("scg-Counter-r12", c.scg_cfg_part_mcg_r12.scg_counter_r12); } if (c.scg_cfg_part_mcg_r12.pwr_coordination_info_r12_present) { j.write_fieldname("powerCoordinationInfo-r12"); c.scg_cfg_part_mcg_r12.pwr_coordination_info_r12.to_json(j); } j.end_obj(); } if (c.scg_cfg_part_scg_r12_present) { j.write_fieldname("scg-ConfigPartSCG-r12"); c.scg_cfg_part_scg_r12.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "scg_cfg_r12_c"); } j.end_obj(); } SRSASN_CODE scg_cfg_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.scg_cfg_part_mcg_r12_present, 1)); HANDLE_CODE(bref.pack(c.scg_cfg_part_scg_r12_present, 1)); if (c.scg_cfg_part_mcg_r12_present) { bref.pack(c.scg_cfg_part_mcg_r12.ext, 1); HANDLE_CODE(bref.pack(c.scg_cfg_part_mcg_r12.scg_counter_r12_present, 1)); HANDLE_CODE(bref.pack(c.scg_cfg_part_mcg_r12.pwr_coordination_info_r12_present, 1)); if (c.scg_cfg_part_mcg_r12.scg_counter_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, c.scg_cfg_part_mcg_r12.scg_counter_r12, (uint16_t)0, (uint16_t)65535)); } if (c.scg_cfg_part_mcg_r12.pwr_coordination_info_r12_present) { HANDLE_CODE(c.scg_cfg_part_mcg_r12.pwr_coordination_info_r12.pack(bref)); } } if (c.scg_cfg_part_scg_r12_present) { HANDLE_CODE(c.scg_cfg_part_scg_r12.pack(bref)); } break; default: log_invalid_choice_id(type_, "scg_cfg_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.scg_cfg_part_mcg_r12_present, 1)); HANDLE_CODE(bref.unpack(c.scg_cfg_part_scg_r12_present, 1)); if (c.scg_cfg_part_mcg_r12_present) { bref.unpack(c.scg_cfg_part_mcg_r12.ext, 1); HANDLE_CODE(bref.unpack(c.scg_cfg_part_mcg_r12.scg_counter_r12_present, 1)); HANDLE_CODE(bref.unpack(c.scg_cfg_part_mcg_r12.pwr_coordination_info_r12_present, 1)); if (c.scg_cfg_part_mcg_r12.scg_counter_r12_present) { HANDLE_CODE( unpack_unalign_integer(c.scg_cfg_part_mcg_r12.scg_counter_r12, bref, (uint16_t)0, (uint16_t)65535)); } if (c.scg_cfg_part_mcg_r12.pwr_coordination_info_r12_present) { HANDLE_CODE(c.scg_cfg_part_mcg_r12.pwr_coordination_info_r12.unpack(bref)); } } if (c.scg_cfg_part_scg_r12_present) { HANDLE_CODE(c.scg_cfg_part_scg_r12.unpack(bref)); } break; default: log_invalid_choice_id(type_, "scg_cfg_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SCG-Configuration-v12f0 ::= CHOICE void scg_cfg_v12f0_c::set(types::options e) { type_ = e; } void scg_cfg_v12f0_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.scg_cfg_part_scg_v12f0_present) { j.write_fieldname("scg-ConfigPartSCG-v12f0"); c.scg_cfg_part_scg_v12f0.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); } j.end_obj(); } SRSASN_CODE scg_cfg_v12f0_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.scg_cfg_part_scg_v12f0_present, 1)); if (c.scg_cfg_part_scg_v12f0_present) { HANDLE_CODE(c.scg_cfg_part_scg_v12f0.pack(bref)); } break; default: log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_v12f0_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.scg_cfg_part_scg_v12f0_present, 1)); if (c.scg_cfg_part_scg_v12f0_present) { HANDLE_CODE(c.scg_cfg_part_scg_v12f0.unpack(bref)); } break; default: log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-CommConfig-r12 ::= SEQUENCE SRSASN_CODE sl_comm_cfg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(comm_tx_res_r12_present, 1)); if (comm_tx_res_r12_present) { HANDLE_CODE(comm_tx_res_r12.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(comm_tx_res_v1310_present != (comm_tx_res_v1310.get() != NULL), __FILE__, __LINE__); group_flags[0] |= comm_tx_res_v1310_present; group_flags[0] |= comm_tx_allow_relay_ded_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(comm_tx_res_v1310_present, 1)); HANDLE_CODE(bref.pack(comm_tx_allow_relay_ded_r13_present, 1)); if (comm_tx_res_v1310_present) { HANDLE_CODE(comm_tx_res_v1310->pack(bref)); } if (comm_tx_allow_relay_ded_r13_present) { HANDLE_CODE(bref.pack(comm_tx_allow_relay_ded_r13, 1)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_cfg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(comm_tx_res_r12_present, 1)); if (comm_tx_res_r12_present) { HANDLE_CODE(comm_tx_res_r12.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(comm_tx_res_v1310_present, 1)); HANDLE_CODE(bref.unpack(comm_tx_allow_relay_ded_r13_present, 1)); if (comm_tx_res_v1310_present) { comm_tx_res_v1310 = make_copy_ptr(comm_tx_res_v1310_c_()); HANDLE_CODE(comm_tx_res_v1310->unpack(bref)); } if (comm_tx_allow_relay_ded_r13_present) { HANDLE_CODE(bref.unpack(comm_tx_allow_relay_ded_r13, 1)); } } } return SRSASN_SUCCESS; } void sl_comm_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); if (comm_tx_res_r12_present) { j.write_fieldname("commTxResources-r12"); comm_tx_res_r12.to_json(j); } if (ext) { rrc_asn1_warn_assert(comm_tx_res_v1310_present != (comm_tx_res_v1310.get() != NULL), __FILE__, __LINE__); if (comm_tx_res_v1310_present) { j.write_fieldname("commTxResources-v1310"); comm_tx_res_v1310->to_json(j); } if (comm_tx_allow_relay_ded_r13_present) { j.write_bool("commTxAllowRelayDedicated-r13", comm_tx_allow_relay_ded_r13); } } j.end_obj(); } void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::set(types::options e) { type_ = e; } void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_"); } j.end_obj(); } SRSASN_CODE sl_comm_cfg_r12_s::comm_tx_res_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_cfg_r12_s::comm_tx_res_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::destroy_() { switch (type_) { case types::sched_r12: c.destroy(); break; case types::ue_sel_r12: c.destroy(); break; default: break; } } void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sched_r12: c.init(); break; case types::ue_sel_r12: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_"); } } sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::setup_c_(const sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::sched_r12: c.init(other.c.get()); break; case types::ue_sel_r12: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_"); } } sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_& sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_:: operator=(const sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sched_r12: c.set(other.c.get()); break; case types::ue_sel_r12: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_"); } return *this; } void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sched_r12: j.write_fieldname("scheduled-r12"); j.start_obj(); j.write_str("sl-RNTI-r12", c.get().sl_rnti_r12.to_string()); j.write_fieldname("mac-MainConfig-r12"); c.get().mac_main_cfg_r12.to_json(j); j.write_fieldname("sc-CommTxConfig-r12"); c.get().sc_comm_tx_cfg_r12.to_json(j); if (c.get().mcs_r12_present) { j.write_int("mcs-r12", c.get().mcs_r12); } j.end_obj(); break; case types::ue_sel_r12: j.write_fieldname("ue-Selected-r12"); j.start_obj(); j.write_fieldname("commTxPoolNormalDedicated-r12"); j.start_obj(); if (c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12_present) { j.start_array("poolToReleaseList-r12"); for (uint32_t i1 = 0; i1 < c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12.size(); ++i1) { j.write_int(c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12[i1]); } j.end_array(); } if (c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12_present) { j.start_array("poolToAddModList-r12"); for (uint32_t i1 = 0; i1 < c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12.size(); ++i1) { c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sched_r12: HANDLE_CODE(bref.pack(c.get().mcs_r12_present, 1)); HANDLE_CODE(c.get().sl_rnti_r12.pack(bref)); HANDLE_CODE(c.get().mac_main_cfg_r12.pack(bref)); HANDLE_CODE(c.get().sc_comm_tx_cfg_r12.pack(bref)); if (c.get().mcs_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, c.get().mcs_r12, (uint8_t)0, (uint8_t)28)); } break; case types::ue_sel_r12: HANDLE_CODE(bref.pack(c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12_present, 1)); HANDLE_CODE(bref.pack(c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12_present, 1)); if (c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12, 1, 4, UnalignedIntegerPacker(1, 4))); } if (c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12, 1, 4)); } break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sched_r12: HANDLE_CODE(bref.unpack(c.get().mcs_r12_present, 1)); HANDLE_CODE(c.get().sl_rnti_r12.unpack(bref)); HANDLE_CODE(c.get().mac_main_cfg_r12.unpack(bref)); HANDLE_CODE(c.get().sc_comm_tx_cfg_r12.unpack(bref)); if (c.get().mcs_r12_present) { HANDLE_CODE(unpack_unalign_integer(c.get().mcs_r12, bref, (uint8_t)0, (uint8_t)28)); } break; case types::ue_sel_r12: HANDLE_CODE(bref.unpack(c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12_present, 1)); HANDLE_CODE(bref.unpack(c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12_present, 1)); if (c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().comm_tx_pool_normal_ded_r12.pool_to_release_list_r12, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12_present) { HANDLE_CODE( unpack_dyn_seq_of(c.get().comm_tx_pool_normal_ded_r12.pool_to_add_mod_list_r12, bref, 1, 4)); } break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::set(types::options e) { type_ = e; } void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_"); } j.end_obj(); } SRSASN_CODE sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::destroy_() { switch (type_) { case types::sched_v1310: c.destroy(); break; case types::ue_sel_v1310: c.destroy(); break; default: break; } } void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sched_v1310: c.init(); break; case types::ue_sel_v1310: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_"); } } sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::setup_c_( const sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::sched_v1310: c.init(other.c.get()); break; case types::ue_sel_v1310: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_"); } } sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_& sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_:: operator=(const sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sched_v1310: c.set(other.c.get()); break; case types::ue_sel_v1310: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_"); } return *this; } void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sched_v1310: j.write_fieldname("scheduled-v1310"); j.start_obj(); j.start_array("logicalChGroupInfoList-r13"); for (uint32_t i1 = 0; i1 < c.get().lc_ch_group_info_list_r13.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < c.get().lc_ch_group_info_list_r13[i1].size(); ++i2) { j.write_int(c.get().lc_ch_group_info_list_r13[i1][i2]); } j.end_array(); } j.end_array(); j.write_bool("multipleTx-r13", c.get().multiple_tx_r13); j.end_obj(); break; case types::ue_sel_v1310: j.write_fieldname("ue-Selected-v1310"); j.start_obj(); j.write_fieldname("commTxPoolNormalDedicatedExt-r13"); j.start_obj(); if (c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13_present) { j.start_array("poolToReleaseListExt-r13"); for (uint32_t i1 = 0; i1 < c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13.size(); ++i1) { j.write_int(c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13[i1]); } j.end_array(); } if (c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13_present) { j.start_array("poolToAddModListExt-r13"); for (uint32_t i1 = 0; i1 < c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13.size(); ++i1) { c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sched_v1310: HANDLE_CODE( pack_dyn_seq_of(bref, c.get().lc_ch_group_info_list_r13, 1, 4, SeqOfPacker >(1, 8, UnalignedIntegerPacker(1, 8)))); HANDLE_CODE(bref.pack(c.get().multiple_tx_r13, 1)); break; case types::ue_sel_v1310: HANDLE_CODE( bref.pack(c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13_present, 1)); HANDLE_CODE( bref.pack(c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13_present, 1)); if (c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13, 1, 4, UnalignedIntegerPacker(5, 8))); } if (c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of( bref, c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13, 1, 4)); } break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sched_v1310: HANDLE_CODE(unpack_dyn_seq_of( c.get().lc_ch_group_info_list_r13, bref, 1, 4, SeqOfPacker >(1, 8, UnalignedIntegerPacker(1, 8)))); HANDLE_CODE(bref.unpack(c.get().multiple_tx_r13, 1)); break; case types::ue_sel_v1310: HANDLE_CODE(bref.unpack( c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack( c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13_present, 1)); if (c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13_present) { HANDLE_CODE( unpack_dyn_seq_of(c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_release_list_ext_r13, bref, 1, 4, UnalignedIntegerPacker(5, 8))); } if (c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of( c.get().comm_tx_pool_normal_ded_ext_r13.pool_to_add_mod_list_ext_r13, bref, 1, 4)); } break; default: log_invalid_choice_id(type_, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-DiscConfig-r12 ::= SEQUENCE SRSASN_CODE sl_disc_cfg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(disc_tx_res_r12_present, 1)); if (disc_tx_res_r12_present) { HANDLE_CODE(disc_tx_res_r12.pack(bref)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(disc_tf_idx_list_v1260_present != (disc_tf_idx_list_v1260.get() != NULL), __FILE__, __LINE__); group_flags[0] |= disc_tf_idx_list_v1260_present; rrc_asn1_warn_assert(disc_tx_res_ps_r13_present != (disc_tx_res_ps_r13.get() != NULL), __FILE__, __LINE__); group_flags[1] |= disc_tx_res_ps_r13_present; rrc_asn1_warn_assert(disc_tx_inter_freq_info_r13_present != (disc_tx_inter_freq_info_r13.get() != NULL), __FILE__, __LINE__); group_flags[1] |= disc_tx_inter_freq_info_r13_present; group_flags[1] |= gap_requests_allowed_ded_r13_present; rrc_asn1_warn_assert(disc_rx_gap_cfg_r13_present != (disc_rx_gap_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[1] |= disc_rx_gap_cfg_r13_present; rrc_asn1_warn_assert(disc_tx_gap_cfg_r13_present != (disc_tx_gap_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[1] |= disc_tx_gap_cfg_r13_present; rrc_asn1_warn_assert(disc_sys_info_to_report_cfg_r13_present != (disc_sys_info_to_report_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[1] |= disc_sys_info_to_report_cfg_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(disc_tf_idx_list_v1260_present, 1)); if (disc_tf_idx_list_v1260_present) { HANDLE_CODE(disc_tf_idx_list_v1260->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(disc_tx_res_ps_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_inter_freq_info_r13_present, 1)); HANDLE_CODE(bref.pack(gap_requests_allowed_ded_r13_present, 1)); HANDLE_CODE(bref.pack(disc_rx_gap_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_gap_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(disc_sys_info_to_report_cfg_r13_present, 1)); if (disc_tx_res_ps_r13_present) { HANDLE_CODE(disc_tx_res_ps_r13->pack(bref)); } if (disc_tx_inter_freq_info_r13_present) { HANDLE_CODE(disc_tx_inter_freq_info_r13->pack(bref)); } if (gap_requests_allowed_ded_r13_present) { HANDLE_CODE(bref.pack(gap_requests_allowed_ded_r13, 1)); } if (disc_rx_gap_cfg_r13_present) { HANDLE_CODE(disc_rx_gap_cfg_r13->pack(bref)); } if (disc_tx_gap_cfg_r13_present) { HANDLE_CODE(disc_tx_gap_cfg_r13->pack(bref)); } if (disc_sys_info_to_report_cfg_r13_present) { HANDLE_CODE(disc_sys_info_to_report_cfg_r13->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(disc_tx_res_r12_present, 1)); if (disc_tx_res_r12_present) { HANDLE_CODE(disc_tx_res_r12.unpack(bref)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(disc_tf_idx_list_v1260_present, 1)); if (disc_tf_idx_list_v1260_present) { disc_tf_idx_list_v1260 = make_copy_ptr(disc_tf_idx_list_v1260_c_()); HANDLE_CODE(disc_tf_idx_list_v1260->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(disc_tx_res_ps_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_inter_freq_info_r13_present, 1)); HANDLE_CODE(bref.unpack(gap_requests_allowed_ded_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_rx_gap_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_gap_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_sys_info_to_report_cfg_r13_present, 1)); if (disc_tx_res_ps_r13_present) { disc_tx_res_ps_r13 = make_copy_ptr(disc_tx_res_ps_r13_c_()); HANDLE_CODE(disc_tx_res_ps_r13->unpack(bref)); } if (disc_tx_inter_freq_info_r13_present) { disc_tx_inter_freq_info_r13 = make_copy_ptr(disc_tx_inter_freq_info_r13_c_()); HANDLE_CODE(disc_tx_inter_freq_info_r13->unpack(bref)); } if (gap_requests_allowed_ded_r13_present) { HANDLE_CODE(bref.unpack(gap_requests_allowed_ded_r13, 1)); } if (disc_rx_gap_cfg_r13_present) { disc_rx_gap_cfg_r13 = make_copy_ptr(disc_rx_gap_cfg_r13_c_()); HANDLE_CODE(disc_rx_gap_cfg_r13->unpack(bref)); } if (disc_tx_gap_cfg_r13_present) { disc_tx_gap_cfg_r13 = make_copy_ptr(disc_tx_gap_cfg_r13_c_()); HANDLE_CODE(disc_tx_gap_cfg_r13->unpack(bref)); } if (disc_sys_info_to_report_cfg_r13_present) { disc_sys_info_to_report_cfg_r13 = make_copy_ptr(disc_sys_info_to_report_cfg_r13_c_()); HANDLE_CODE(disc_sys_info_to_report_cfg_r13->unpack(bref)); } } } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); if (disc_tx_res_r12_present) { j.write_fieldname("discTxResources-r12"); disc_tx_res_r12.to_json(j); } if (ext) { rrc_asn1_warn_assert(disc_tf_idx_list_v1260_present != (disc_tf_idx_list_v1260.get() != NULL), __FILE__, __LINE__); if (disc_tf_idx_list_v1260_present) { j.write_fieldname("discTF-IndexList-v1260"); disc_tf_idx_list_v1260->to_json(j); } rrc_asn1_warn_assert(disc_tx_res_ps_r13_present != (disc_tx_res_ps_r13.get() != NULL), __FILE__, __LINE__); if (disc_tx_res_ps_r13_present) { j.write_fieldname("discTxResourcesPS-r13"); disc_tx_res_ps_r13->to_json(j); } rrc_asn1_warn_assert(disc_tx_inter_freq_info_r13_present != (disc_tx_inter_freq_info_r13.get() != NULL), __FILE__, __LINE__); if (disc_tx_inter_freq_info_r13_present) { j.write_fieldname("discTxInterFreqInfo-r13"); disc_tx_inter_freq_info_r13->to_json(j); } if (gap_requests_allowed_ded_r13_present) { j.write_bool("gapRequestsAllowedDedicated-r13", gap_requests_allowed_ded_r13); } rrc_asn1_warn_assert(disc_rx_gap_cfg_r13_present != (disc_rx_gap_cfg_r13.get() != NULL), __FILE__, __LINE__); if (disc_rx_gap_cfg_r13_present) { j.write_fieldname("discRxGapConfig-r13"); disc_rx_gap_cfg_r13->to_json(j); } rrc_asn1_warn_assert(disc_tx_gap_cfg_r13_present != (disc_tx_gap_cfg_r13.get() != NULL), __FILE__, __LINE__); if (disc_tx_gap_cfg_r13_present) { j.write_fieldname("discTxGapConfig-r13"); disc_tx_gap_cfg_r13->to_json(j); } rrc_asn1_warn_assert(disc_sys_info_to_report_cfg_r13_present != (disc_sys_info_to_report_cfg_r13.get() != NULL), __FILE__, __LINE__); if (disc_sys_info_to_report_cfg_r13_present) { j.write_fieldname("discSysInfoToReportConfig-r13"); disc_sys_info_to_report_cfg_r13->to_json(j); } } j.end_obj(); } void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::set(types::options e) { type_ = e; } void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_res_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_res_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::destroy_() { switch (type_) { case types::sched_r12: c.destroy(); break; case types::ue_sel_r12: c.destroy(); break; default: break; } } void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sched_r12: c.init(); break; case types::ue_sel_r12: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_"); } } sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::setup_c_(const sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::sched_r12: c.init(other.c.get()); break; case types::ue_sel_r12: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_"); } } sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_& sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_:: operator=(const sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sched_r12: c.set(other.c.get()); break; case types::ue_sel_r12: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_"); } return *this; } void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sched_r12: j.write_fieldname("scheduled-r12"); j.start_obj(); if (c.get().disc_tx_cfg_r12_present) { j.write_fieldname("discTxConfig-r12"); c.get().disc_tx_cfg_r12.to_json(j); } if (c.get().disc_tf_idx_list_r12_present) { j.start_array("discTF-IndexList-r12"); for (uint32_t i1 = 0; i1 < c.get().disc_tf_idx_list_r12.size(); ++i1) { c.get().disc_tf_idx_list_r12[i1].to_json(j); } j.end_array(); } if (c.get().disc_hop_cfg_r12_present) { j.write_fieldname("discHoppingConfig-r12"); c.get().disc_hop_cfg_r12.to_json(j); } j.end_obj(); break; case types::ue_sel_r12: j.write_fieldname("ue-Selected-r12"); j.start_obj(); if (c.get().disc_tx_pool_ded_r12_present) { j.write_fieldname("discTxPoolDedicated-r12"); j.start_obj(); if (c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12_present) { j.start_array("poolToReleaseList-r12"); for (uint32_t i1 = 0; i1 < c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12.size(); ++i1) { j.write_int(c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12[i1]); } j.end_array(); } if (c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12_present) { j.start_array("poolToAddModList-r12"); for (uint32_t i1 = 0; i1 < c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12.size(); ++i1) { c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sched_r12: HANDLE_CODE(bref.pack(c.get().disc_tx_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(c.get().disc_tf_idx_list_r12_present, 1)); HANDLE_CODE(bref.pack(c.get().disc_hop_cfg_r12_present, 1)); if (c.get().disc_tx_cfg_r12_present) { HANDLE_CODE(c.get().disc_tx_cfg_r12.pack(bref)); } if (c.get().disc_tf_idx_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().disc_tf_idx_list_r12, 1, 64)); } if (c.get().disc_hop_cfg_r12_present) { HANDLE_CODE(c.get().disc_hop_cfg_r12.pack(bref)); } break; case types::ue_sel_r12: HANDLE_CODE(bref.pack(c.get().disc_tx_pool_ded_r12_present, 1)); if (c.get().disc_tx_pool_ded_r12_present) { HANDLE_CODE(bref.pack(c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12_present, 1)); HANDLE_CODE(bref.pack(c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12_present, 1)); if (c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12, 1, 4, UnalignedIntegerPacker(1, 4))); } if (c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12, 1, 4)); } } break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sched_r12: HANDLE_CODE(bref.unpack(c.get().disc_tx_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(c.get().disc_tf_idx_list_r12_present, 1)); HANDLE_CODE(bref.unpack(c.get().disc_hop_cfg_r12_present, 1)); if (c.get().disc_tx_cfg_r12_present) { HANDLE_CODE(c.get().disc_tx_cfg_r12.unpack(bref)); } if (c.get().disc_tf_idx_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().disc_tf_idx_list_r12, bref, 1, 64)); } if (c.get().disc_hop_cfg_r12_present) { HANDLE_CODE(c.get().disc_hop_cfg_r12.unpack(bref)); } break; case types::ue_sel_r12: HANDLE_CODE(bref.unpack(c.get().disc_tx_pool_ded_r12_present, 1)); if (c.get().disc_tx_pool_ded_r12_present) { HANDLE_CODE(bref.unpack(c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12_present, 1)); HANDLE_CODE(bref.unpack(c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12_present, 1)); if (c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().disc_tx_pool_ded_r12.pool_to_release_list_r12, bref, 1, 4, UnalignedIntegerPacker(1, 4))); } if (c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12_present) { HANDLE_CODE( unpack_dyn_seq_of(c.get().disc_tx_pool_ded_r12.pool_to_add_mod_list_r12, bref, 1, 4)); } } break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::set(types::options e) { type_ = e; } void sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("discTF-IndexList-r12b"); for (uint32_t i1 = 0; i1 < c.disc_tf_idx_list_r12b.size(); ++i1) { c.disc_tf_idx_list_r12b[i1].to_json(j); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.disc_tf_idx_list_r12b, 1, 64)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.disc_tf_idx_list_r12b, bref, 1, 64)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::set(types::options e) { type_ = e; } void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::destroy_() { switch (type_) { case types::sched_r13: c.destroy(); break; case types::ue_sel_r13: c.destroy(); break; default: break; } } void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sched_r13: c.init(); break; case types::ue_sel_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_"); } } sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::setup_c_( const sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_& other) { type_ = other.type(); switch (type_) { case types::sched_r13: c.init(other.c.get()); break; case types::ue_sel_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_"); } } sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_& sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_:: operator=(const sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sched_r13: c.set(other.c.get()); break; case types::ue_sel_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_"); } return *this; } void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sched_r13: j.write_fieldname("scheduled-r13"); c.get().to_json(j); break; case types::ue_sel_r13: j.write_fieldname("ue-Selected-r13"); j.start_obj(); j.write_fieldname("discTxPoolPS-Dedicated-r13"); c.get().disc_tx_pool_ps_ded_r13.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sched_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::ue_sel_r13: HANDLE_CODE(c.get().disc_tx_pool_ps_ded_r13.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sched_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::ue_sel_r13: HANDLE_CODE(c.get().disc_tx_pool_ps_ded_r13.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::set(types::options e) { type_ = e; } void sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.disc_tx_carrier_freq_r13_present) { j.write_int("discTxCarrierFreq-r13", c.disc_tx_carrier_freq_r13); } if (c.disc_tx_ref_carrier_ded_r13_present) { j.write_fieldname("discTxRefCarrierDedicated-r13"); c.disc_tx_ref_carrier_ded_r13.to_json(j); } if (c.disc_tx_info_inter_freq_list_add_r13_present) { j.write_fieldname("discTxInfoInterFreqListAdd-r13"); c.disc_tx_info_inter_freq_list_add_r13.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.disc_tx_carrier_freq_r13_present, 1)); HANDLE_CODE(bref.pack(c.disc_tx_ref_carrier_ded_r13_present, 1)); HANDLE_CODE(bref.pack(c.disc_tx_info_inter_freq_list_add_r13_present, 1)); if (c.disc_tx_carrier_freq_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.disc_tx_carrier_freq_r13, (uint32_t)0, (uint32_t)262143)); } if (c.disc_tx_ref_carrier_ded_r13_present) { HANDLE_CODE(c.disc_tx_ref_carrier_ded_r13.pack(bref)); } if (c.disc_tx_info_inter_freq_list_add_r13_present) { HANDLE_CODE(c.disc_tx_info_inter_freq_list_add_r13.pack(bref)); } break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.disc_tx_carrier_freq_r13_present, 1)); HANDLE_CODE(bref.unpack(c.disc_tx_ref_carrier_ded_r13_present, 1)); HANDLE_CODE(bref.unpack(c.disc_tx_info_inter_freq_list_add_r13_present, 1)); if (c.disc_tx_carrier_freq_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.disc_tx_carrier_freq_r13, bref, (uint32_t)0, (uint32_t)262143)); } if (c.disc_tx_ref_carrier_ded_r13_present) { HANDLE_CODE(c.disc_tx_ref_carrier_ded_r13.unpack(bref)); } if (c.disc_tx_info_inter_freq_list_add_r13_present) { HANDLE_CODE(c.disc_tx_info_inter_freq_list_add_r13.unpack(bref)); } break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_::set(types::options e) { type_ = e; } void sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_::set(types::options e) { type_ = e; } void sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); c.to_json(j); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_::set(types::options e) { type_ = e; } void sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { j.write_int(c[i1]); } j.end_array(); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_"); } j.end_obj(); } SRSASN_CODE sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 8, UnalignedIntegerPacker(0, 262143))); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); break; default: log_invalid_choice_id(type_, "sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-SyncTxControl-r12 ::= SEQUENCE SRSASN_CODE sl_sync_tx_ctrl_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(network_ctrl_sync_tx_r12_present, 1)); if (network_ctrl_sync_tx_r12_present) { HANDLE_CODE(pack_enum(bref, network_ctrl_sync_tx_r12)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_sync_tx_ctrl_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(network_ctrl_sync_tx_r12_present, 1)); if (network_ctrl_sync_tx_r12_present) { HANDLE_CODE(unpack_enum(network_ctrl_sync_tx_r12, bref)); } return SRSASN_SUCCESS; } void sl_sync_tx_ctrl_r12_s::to_json(json_writer& j) const { j.start_obj(); if (network_ctrl_sync_tx_r12_present) { j.write_str("networkControlledSyncTx-r12", network_ctrl_sync_tx_r12.to_string()); } j.end_obj(); } // UECapabilityEnquiry-v1530-IEs ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(request_stti_spt_cap_r15_present, 1)); HANDLE_CODE(bref.pack(eutra_nr_only_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(request_stti_spt_cap_r15_present, 1)); HANDLE_CODE(bref.unpack(eutra_nr_only_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } void ue_cap_enquiry_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (request_stti_spt_cap_r15_present) { j.write_str("requestSTTI-SPT-Capability-r15", "true"); } if (eutra_nr_only_r15_present) { j.write_str("eutra-nr-only-r15", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // WhiteCellsToAddMod-r13 ::= SEQUENCE SRSASN_CODE white_cells_to_add_mod_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, cell_idx_r13, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pci_range_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE white_cells_to_add_mod_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(cell_idx_r13, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pci_range_r13.unpack(bref)); return SRSASN_SUCCESS; } void white_cells_to_add_mod_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellIndex-r13", cell_idx_r13); j.write_fieldname("physCellIdRange-r13"); pci_range_r13.to_json(j); j.end_obj(); } // BT-NameListConfig-r15 ::= CHOICE void bt_name_list_cfg_r15_c::set(types::options e) { type_ = e; } void bt_name_list_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { j.write_str(c[i1].to_string()); } j.end_array(); break; default: log_invalid_choice_id(type_, "bt_name_list_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE bt_name_list_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 4)); break; default: log_invalid_choice_id(type_, "bt_name_list_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE bt_name_list_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 4)); break; default: log_invalid_choice_id(type_, "bt_name_list_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSG-AllowedReportingCells-r9 ::= SEQUENCE SRSASN_CODE csg_allowed_report_cells_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pci_range_utra_fdd_list_r9_present, 1)); if (pci_range_utra_fdd_list_r9_present) { HANDLE_CODE(pack_dyn_seq_of(bref, pci_range_utra_fdd_list_r9, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE csg_allowed_report_cells_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pci_range_utra_fdd_list_r9_present, 1)); if (pci_range_utra_fdd_list_r9_present) { HANDLE_CODE(unpack_dyn_seq_of(pci_range_utra_fdd_list_r9, bref, 1, 4)); } return SRSASN_SUCCESS; } void csg_allowed_report_cells_r9_s::to_json(json_writer& j) const { j.start_obj(); if (pci_range_utra_fdd_list_r9_present) { j.start_array("physCellIdRangeUTRA-FDDList-r9"); for (uint32_t i1 = 0; i1 < pci_range_utra_fdd_list_r9.size(); ++i1) { pci_range_utra_fdd_list_r9[i1].to_json(j); } j.end_array(); } j.end_obj(); } // CarrierFreqGERAN ::= SEQUENCE SRSASN_CODE carrier_freq_geran_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, arfcn, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(pack_enum(bref, band_ind)); return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_geran_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(arfcn, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(unpack_enum(band_ind, bref)); return SRSASN_SUCCESS; } void carrier_freq_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("arfcn", arfcn); j.write_str("bandIndicator", band_ind.to_string()); j.end_obj(); } // MeasDS-Config-r12 ::= CHOICE void meas_ds_cfg_r12_c::set(types::options e) { type_ = e; } void meas_ds_cfg_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("dmtc-PeriodOffset-r12"); c.dmtc_period_offset_r12.to_json(j); j.write_fieldname("ds-OccasionDuration-r12"); c.ds_occasion_dur_r12.to_json(j); if (c.meas_csi_rs_to_rem_list_r12_present) { j.start_array("measCSI-RS-ToRemoveList-r12"); for (uint32_t i1 = 0; i1 < c.meas_csi_rs_to_rem_list_r12.size(); ++i1) { j.write_int(c.meas_csi_rs_to_rem_list_r12[i1]); } j.end_array(); } if (c.meas_csi_rs_to_add_mod_list_r12_present) { j.start_array("measCSI-RS-ToAddModList-r12"); for (uint32_t i1 = 0; i1 < c.meas_csi_rs_to_add_mod_list_r12.size(); ++i1) { c.meas_csi_rs_to_add_mod_list_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c"); } j.end_obj(); } SRSASN_CODE meas_ds_cfg_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.meas_csi_rs_to_rem_list_r12_present, 1)); HANDLE_CODE(bref.pack(c.meas_csi_rs_to_add_mod_list_r12_present, 1)); HANDLE_CODE(c.dmtc_period_offset_r12.pack(bref)); HANDLE_CODE(c.ds_occasion_dur_r12.pack(bref)); if (c.meas_csi_rs_to_rem_list_r12_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.meas_csi_rs_to_rem_list_r12, 1, 96, UnalignedIntegerPacker(1, 96))); } if (c.meas_csi_rs_to_add_mod_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.meas_csi_rs_to_add_mod_list_r12, 1, 96)); } break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_ds_cfg_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.meas_csi_rs_to_rem_list_r12_present, 1)); HANDLE_CODE(bref.unpack(c.meas_csi_rs_to_add_mod_list_r12_present, 1)); HANDLE_CODE(c.dmtc_period_offset_r12.unpack(bref)); HANDLE_CODE(c.ds_occasion_dur_r12.unpack(bref)); if (c.meas_csi_rs_to_rem_list_r12_present) { HANDLE_CODE( unpack_dyn_seq_of(c.meas_csi_rs_to_rem_list_r12, bref, 1, 96, UnalignedIntegerPacker(1, 96))); } if (c.meas_csi_rs_to_add_mod_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(c.meas_csi_rs_to_add_mod_list_r12, bref, 1, 96)); } break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::destroy_() {} void meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::set(types::options e) { destroy_(); type_ = e; } meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::dmtc_period_offset_r12_c_( const meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_& other) { type_ = other.type(); switch (type_) { case types::ms40_r12: c.init(other.c.get()); break; case types::ms80_r12: c.init(other.c.get()); break; case types::ms160_r12: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_"); } } meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_& meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_:: operator=(const meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ms40_r12: c.set(other.c.get()); break; case types::ms80_r12: c.set(other.c.get()); break; case types::ms160_r12: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_"); } return *this; } void meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ms40_r12: j.write_int("ms40-r12", c.get()); break; case types::ms80_r12: j.write_int("ms80-r12", c.get()); break; case types::ms160_r12: j.write_int("ms160-r12", c.get()); break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_"); } j.end_obj(); } SRSASN_CODE meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ms40_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); break; case types::ms80_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::ms160_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ms40_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); break; case types::ms80_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::ms160_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::destroy_() {} void meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::set(types::options e) { destroy_(); type_ = e; } meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::ds_occasion_dur_r12_c_( const meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_& other) { type_ = other.type(); switch (type_) { case types::dur_fdd_r12: c.init(other.c.get()); break; case types::dur_tdd_r12: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_"); } } meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_& meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_:: operator=(const meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::dur_fdd_r12: c.set(other.c.get()); break; case types::dur_tdd_r12: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_"); } return *this; } void meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::dur_fdd_r12: j.write_int("durationFDD-r12", c.get()); break; case types::dur_tdd_r12: j.write_int("durationTDD-r12", c.get()); break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_"); } j.end_obj(); } SRSASN_CODE meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::dur_fdd_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)5)); break; case types::dur_tdd_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)2, (uint8_t)5)); break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::dur_fdd_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)5)); break; case types::dur_tdd_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)2, (uint8_t)5)); break; default: log_invalid_choice_id(type_, "meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasGapConfig ::= CHOICE void meas_gap_cfg_c::set(types::options e) { type_ = e; } void meas_gap_cfg_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("gapOffset"); c.gap_offset.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_c"); } j.end_obj(); } SRSASN_CODE meas_gap_cfg_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.gap_offset.pack(bref)); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_gap_cfg_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.gap_offset.unpack(bref)); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_gap_cfg_c::setup_s_::gap_offset_c_::destroy_() {} void meas_gap_cfg_c::setup_s_::gap_offset_c_::set(types::options e) { destroy_(); type_ = e; } meas_gap_cfg_c::setup_s_::gap_offset_c_::gap_offset_c_(const meas_gap_cfg_c::setup_s_::gap_offset_c_& other) { type_ = other.type(); switch (type_) { case types::gp0: c.init(other.c.get()); break; case types::gp1: c.init(other.c.get()); break; case types::gp2_r14: c.init(other.c.get()); break; case types::gp3_r14: c.init(other.c.get()); break; case types::gp_ncsg0_r14: c.init(other.c.get()); break; case types::gp_ncsg1_r14: c.init(other.c.get()); break; case types::gp_ncsg2_r14: c.init(other.c.get()); break; case types::gp_ncsg3_r14: c.init(other.c.get()); break; case types::gp_non_uniform1_r14: c.init(other.c.get()); break; case types::gp_non_uniform2_r14: c.init(other.c.get()); break; case types::gp_non_uniform3_r14: c.init(other.c.get()); break; case types::gp_non_uniform4_r14: c.init(other.c.get()); break; case types::gp4_r15: c.init(other.c.get()); break; case types::gp5_r15: c.init(other.c.get()); break; case types::gp6_r15: c.init(other.c.get()); break; case types::gp7_r15: c.init(other.c.get()); break; case types::gp8_r15: c.init(other.c.get()); break; case types::gp9_r15: c.init(other.c.get()); break; case types::gp10_r15: c.init(other.c.get()); break; case types::gp11_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_gap_cfg_c::setup_s_::gap_offset_c_"); } } meas_gap_cfg_c::setup_s_::gap_offset_c_& meas_gap_cfg_c::setup_s_::gap_offset_c_:: operator=(const meas_gap_cfg_c::setup_s_::gap_offset_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::gp0: c.set(other.c.get()); break; case types::gp1: c.set(other.c.get()); break; case types::gp2_r14: c.set(other.c.get()); break; case types::gp3_r14: c.set(other.c.get()); break; case types::gp_ncsg0_r14: c.set(other.c.get()); break; case types::gp_ncsg1_r14: c.set(other.c.get()); break; case types::gp_ncsg2_r14: c.set(other.c.get()); break; case types::gp_ncsg3_r14: c.set(other.c.get()); break; case types::gp_non_uniform1_r14: c.set(other.c.get()); break; case types::gp_non_uniform2_r14: c.set(other.c.get()); break; case types::gp_non_uniform3_r14: c.set(other.c.get()); break; case types::gp_non_uniform4_r14: c.set(other.c.get()); break; case types::gp4_r15: c.set(other.c.get()); break; case types::gp5_r15: c.set(other.c.get()); break; case types::gp6_r15: c.set(other.c.get()); break; case types::gp7_r15: c.set(other.c.get()); break; case types::gp8_r15: c.set(other.c.get()); break; case types::gp9_r15: c.set(other.c.get()); break; case types::gp10_r15: c.set(other.c.get()); break; case types::gp11_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_gap_cfg_c::setup_s_::gap_offset_c_"); } return *this; } void meas_gap_cfg_c::setup_s_::gap_offset_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::gp0: j.write_int("gp0", c.get()); break; case types::gp1: j.write_int("gp1", c.get()); break; case types::gp2_r14: j.write_int("gp2-r14", c.get()); break; case types::gp3_r14: j.write_int("gp3-r14", c.get()); break; case types::gp_ncsg0_r14: j.write_int("gp-ncsg0-r14", c.get()); break; case types::gp_ncsg1_r14: j.write_int("gp-ncsg1-r14", c.get()); break; case types::gp_ncsg2_r14: j.write_int("gp-ncsg2-r14", c.get()); break; case types::gp_ncsg3_r14: j.write_int("gp-ncsg3-r14", c.get()); break; case types::gp_non_uniform1_r14: j.write_int("gp-nonUniform1-r14", c.get()); break; case types::gp_non_uniform2_r14: j.write_int("gp-nonUniform2-r14", c.get()); break; case types::gp_non_uniform3_r14: j.write_int("gp-nonUniform3-r14", c.get()); break; case types::gp_non_uniform4_r14: j.write_int("gp-nonUniform4-r14", c.get()); break; case types::gp4_r15: j.write_int("gp4-r15", c.get()); break; case types::gp5_r15: j.write_int("gp5-r15", c.get()); break; case types::gp6_r15: j.write_int("gp6-r15", c.get()); break; case types::gp7_r15: j.write_int("gp7-r15", c.get()); break; case types::gp8_r15: j.write_int("gp8-r15", c.get()); break; case types::gp9_r15: j.write_int("gp9-r15", c.get()); break; case types::gp10_r15: j.write_int("gp10-r15", c.get()); break; case types::gp11_r15: j.write_int("gp11-r15", c.get()); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_c::setup_s_::gap_offset_c_"); } j.end_obj(); } SRSASN_CODE meas_gap_cfg_c::setup_s_::gap_offset_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::gp0: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); break; case types::gp1: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::gp2_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); } break; case types::gp3_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); } break; case types::gp_ncsg0_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); } break; case types::gp_ncsg1_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); } break; case types::gp_ncsg2_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); } break; case types::gp_ncsg3_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); } break; case types::gp_non_uniform1_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); } break; case types::gp_non_uniform2_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)2559)); } break; case types::gp_non_uniform3_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)5119)); } break; case types::gp_non_uniform4_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)10239)); } break; case types::gp4_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)19)); } break; case types::gp5_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); } break; case types::gp6_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)19)); } break; case types::gp7_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); } break; case types::gp8_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); } break; case types::gp9_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); } break; case types::gp10_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)19)); } break; case types::gp11_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); } break; default: log_invalid_choice_id(type_, "meas_gap_cfg_c::setup_s_::gap_offset_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_gap_cfg_c::setup_s_::gap_offset_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::gp0: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); break; case types::gp1: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::gp2_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); } break; case types::gp3_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); } break; case types::gp_ncsg0_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); } break; case types::gp_ncsg1_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); } break; case types::gp_ncsg2_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); } break; case types::gp_ncsg3_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); } break; case types::gp_non_uniform1_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); } break; case types::gp_non_uniform2_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)2559)); } break; case types::gp_non_uniform3_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)5119)); } break; case types::gp_non_uniform4_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)10239)); } break; case types::gp4_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)19)); } break; case types::gp5_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); } break; case types::gp6_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)19)); } break; case types::gp7_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); } break; case types::gp8_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); } break; case types::gp9_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); } break; case types::gp10_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)19)); } break; case types::gp11_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); } break; default: log_invalid_choice_id(type_, "meas_gap_cfg_c::setup_s_::gap_offset_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasRSSI-ReportConfig-r13 ::= SEQUENCE SRSASN_CODE meas_rssi_report_cfg_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ch_occupancy_thres_r13_present, 1)); if (ch_occupancy_thres_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, ch_occupancy_thres_r13, (uint8_t)0, (uint8_t)76)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_rssi_report_cfg_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ch_occupancy_thres_r13_present, 1)); if (ch_occupancy_thres_r13_present) { HANDLE_CODE(unpack_unalign_integer(ch_occupancy_thres_r13, bref, (uint8_t)0, (uint8_t)76)); } return SRSASN_SUCCESS; } void meas_rssi_report_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); if (ch_occupancy_thres_r13_present) { j.write_int("channelOccupancyThreshold-r13", ch_occupancy_thres_r13); } j.end_obj(); } // MeasSensing-Config-r15 ::= SEQUENCE SRSASN_CODE meas_sensing_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, sensing_subch_num_r15, (uint8_t)1, (uint8_t)20)); HANDLE_CODE(pack_enum(bref, sensing_periodicity_r15)); HANDLE_CODE(pack_unalign_integer(bref, sensing_resel_counter_r15, (uint8_t)5, (uint8_t)75)); HANDLE_CODE(pack_unalign_integer(bref, sensing_prio_r15, (uint8_t)1, (uint8_t)8)); return SRSASN_SUCCESS; } SRSASN_CODE meas_sensing_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(sensing_subch_num_r15, bref, (uint8_t)1, (uint8_t)20)); HANDLE_CODE(unpack_enum(sensing_periodicity_r15, bref)); HANDLE_CODE(unpack_unalign_integer(sensing_resel_counter_r15, bref, (uint8_t)5, (uint8_t)75)); HANDLE_CODE(unpack_unalign_integer(sensing_prio_r15, bref, (uint8_t)1, (uint8_t)8)); return SRSASN_SUCCESS; } void meas_sensing_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sensingSubchannelNumber-r15", sensing_subch_num_r15); j.write_str("sensingPeriodicity-r15", sensing_periodicity_r15.to_string()); j.write_int("sensingReselectionCounter-r15", sensing_resel_counter_r15); j.write_int("sensingPriority-r15", sensing_prio_r15); j.end_obj(); } // MeasSubframePatternConfigNeigh-r10 ::= CHOICE void meas_sf_pattern_cfg_neigh_r10_c::set(types::options e) { type_ = e; } void meas_sf_pattern_cfg_neigh_r10_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("measSubframePatternNeigh-r10"); c.meas_sf_pattern_neigh_r10.to_json(j); if (c.meas_sf_cell_list_r10_present) { j.start_array("measSubframeCellList-r10"); for (uint32_t i1 = 0; i1 < c.meas_sf_cell_list_r10.size(); ++i1) { c.meas_sf_cell_list_r10[i1].to_json(j); } j.end_array(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "meas_sf_pattern_cfg_neigh_r10_c"); } j.end_obj(); } SRSASN_CODE meas_sf_pattern_cfg_neigh_r10_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.meas_sf_cell_list_r10_present, 1)); HANDLE_CODE(c.meas_sf_pattern_neigh_r10.pack(bref)); if (c.meas_sf_cell_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.meas_sf_cell_list_r10, 1, 32)); } break; default: log_invalid_choice_id(type_, "meas_sf_pattern_cfg_neigh_r10_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_sf_pattern_cfg_neigh_r10_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.meas_sf_cell_list_r10_present, 1)); HANDLE_CODE(c.meas_sf_pattern_neigh_r10.unpack(bref)); if (c.meas_sf_cell_list_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(c.meas_sf_cell_list_r10, bref, 1, 32)); } break; default: log_invalid_choice_id(type_, "meas_sf_pattern_cfg_neigh_r10_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MobilityControlInfo-v10l0 ::= SEQUENCE SRSASN_CODE mob_ctrl_info_v10l0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(add_spec_emission_v10l0_present, 1)); if (add_spec_emission_v10l0_present) { HANDLE_CODE(pack_unalign_integer(bref, add_spec_emission_v10l0, (uint16_t)33, (uint16_t)288)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_ctrl_info_v10l0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(add_spec_emission_v10l0_present, 1)); if (add_spec_emission_v10l0_present) { HANDLE_CODE(unpack_unalign_integer(add_spec_emission_v10l0, bref, (uint16_t)33, (uint16_t)288)); } return SRSASN_SUCCESS; } void mob_ctrl_info_v10l0_s::to_json(json_writer& j) const { j.start_obj(); if (add_spec_emission_v10l0_present) { j.write_int("additionalSpectrumEmission-v10l0", add_spec_emission_v10l0); } j.end_obj(); } // PhysCellIdGERAN ::= SEQUENCE SRSASN_CODE pci_geran_s::pack(bit_ref& bref) const { HANDLE_CODE(network_colour_code.pack(bref)); HANDLE_CODE(base_station_colour_code.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE pci_geran_s::unpack(bit_ref& bref) { HANDLE_CODE(network_colour_code.unpack(bref)); HANDLE_CODE(base_station_colour_code.unpack(bref)); return SRSASN_SUCCESS; } void pci_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("networkColourCode", network_colour_code.to_string()); j.write_str("baseStationColourCode", base_station_colour_code.to_string()); j.end_obj(); } // QuantityConfigRS-NR-r15 ::= SEQUENCE SRSASN_CODE quant_cfg_rs_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coeff_rsrp_r15_present, 1)); HANDLE_CODE(bref.pack(filt_coeff_rsrq_r15_present, 1)); HANDLE_CODE(bref.pack(filt_coef_sinr_r13_present, 1)); if (filt_coeff_rsrp_r15_present) { HANDLE_CODE(pack_enum(bref, filt_coeff_rsrp_r15)); } if (filt_coeff_rsrq_r15_present) { HANDLE_CODE(pack_enum(bref, filt_coeff_rsrq_r15)); } if (filt_coef_sinr_r13_present) { HANDLE_CODE(pack_enum(bref, filt_coef_sinr_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_rs_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coeff_rsrp_r15_present, 1)); HANDLE_CODE(bref.unpack(filt_coeff_rsrq_r15_present, 1)); HANDLE_CODE(bref.unpack(filt_coef_sinr_r13_present, 1)); if (filt_coeff_rsrp_r15_present) { HANDLE_CODE(unpack_enum(filt_coeff_rsrp_r15, bref)); } if (filt_coeff_rsrq_r15_present) { HANDLE_CODE(unpack_enum(filt_coeff_rsrq_r15, bref)); } if (filt_coef_sinr_r13_present) { HANDLE_CODE(unpack_enum(filt_coef_sinr_r13, bref)); } return SRSASN_SUCCESS; } void quant_cfg_rs_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); if (filt_coeff_rsrp_r15_present) { j.write_str("filterCoeff-RSRP-r15", filt_coeff_rsrp_r15.to_string()); } if (filt_coeff_rsrq_r15_present) { j.write_str("filterCoeff-RSRQ-r15", filt_coeff_rsrq_r15.to_string()); } if (filt_coef_sinr_r13_present) { j.write_str("filterCoefficient-SINR-r13", filt_coef_sinr_r13.to_string()); } j.end_obj(); } // RMTC-Config-r13 ::= CHOICE void rmtc_cfg_r13_c::set(types::options e) { type_ = e; } void rmtc_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("rmtc-Period-r13", c.rmtc_period_r13.to_string()); if (c.rmtc_sf_offset_r13_present) { j.write_int("rmtc-SubframeOffset-r13", c.rmtc_sf_offset_r13); } j.write_str("measDuration-r13", c.meas_dur_r13.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "rmtc_cfg_r13_c"); } j.end_obj(); } SRSASN_CODE rmtc_cfg_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.rmtc_sf_offset_r13_present, 1)); HANDLE_CODE(pack_enum(bref, c.rmtc_period_r13)); if (c.rmtc_sf_offset_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.rmtc_sf_offset_r13, (uint16_t)0, (uint16_t)639)); } HANDLE_CODE(pack_enum(bref, c.meas_dur_r13)); break; default: log_invalid_choice_id(type_, "rmtc_cfg_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rmtc_cfg_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.rmtc_sf_offset_r13_present, 1)); HANDLE_CODE(unpack_enum(c.rmtc_period_r13, bref)); if (c.rmtc_sf_offset_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.rmtc_sf_offset_r13, bref, (uint16_t)0, (uint16_t)639)); } HANDLE_CODE(unpack_enum(c.meas_dur_r13, bref)); break; default: log_invalid_choice_id(type_, "rmtc_cfg_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(wlan_offload_info_r12_present, 1)); HANDLE_CODE(bref.pack(scg_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(sl_sync_tx_ctrl_r12_present, 1)); HANDLE_CODE(bref.pack(sl_disc_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(sl_comm_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (wlan_offload_info_r12_present) { HANDLE_CODE(wlan_offload_info_r12.pack(bref)); } if (scg_cfg_r12_present) { HANDLE_CODE(scg_cfg_r12.pack(bref)); } if (sl_sync_tx_ctrl_r12_present) { HANDLE_CODE(sl_sync_tx_ctrl_r12.pack(bref)); } if (sl_disc_cfg_r12_present) { HANDLE_CODE(sl_disc_cfg_r12.pack(bref)); } if (sl_comm_cfg_r12_present) { HANDLE_CODE(sl_comm_cfg_r12.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(wlan_offload_info_r12_present, 1)); HANDLE_CODE(bref.unpack(scg_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(sl_sync_tx_ctrl_r12_present, 1)); HANDLE_CODE(bref.unpack(sl_disc_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(sl_comm_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (wlan_offload_info_r12_present) { HANDLE_CODE(wlan_offload_info_r12.unpack(bref)); } if (scg_cfg_r12_present) { HANDLE_CODE(scg_cfg_r12.unpack(bref)); } if (sl_sync_tx_ctrl_r12_present) { HANDLE_CODE(sl_sync_tx_ctrl_r12.unpack(bref)); } if (sl_disc_cfg_r12_present) { HANDLE_CODE(sl_disc_cfg_r12.unpack(bref)); } if (sl_comm_cfg_r12_present) { HANDLE_CODE(sl_comm_cfg_r12.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (wlan_offload_info_r12_present) { j.write_fieldname("wlan-OffloadInfo-r12"); wlan_offload_info_r12.to_json(j); } if (scg_cfg_r12_present) { j.write_fieldname("scg-Configuration-r12"); scg_cfg_r12.to_json(j); } if (sl_sync_tx_ctrl_r12_present) { j.write_fieldname("sl-SyncTxControl-r12"); sl_sync_tx_ctrl_r12.to_json(j); } if (sl_disc_cfg_r12_present) { j.write_fieldname("sl-DiscConfig-r12"); sl_disc_cfg_r12.to_json(j); } if (sl_comm_cfg_r12_present) { j.write_fieldname("sl-CommConfig-r12"); sl_comm_cfg_r12.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::set(types::options e) { type_ = e; } void rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("wlan-OffloadConfigDedicated-r12"); c.wlan_offload_cfg_ded_r12.to_json(j); if (c.t350_r12_present) { j.write_str("t350-r12", c.t350_r12.to_string()); } j.end_obj(); break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.t350_r12_present, 1)); HANDLE_CODE(c.wlan_offload_cfg_ded_r12.pack(bref)); if (c.t350_r12_present) { HANDLE_CODE(pack_enum(bref, c.t350_r12)); } break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.t350_r12_present, 1)); HANDLE_CODE(c.wlan_offload_cfg_ded_r12.unpack(bref)); if (c.t350_r12_present) { HANDLE_CODE(unpack_enum(c.t350_r12, bref)); } break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v12f0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(scg_cfg_v12f0_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (scg_cfg_v12f0_present) { HANDLE_CODE(scg_cfg_v12f0.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v12f0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(scg_cfg_v12f0_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (scg_cfg_v12f0_present) { HANDLE_CODE(scg_cfg_v12f0.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v12f0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (scg_cfg_v12f0_present) { j.write_fieldname("scg-Configuration-v12f0"); scg_cfg_v12f0.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionRelease-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(drb_continue_rohc_r15_present, 1)); HANDLE_CODE(bref.pack(next_hop_chaining_count_r15_present, 1)); HANDLE_CODE(bref.pack(meas_idle_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(rrc_inactive_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(cn_type_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (next_hop_chaining_count_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, next_hop_chaining_count_r15, (uint8_t)0, (uint8_t)7)); } if (meas_idle_cfg_r15_present) { HANDLE_CODE(meas_idle_cfg_r15.pack(bref)); } if (rrc_inactive_cfg_r15_present) { HANDLE_CODE(rrc_inactive_cfg_r15.pack(bref)); } if (cn_type_r15_present) { HANDLE_CODE(pack_enum(bref, cn_type_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(drb_continue_rohc_r15_present, 1)); HANDLE_CODE(bref.unpack(next_hop_chaining_count_r15_present, 1)); HANDLE_CODE(bref.unpack(meas_idle_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(rrc_inactive_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(cn_type_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (next_hop_chaining_count_r15_present) { HANDLE_CODE(unpack_unalign_integer(next_hop_chaining_count_r15, bref, (uint8_t)0, (uint8_t)7)); } if (meas_idle_cfg_r15_present) { HANDLE_CODE(meas_idle_cfg_r15.unpack(bref)); } if (rrc_inactive_cfg_r15_present) { HANDLE_CODE(rrc_inactive_cfg_r15.unpack(bref)); } if (cn_type_r15_present) { HANDLE_CODE(unpack_enum(cn_type_r15, bref)); } return SRSASN_SUCCESS; } void rrc_conn_release_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (drb_continue_rohc_r15_present) { j.write_str("drb-ContinueROHC-r15", "true"); } if (next_hop_chaining_count_r15_present) { j.write_int("nextHopChainingCount-r15", next_hop_chaining_count_r15); } if (meas_idle_cfg_r15_present) { j.write_fieldname("measIdleConfig-r15"); meas_idle_cfg_r15.to_json(j); } if (rrc_inactive_cfg_r15_present) { j.write_fieldname("rrc-InactiveConfig-r15"); rrc_inactive_cfg_r15.to_json(j); } if (cn_type_r15_present) { j.write_str("cn-Type-r15", cn_type_r15.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RS-ConfigSSB-NR-r15 ::= SEQUENCE SRSASN_CODE rs_cfg_ssb_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(meas_timing_cfg_r15.pack(bref)); HANDLE_CODE(pack_enum(bref, subcarrier_spacing_ssb_r15)); return SRSASN_SUCCESS; } SRSASN_CODE rs_cfg_ssb_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(meas_timing_cfg_r15.unpack(bref)); HANDLE_CODE(unpack_enum(subcarrier_spacing_ssb_r15, bref)); return SRSASN_SUCCESS; } void rs_cfg_ssb_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("measTimingConfig-r15"); meas_timing_cfg_r15.to_json(j); j.write_str("subcarrierSpacingSSB-r15", subcarrier_spacing_ssb_r15.to_string()); j.end_obj(); } // RSRQ-RangeConfig-r12 ::= CHOICE void rsrq_range_cfg_r12_c::set(types::options e) { type_ = e; } void rsrq_range_cfg_r12_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_int("setup", c); break; default: log_invalid_choice_id(type_, "rsrq_range_cfg_r12_c"); } j.end_obj(); } SRSASN_CODE rsrq_range_cfg_r12_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c, (int8_t)-30, (int8_t)46)); break; default: log_invalid_choice_id(type_, "rsrq_range_cfg_r12_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rsrq_range_cfg_r12_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c, bref, (int8_t)-30, (int8_t)46)); break; default: log_invalid_choice_id(type_, "rsrq_range_cfg_r12_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ReportQuantityNR-r15 ::= SEQUENCE SRSASN_CODE report_quant_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ss_rsrp, 1)); HANDLE_CODE(bref.pack(ss_rsrq, 1)); HANDLE_CODE(bref.pack(ss_sinr, 1)); return SRSASN_SUCCESS; } SRSASN_CODE report_quant_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ss_rsrp, 1)); HANDLE_CODE(bref.unpack(ss_rsrq, 1)); HANDLE_CODE(bref.unpack(ss_sinr, 1)); return SRSASN_SUCCESS; } void report_quant_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("ss-rsrp", ss_rsrp); j.write_bool("ss-rsrq", ss_rsrq); j.write_bool("ss-sinr", ss_sinr); j.end_obj(); } // ReportQuantityWLAN-r13 ::= SEQUENCE SRSASN_CODE report_quant_wlan_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(band_request_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(carrier_info_request_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(available_admission_capacity_request_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(backhaul_dl_bw_request_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(backhaul_ul_bw_request_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(ch_utilization_request_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(station_count_request_wlan_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE report_quant_wlan_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(band_request_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(carrier_info_request_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(available_admission_capacity_request_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(backhaul_dl_bw_request_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(backhaul_ul_bw_request_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(ch_utilization_request_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(station_count_request_wlan_r13_present, 1)); return SRSASN_SUCCESS; } void report_quant_wlan_r13_s::to_json(json_writer& j) const { j.start_obj(); if (band_request_wlan_r13_present) { j.write_str("bandRequestWLAN-r13", "true"); } if (carrier_info_request_wlan_r13_present) { j.write_str("carrierInfoRequestWLAN-r13", "true"); } if (available_admission_capacity_request_wlan_r13_present) { j.write_str("availableAdmissionCapacityRequestWLAN-r13", "true"); } if (backhaul_dl_bw_request_wlan_r13_present) { j.write_str("backhaulDL-BandwidthRequestWLAN-r13", "true"); } if (backhaul_ul_bw_request_wlan_r13_present) { j.write_str("backhaulUL-BandwidthRequestWLAN-r13", "true"); } if (ch_utilization_request_wlan_r13_present) { j.write_str("channelUtilizationRequestWLAN-r13", "true"); } if (station_count_request_wlan_r13_present) { j.write_str("stationCountRequestWLAN-r13", "true"); } j.end_obj(); } // TargetMBSFN-Area-r12 ::= SEQUENCE SRSASN_CODE target_mbsfn_area_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(mbsfn_area_id_r12_present, 1)); if (mbsfn_area_id_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, mbsfn_area_id_r12, (uint8_t)0, (uint8_t)255)); } HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); return SRSASN_SUCCESS; } SRSASN_CODE target_mbsfn_area_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(mbsfn_area_id_r12_present, 1)); if (mbsfn_area_id_r12_present) { HANDLE_CODE(unpack_unalign_integer(mbsfn_area_id_r12, bref, (uint8_t)0, (uint8_t)255)); } HANDLE_CODE(unpack_unalign_integer(carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); return SRSASN_SUCCESS; } void target_mbsfn_area_r12_s::to_json(json_writer& j) const { j.start_obj(); if (mbsfn_area_id_r12_present) { j.write_int("mbsfn-AreaId-r12", mbsfn_area_id_r12); } j.write_int("carrierFreq-r12", carrier_freq_r12); j.end_obj(); } // ThresholdEUTRA ::= CHOICE void thres_eutra_c::destroy_() {} void thres_eutra_c::set(types::options e) { destroy_(); type_ = e; } thres_eutra_c::thres_eutra_c(const thres_eutra_c& other) { type_ = other.type(); switch (type_) { case types::thres_rsrp: c.init(other.c.get()); break; case types::thres_rsrq: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "thres_eutra_c"); } } thres_eutra_c& thres_eutra_c::operator=(const thres_eutra_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::thres_rsrp: c.set(other.c.get()); break; case types::thres_rsrq: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "thres_eutra_c"); } return *this; } void thres_eutra_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::thres_rsrp: j.write_int("threshold-RSRP", c.get()); break; case types::thres_rsrq: j.write_int("threshold-RSRQ", c.get()); break; default: log_invalid_choice_id(type_, "thres_eutra_c"); } j.end_obj(); } SRSASN_CODE thres_eutra_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::thres_rsrp: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)97)); break; case types::thres_rsrq: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)34)); break; default: log_invalid_choice_id(type_, "thres_eutra_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE thres_eutra_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::thres_rsrp: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)97)); break; case types::thres_rsrq: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)34)); break; default: log_invalid_choice_id(type_, "thres_eutra_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ThresholdNR-r15 ::= CHOICE void thres_nr_r15_c::destroy_() {} void thres_nr_r15_c::set(types::options e) { destroy_(); type_ = e; } thres_nr_r15_c::thres_nr_r15_c(const thres_nr_r15_c& other) { type_ = other.type(); switch (type_) { case types::nr_rsrp_r15: c.init(other.c.get()); break; case types::nr_rsrq_r15: c.init(other.c.get()); break; case types::nr_sinr_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "thres_nr_r15_c"); } } thres_nr_r15_c& thres_nr_r15_c::operator=(const thres_nr_r15_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::nr_rsrp_r15: c.set(other.c.get()); break; case types::nr_rsrq_r15: c.set(other.c.get()); break; case types::nr_sinr_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "thres_nr_r15_c"); } return *this; } void thres_nr_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::nr_rsrp_r15: j.write_int("nr-RSRP-r15", c.get()); break; case types::nr_rsrq_r15: j.write_int("nr-RSRQ-r15", c.get()); break; case types::nr_sinr_r15: j.write_int("nr-SINR-r15", c.get()); break; default: log_invalid_choice_id(type_, "thres_nr_r15_c"); } j.end_obj(); } SRSASN_CODE thres_nr_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::nr_rsrp_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; case types::nr_rsrq_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; case types::nr_sinr_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "thres_nr_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE thres_nr_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::nr_rsrp_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; case types::nr_rsrq_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; case types::nr_sinr_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "thres_nr_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ThresholdUTRA ::= CHOICE void thres_utra_c::destroy_() {} void thres_utra_c::set(types::options e) { destroy_(); type_ = e; } thres_utra_c::thres_utra_c(const thres_utra_c& other) { type_ = other.type(); switch (type_) { case types::utra_rscp: c.init(other.c.get()); break; case types::utra_ec_n0: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "thres_utra_c"); } } thres_utra_c& thres_utra_c::operator=(const thres_utra_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::utra_rscp: c.set(other.c.get()); break; case types::utra_ec_n0: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "thres_utra_c"); } return *this; } void thres_utra_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::utra_rscp: j.write_int("utra-RSCP", c.get()); break; case types::utra_ec_n0: j.write_int("utra-EcN0", c.get()); break; default: log_invalid_choice_id(type_, "thres_utra_c"); } j.end_obj(); } SRSASN_CODE thres_utra_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::utra_rscp: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (int8_t)-5, (int8_t)91)); break; case types::utra_ec_n0: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)49)); break; default: log_invalid_choice_id(type_, "thres_utra_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE thres_utra_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::utra_rscp: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (int8_t)-5, (int8_t)91)); break; case types::utra_ec_n0: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)49)); break; default: log_invalid_choice_id(type_, "thres_utra_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UECapabilityEnquiry-v1510-IEs ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_v1510_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(requested_freq_bands_nr_mrdc_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (requested_freq_bands_nr_mrdc_r15_present) { HANDLE_CODE(requested_freq_bands_nr_mrdc_r15.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_v1510_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(requested_freq_bands_nr_mrdc_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (requested_freq_bands_nr_mrdc_r15_present) { HANDLE_CODE(requested_freq_bands_nr_mrdc_r15.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_enquiry_v1510_ies_s::to_json(json_writer& j) const { j.start_obj(); if (requested_freq_bands_nr_mrdc_r15_present) { j.write_str("requestedFreqBandsNR-MRDC-r15", requested_freq_bands_nr_mrdc_r15.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationRequest-v1530-IEs ::= SEQUENCE SRSASN_CODE ue_info_request_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(idle_mode_meas_req_r15_present, 1)); HANDLE_CODE(bref.pack(flight_path_info_req_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (flight_path_info_req_r15_present) { HANDLE_CODE(flight_path_info_req_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(idle_mode_meas_req_r15_present, 1)); HANDLE_CODE(bref.unpack(flight_path_info_req_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (flight_path_info_req_r15_present) { HANDLE_CODE(flight_path_info_req_r15.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_request_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (idle_mode_meas_req_r15_present) { j.write_str("idleModeMeasurementReq-r15", "true"); } if (flight_path_info_req_r15_present) { j.write_fieldname("flightPathInfoReq-r15"); flight_path_info_req_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // UL-DelayConfig-r13 ::= CHOICE void ul_delay_cfg_r13_c::set(types::options e) { type_ = e; } void ul_delay_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("delayThreshold-r13", c.delay_thres_r13.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "ul_delay_cfg_r13_c"); } j.end_obj(); } SRSASN_CODE ul_delay_cfg_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.delay_thres_r13)); break; default: log_invalid_choice_id(type_, "ul_delay_cfg_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_delay_cfg_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.delay_thres_r13, bref)); break; default: log_invalid_choice_id(type_, "ul_delay_cfg_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // WLAN-CarrierInfo-r13 ::= SEQUENCE SRSASN_CODE wlan_carrier_info_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(operating_class_r13_present, 1)); HANDLE_CODE(bref.pack(country_code_r13_present, 1)); HANDLE_CODE(bref.pack(ch_nums_r13_present, 1)); if (operating_class_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, operating_class_r13, (uint8_t)0, (uint8_t)255)); } if (country_code_r13_present) { HANDLE_CODE(pack_enum(bref, country_code_r13)); } if (ch_nums_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ch_nums_r13, 1, 16, UnalignedIntegerPacker(0, 255))); } return SRSASN_SUCCESS; } SRSASN_CODE wlan_carrier_info_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(operating_class_r13_present, 1)); HANDLE_CODE(bref.unpack(country_code_r13_present, 1)); HANDLE_CODE(bref.unpack(ch_nums_r13_present, 1)); if (operating_class_r13_present) { HANDLE_CODE(unpack_unalign_integer(operating_class_r13, bref, (uint8_t)0, (uint8_t)255)); } if (country_code_r13_present) { HANDLE_CODE(unpack_enum(country_code_r13, bref)); } if (ch_nums_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(ch_nums_r13, bref, 1, 16, UnalignedIntegerPacker(0, 255))); } return SRSASN_SUCCESS; } void wlan_carrier_info_r13_s::to_json(json_writer& j) const { j.start_obj(); if (operating_class_r13_present) { j.write_int("operatingClass-r13", operating_class_r13); } if (country_code_r13_present) { j.write_str("countryCode-r13", country_code_r13.to_string()); } if (ch_nums_r13_present) { j.start_array("channelNumbers-r13"); for (uint32_t i1 = 0; i1 < ch_nums_r13.size(); ++i1) { j.write_int(ch_nums_r13[i1]); } j.end_array(); } j.end_obj(); } // WLAN-NameListConfig-r15 ::= CHOICE void wlan_name_list_cfg_r15_c::set(types::options e) { type_ = e; } void wlan_name_list_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { j.write_str(c[i1].to_string()); } j.end_array(); break; default: log_invalid_choice_id(type_, "wlan_name_list_cfg_r15_c"); } j.end_obj(); } SRSASN_CODE wlan_name_list_cfg_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 4)); break; default: log_invalid_choice_id(type_, "wlan_name_list_cfg_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE wlan_name_list_cfg_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 4)); break; default: log_invalid_choice_id(type_, "wlan_name_list_cfg_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CellInfoGERAN-r9 ::= SEQUENCE SRSASN_CODE cell_info_geran_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pci_r9.pack(bref)); HANDLE_CODE(carrier_freq_r9.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, sys_info_r9, 1, 10)); return SRSASN_SUCCESS; } SRSASN_CODE cell_info_geran_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(pci_r9.unpack(bref)); HANDLE_CODE(carrier_freq_r9.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(sys_info_r9, bref, 1, 10)); return SRSASN_SUCCESS; } void cell_info_geran_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("physCellId-r9"); pci_r9.to_json(j); j.write_fieldname("carrierFreq-r9"); carrier_freq_r9.to_json(j); j.start_array("systemInformation-r9"); for (uint32_t i1 = 0; i1 < sys_info_r9.size(); ++i1) { j.write_str(sys_info_r9[i1].to_string()); } j.end_array(); j.end_obj(); } // CellInfoUTRA-FDD-r9 ::= SEQUENCE SRSASN_CODE cell_info_utra_fdd_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pci_r9, (uint16_t)0, (uint16_t)511)); HANDLE_CODE(utra_bcch_container_r9.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_info_utra_fdd_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pci_r9, bref, (uint16_t)0, (uint16_t)511)); HANDLE_CODE(utra_bcch_container_r9.unpack(bref)); return SRSASN_SUCCESS; } void cell_info_utra_fdd_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r9", pci_r9); j.write_str("utra-BCCH-Container-r9", utra_bcch_container_r9.to_string()); j.end_obj(); } // CellInfoUTRA-TDD-r10 ::= SEQUENCE SRSASN_CODE cell_info_utra_tdd_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pci_r10, (uint8_t)0, (uint8_t)127)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r10, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(utra_bcch_container_r10.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_info_utra_tdd_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pci_r10, bref, (uint8_t)0, (uint8_t)127)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r10, bref, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(utra_bcch_container_r10.unpack(bref)); return SRSASN_SUCCESS; } void cell_info_utra_tdd_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r10", pci_r10); j.write_int("carrierFreq-r10", carrier_freq_r10); j.write_str("utra-BCCH-Container-r10", utra_bcch_container_r10.to_string()); j.end_obj(); } // CellInfoUTRA-TDD-r9 ::= SEQUENCE SRSASN_CODE cell_info_utra_tdd_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, pci_r9, (uint8_t)0, (uint8_t)127)); HANDLE_CODE(utra_bcch_container_r9.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_info_utra_tdd_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(pci_r9, bref, (uint8_t)0, (uint8_t)127)); HANDLE_CODE(utra_bcch_container_r9.unpack(bref)); return SRSASN_SUCCESS; } void cell_info_utra_tdd_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r9", pci_r9); j.write_str("utra-BCCH-Container-r9", utra_bcch_container_r9.to_string()); j.end_obj(); } // DRB-CountMSB-Info ::= SEQUENCE SRSASN_CODE drb_count_msb_info_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, drb_id, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, count_msb_ul, (uint32_t)0, (uint32_t)33554431)); HANDLE_CODE(pack_unalign_integer(bref, count_msb_dl, (uint32_t)0, (uint32_t)33554431)); return SRSASN_SUCCESS; } SRSASN_CODE drb_count_msb_info_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(drb_id, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(count_msb_ul, bref, (uint32_t)0, (uint32_t)33554431)); HANDLE_CODE(unpack_unalign_integer(count_msb_dl, bref, (uint32_t)0, (uint32_t)33554431)); return SRSASN_SUCCESS; } void drb_count_msb_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("drb-Identity", drb_id); j.write_int("countMSB-Uplink", count_msb_ul); j.write_int("countMSB-Downlink", count_msb_dl); j.end_obj(); } // IDC-Config-r11 ::= SEQUENCE SRSASN_CODE idc_cfg_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(idc_ind_r11_present, 1)); HANDLE_CODE(bref.pack(autonomous_denial_params_r11_present, 1)); if (autonomous_denial_params_r11_present) { HANDLE_CODE(pack_enum(bref, autonomous_denial_params_r11.autonomous_denial_sfs_r11)); HANDLE_CODE(pack_enum(bref, autonomous_denial_params_r11.autonomous_denial_validity_r11)); } if (ext) { ext_groups_header group_flags(3); group_flags[0] |= idc_ind_ul_ca_r11_present; group_flags[1] |= idc_hardware_sharing_ind_r13_present; rrc_asn1_warn_assert(idc_ind_mrdc_r15_present != (idc_ind_mrdc_r15.get() != NULL), __FILE__, __LINE__); group_flags[2] |= idc_ind_mrdc_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(idc_ind_ul_ca_r11_present, 1)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(idc_hardware_sharing_ind_r13_present, 1)); } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(idc_ind_mrdc_r15_present, 1)); if (idc_ind_mrdc_r15_present) { HANDLE_CODE(idc_ind_mrdc_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE idc_cfg_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(idc_ind_r11_present, 1)); HANDLE_CODE(bref.unpack(autonomous_denial_params_r11_present, 1)); if (autonomous_denial_params_r11_present) { HANDLE_CODE(unpack_enum(autonomous_denial_params_r11.autonomous_denial_sfs_r11, bref)); HANDLE_CODE(unpack_enum(autonomous_denial_params_r11.autonomous_denial_validity_r11, bref)); } if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(idc_ind_ul_ca_r11_present, 1)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(idc_hardware_sharing_ind_r13_present, 1)); } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(idc_ind_mrdc_r15_present, 1)); if (idc_ind_mrdc_r15_present) { idc_ind_mrdc_r15 = make_copy_ptr(idc_ind_mrdc_r15_c_()); HANDLE_CODE(idc_ind_mrdc_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void idc_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); if (idc_ind_r11_present) { j.write_str("idc-Indication-r11", "setup"); } if (autonomous_denial_params_r11_present) { j.write_fieldname("autonomousDenialParameters-r11"); j.start_obj(); j.write_str("autonomousDenialSubframes-r11", autonomous_denial_params_r11.autonomous_denial_sfs_r11.to_string()); j.write_str("autonomousDenialValidity-r11", autonomous_denial_params_r11.autonomous_denial_validity_r11.to_string()); j.end_obj(); } if (ext) { if (idc_ind_ul_ca_r11_present) { j.write_str("idc-Indication-UL-CA-r11", "setup"); } if (idc_hardware_sharing_ind_r13_present) { j.write_str("idc-HardwareSharingIndication-r13", "setup"); } rrc_asn1_warn_assert(idc_ind_mrdc_r15_present != (idc_ind_mrdc_r15.get() != NULL), __FILE__, __LINE__); if (idc_ind_mrdc_r15_present) { j.write_fieldname("idc-Indication-MRDC-r15"); idc_ind_mrdc_r15->to_json(j); } } j.end_obj(); } void idc_cfg_r11_s::idc_ind_mrdc_r15_c_::set(types::options e) { type_ = e; } void idc_cfg_r11_s::idc_ind_mrdc_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.start_array("setup"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { j.write_int(c[i1]); } j.end_array(); break; default: log_invalid_choice_id(type_, "idc_cfg_r11_s::idc_ind_mrdc_r15_c_"); } j.end_obj(); } SRSASN_CODE idc_cfg_r11_s::idc_ind_mrdc_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 32, UnalignedIntegerPacker(0, 3279165))); break; default: log_invalid_choice_id(type_, "idc_cfg_r11_s::idc_ind_mrdc_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE idc_cfg_r11_s::idc_ind_mrdc_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 32, UnalignedIntegerPacker(0, 3279165))); break; default: log_invalid_choice_id(type_, "idc_cfg_r11_s::idc_ind_mrdc_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE SRSASN_CODE logged_meas_cfg_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(bt_name_list_r15_present, 1)); HANDLE_CODE(bref.pack(wlan_name_list_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (bt_name_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, bt_name_list_r15, 1, 4)); } if (wlan_name_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_name_list_r15, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE logged_meas_cfg_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(bt_name_list_r15_present, 1)); HANDLE_CODE(bref.unpack(wlan_name_list_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (bt_name_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(bt_name_list_r15, bref, 1, 4)); } if (wlan_name_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_name_list_r15, bref, 1, 4)); } return SRSASN_SUCCESS; } void logged_meas_cfg_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (bt_name_list_r15_present) { j.start_array("bt-NameList-r15"); for (uint32_t i1 = 0; i1 < bt_name_list_r15.size(); ++i1) { j.write_str(bt_name_list_r15[i1].to_string()); } j.end_array(); } if (wlan_name_list_r15_present) { j.start_array("wlan-NameList-r15"); for (uint32_t i1 = 0; i1 < wlan_name_list_r15.size(); ++i1) { j.write_str(wlan_name_list_r15[i1].to_string()); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // MeasGapConfigPerCC-r14 ::= SEQUENCE SRSASN_CODE meas_gap_cfg_per_cc_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, serv_cell_id_r14, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(meas_gap_cfg_cc_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_gap_cfg_per_cc_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(serv_cell_id_r14, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(meas_gap_cfg_cc_r14.unpack(bref)); return SRSASN_SUCCESS; } void meas_gap_cfg_per_cc_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("servCellId-r14", serv_cell_id_r14); j.write_fieldname("measGapConfigCC-r14"); meas_gap_cfg_cc_r14.to_json(j); j.end_obj(); } // MeasObjectCDMA2000 ::= SEQUENCE SRSASN_CODE meas_obj_cdma2000_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(search_win_size_present, 1)); HANDLE_CODE(bref.pack(offset_freq_present, 1)); HANDLE_CODE(bref.pack(cells_to_rem_list_present, 1)); HANDLE_CODE(bref.pack(cells_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(cell_for_which_to_report_cgi_present, 1)); HANDLE_CODE(pack_enum(bref, cdma2000_type)); HANDLE_CODE(carrier_freq.pack(bref)); if (search_win_size_present) { HANDLE_CODE(pack_unalign_integer(bref, search_win_size, (uint8_t)0, (uint8_t)15)); } if (offset_freq_present) { HANDLE_CODE(pack_unalign_integer(bref, offset_freq, (int8_t)-15, (int8_t)15)); } if (cells_to_rem_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_rem_list, 1, 32, UnalignedIntegerPacker(1, 32))); } if (cells_to_add_mod_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_add_mod_list, 1, 32)); } if (cell_for_which_to_report_cgi_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_for_which_to_report_cgi, (uint16_t)0, (uint16_t)511)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_cdma2000_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(search_win_size_present, 1)); HANDLE_CODE(bref.unpack(offset_freq_present, 1)); HANDLE_CODE(bref.unpack(cells_to_rem_list_present, 1)); HANDLE_CODE(bref.unpack(cells_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(cell_for_which_to_report_cgi_present, 1)); HANDLE_CODE(unpack_enum(cdma2000_type, bref)); HANDLE_CODE(carrier_freq.unpack(bref)); if (search_win_size_present) { HANDLE_CODE(unpack_unalign_integer(search_win_size, bref, (uint8_t)0, (uint8_t)15)); } if (offset_freq_present) { HANDLE_CODE(unpack_unalign_integer(offset_freq, bref, (int8_t)-15, (int8_t)15)); } if (cells_to_rem_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cells_to_rem_list, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (cells_to_add_mod_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cells_to_add_mod_list, bref, 1, 32)); } if (cell_for_which_to_report_cgi_present) { HANDLE_CODE(unpack_unalign_integer(cell_for_which_to_report_cgi, bref, (uint16_t)0, (uint16_t)511)); } return SRSASN_SUCCESS; } void meas_obj_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cdma2000-Type", cdma2000_type.to_string()); j.write_fieldname("carrierFreq"); carrier_freq.to_json(j); if (search_win_size_present) { j.write_int("searchWindowSize", search_win_size); } if (offset_freq_present) { j.write_int("offsetFreq", offset_freq); } if (cells_to_rem_list_present) { j.start_array("cellsToRemoveList"); for (uint32_t i1 = 0; i1 < cells_to_rem_list.size(); ++i1) { j.write_int(cells_to_rem_list[i1]); } j.end_array(); } if (cells_to_add_mod_list_present) { j.start_array("cellsToAddModList"); for (uint32_t i1 = 0; i1 < cells_to_add_mod_list.size(); ++i1) { cells_to_add_mod_list[i1].to_json(j); } j.end_array(); } if (cell_for_which_to_report_cgi_present) { j.write_int("cellForWhichToReportCGI", cell_for_which_to_report_cgi); } j.end_obj(); } // MeasObjectEUTRA ::= SEQUENCE SRSASN_CODE meas_obj_eutra_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(offset_freq_present, 1)); HANDLE_CODE(bref.pack(cells_to_rem_list_present, 1)); HANDLE_CODE(bref.pack(cells_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(black_cells_to_rem_list_present, 1)); HANDLE_CODE(bref.pack(black_cells_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(cell_for_which_to_report_cgi_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(pack_enum(bref, allowed_meas_bw)); HANDLE_CODE(bref.pack(presence_ant_port1, 1)); HANDLE_CODE(neigh_cell_cfg.pack(bref)); if (offset_freq_present) { HANDLE_CODE(pack_enum(bref, offset_freq)); } if (cells_to_rem_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_rem_list, 1, 32, UnalignedIntegerPacker(1, 32))); } if (cells_to_add_mod_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_add_mod_list, 1, 32)); } if (black_cells_to_rem_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, black_cells_to_rem_list, 1, 32, UnalignedIntegerPacker(1, 32))); } if (black_cells_to_add_mod_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, black_cells_to_add_mod_list, 1, 32)); } if (cell_for_which_to_report_cgi_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_for_which_to_report_cgi, (uint16_t)0, (uint16_t)503)); } if (ext) { ext_groups_header group_flags(6); group_flags[0] |= meas_cycle_scell_r10_present; rrc_asn1_warn_assert(meas_sf_pattern_cfg_neigh_r10_present != (meas_sf_pattern_cfg_neigh_r10.get() != NULL), __FILE__, __LINE__); group_flags[0] |= meas_sf_pattern_cfg_neigh_r10_present; group_flags[1] |= wideband_rsrq_meas_r11_present; rrc_asn1_warn_assert(alt_ttt_cells_to_rem_list_r12_present != (alt_ttt_cells_to_rem_list_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= alt_ttt_cells_to_rem_list_r12_present; rrc_asn1_warn_assert(alt_ttt_cells_to_add_mod_list_r12_present != (alt_ttt_cells_to_add_mod_list_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= alt_ttt_cells_to_add_mod_list_r12_present; rrc_asn1_warn_assert(t312_r12_present != (t312_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= t312_r12_present; group_flags[2] |= reduced_meas_performance_r12_present; rrc_asn1_warn_assert(meas_ds_cfg_r12_present != (meas_ds_cfg_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= meas_ds_cfg_r12_present; rrc_asn1_warn_assert(white_cells_to_rem_list_r13_present != (white_cells_to_rem_list_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= white_cells_to_rem_list_r13_present; rrc_asn1_warn_assert(white_cells_to_add_mod_list_r13_present != (white_cells_to_add_mod_list_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= white_cells_to_add_mod_list_r13_present; rrc_asn1_warn_assert(rmtc_cfg_r13_present != (rmtc_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= rmtc_cfg_r13_present; group_flags[3] |= carrier_freq_r13_present; rrc_asn1_warn_assert(tx_res_pool_to_rem_list_r14_present != (tx_res_pool_to_rem_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= tx_res_pool_to_rem_list_r14_present; rrc_asn1_warn_assert(tx_res_pool_to_add_list_r14_present != (tx_res_pool_to_add_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= tx_res_pool_to_add_list_r14_present; group_flags[4] |= fembms_mixed_carrier_r14_present; rrc_asn1_warn_assert(meas_sensing_cfg_r15_present != (meas_sensing_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[5] |= meas_sensing_cfg_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_cycle_scell_r10_present, 1)); HANDLE_CODE(bref.pack(meas_sf_pattern_cfg_neigh_r10_present, 1)); if (meas_cycle_scell_r10_present) { HANDLE_CODE(pack_enum(bref, meas_cycle_scell_r10)); } if (meas_sf_pattern_cfg_neigh_r10_present) { HANDLE_CODE(meas_sf_pattern_cfg_neigh_r10->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(wideband_rsrq_meas_r11_present, 1)); if (wideband_rsrq_meas_r11_present) { HANDLE_CODE(bref.pack(wideband_rsrq_meas_r11, 1)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(alt_ttt_cells_to_rem_list_r12_present, 1)); HANDLE_CODE(bref.pack(alt_ttt_cells_to_add_mod_list_r12_present, 1)); HANDLE_CODE(bref.pack(t312_r12_present, 1)); HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(bref.pack(meas_ds_cfg_r12_present, 1)); if (alt_ttt_cells_to_rem_list_r12_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *alt_ttt_cells_to_rem_list_r12, 1, 32, UnalignedIntegerPacker(1, 32))); } if (alt_ttt_cells_to_add_mod_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *alt_ttt_cells_to_add_mod_list_r12, 1, 32)); } if (t312_r12_present) { HANDLE_CODE(t312_r12->pack(bref)); } if (reduced_meas_performance_r12_present) { HANDLE_CODE(bref.pack(reduced_meas_performance_r12, 1)); } if (meas_ds_cfg_r12_present) { HANDLE_CODE(meas_ds_cfg_r12->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(white_cells_to_rem_list_r13_present, 1)); HANDLE_CODE(bref.pack(white_cells_to_add_mod_list_r13_present, 1)); HANDLE_CODE(bref.pack(rmtc_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(carrier_freq_r13_present, 1)); if (white_cells_to_rem_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *white_cells_to_rem_list_r13, 1, 32, UnalignedIntegerPacker(1, 32))); } if (white_cells_to_add_mod_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *white_cells_to_add_mod_list_r13, 1, 32)); } if (rmtc_cfg_r13_present) { HANDLE_CODE(rmtc_cfg_r13->pack(bref)); } if (carrier_freq_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r13, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(tx_res_pool_to_rem_list_r14_present, 1)); HANDLE_CODE(bref.pack(tx_res_pool_to_add_list_r14_present, 1)); HANDLE_CODE(bref.pack(fembms_mixed_carrier_r14_present, 1)); if (tx_res_pool_to_rem_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *tx_res_pool_to_rem_list_r14, 1, 72, UnalignedIntegerPacker(1, 72))); } if (tx_res_pool_to_add_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *tx_res_pool_to_add_list_r14, 1, 72, UnalignedIntegerPacker(1, 72))); } if (fembms_mixed_carrier_r14_present) { HANDLE_CODE(bref.pack(fembms_mixed_carrier_r14, 1)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_sensing_cfg_r15_present, 1)); if (meas_sensing_cfg_r15_present) { HANDLE_CODE(meas_sensing_cfg_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_eutra_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(offset_freq_present, 1)); HANDLE_CODE(bref.unpack(cells_to_rem_list_present, 1)); HANDLE_CODE(bref.unpack(cells_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(black_cells_to_rem_list_present, 1)); HANDLE_CODE(bref.unpack(black_cells_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(cell_for_which_to_report_cgi_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq, bref, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(unpack_enum(allowed_meas_bw, bref)); HANDLE_CODE(bref.unpack(presence_ant_port1, 1)); HANDLE_CODE(neigh_cell_cfg.unpack(bref)); if (offset_freq_present) { HANDLE_CODE(unpack_enum(offset_freq, bref)); } if (cells_to_rem_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cells_to_rem_list, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (cells_to_add_mod_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cells_to_add_mod_list, bref, 1, 32)); } if (black_cells_to_rem_list_present) { HANDLE_CODE(unpack_dyn_seq_of(black_cells_to_rem_list, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (black_cells_to_add_mod_list_present) { HANDLE_CODE(unpack_dyn_seq_of(black_cells_to_add_mod_list, bref, 1, 32)); } if (cell_for_which_to_report_cgi_present) { HANDLE_CODE(unpack_unalign_integer(cell_for_which_to_report_cgi, bref, (uint16_t)0, (uint16_t)503)); } if (ext) { ext_groups_header group_flags(6); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_cycle_scell_r10_present, 1)); HANDLE_CODE(bref.unpack(meas_sf_pattern_cfg_neigh_r10_present, 1)); if (meas_cycle_scell_r10_present) { HANDLE_CODE(unpack_enum(meas_cycle_scell_r10, bref)); } if (meas_sf_pattern_cfg_neigh_r10_present) { meas_sf_pattern_cfg_neigh_r10 = make_copy_ptr(meas_sf_pattern_cfg_neigh_r10_c()); HANDLE_CODE(meas_sf_pattern_cfg_neigh_r10->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(wideband_rsrq_meas_r11_present, 1)); if (wideband_rsrq_meas_r11_present) { HANDLE_CODE(bref.unpack(wideband_rsrq_meas_r11, 1)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(alt_ttt_cells_to_rem_list_r12_present, 1)); HANDLE_CODE(bref.unpack(alt_ttt_cells_to_add_mod_list_r12_present, 1)); HANDLE_CODE(bref.unpack(t312_r12_present, 1)); HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_ds_cfg_r12_present, 1)); if (alt_ttt_cells_to_rem_list_r12_present) { alt_ttt_cells_to_rem_list_r12 = make_copy_ptr(cell_idx_list_l()); HANDLE_CODE( unpack_dyn_seq_of(*alt_ttt_cells_to_rem_list_r12, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (alt_ttt_cells_to_add_mod_list_r12_present) { alt_ttt_cells_to_add_mod_list_r12 = make_copy_ptr(alt_ttt_cells_to_add_mod_list_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*alt_ttt_cells_to_add_mod_list_r12, bref, 1, 32)); } if (t312_r12_present) { t312_r12 = make_copy_ptr(t312_r12_c_()); HANDLE_CODE(t312_r12->unpack(bref)); } if (reduced_meas_performance_r12_present) { HANDLE_CODE(bref.unpack(reduced_meas_performance_r12, 1)); } if (meas_ds_cfg_r12_present) { meas_ds_cfg_r12 = make_copy_ptr(meas_ds_cfg_r12_c()); HANDLE_CODE(meas_ds_cfg_r12->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(white_cells_to_rem_list_r13_present, 1)); HANDLE_CODE(bref.unpack(white_cells_to_add_mod_list_r13_present, 1)); HANDLE_CODE(bref.unpack(rmtc_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(carrier_freq_r13_present, 1)); if (white_cells_to_rem_list_r13_present) { white_cells_to_rem_list_r13 = make_copy_ptr(cell_idx_list_l()); HANDLE_CODE( unpack_dyn_seq_of(*white_cells_to_rem_list_r13, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (white_cells_to_add_mod_list_r13_present) { white_cells_to_add_mod_list_r13 = make_copy_ptr(white_cells_to_add_mod_list_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*white_cells_to_add_mod_list_r13, bref, 1, 32)); } if (rmtc_cfg_r13_present) { rmtc_cfg_r13 = make_copy_ptr(rmtc_cfg_r13_c()); HANDLE_CODE(rmtc_cfg_r13->unpack(bref)); } if (carrier_freq_r13_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_r13, bref, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(tx_res_pool_to_rem_list_r14_present, 1)); HANDLE_CODE(bref.unpack(tx_res_pool_to_add_list_r14_present, 1)); HANDLE_CODE(bref.unpack(fembms_mixed_carrier_r14_present, 1)); if (tx_res_pool_to_rem_list_r14_present) { tx_res_pool_to_rem_list_r14 = make_copy_ptr(tx_res_pool_meas_list_r14_l()); HANDLE_CODE( unpack_dyn_seq_of(*tx_res_pool_to_rem_list_r14, bref, 1, 72, UnalignedIntegerPacker(1, 72))); } if (tx_res_pool_to_add_list_r14_present) { tx_res_pool_to_add_list_r14 = make_copy_ptr(tx_res_pool_meas_list_r14_l()); HANDLE_CODE( unpack_dyn_seq_of(*tx_res_pool_to_add_list_r14, bref, 1, 72, UnalignedIntegerPacker(1, 72))); } if (fembms_mixed_carrier_r14_present) { HANDLE_CODE(bref.unpack(fembms_mixed_carrier_r14, 1)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_sensing_cfg_r15_present, 1)); if (meas_sensing_cfg_r15_present) { meas_sensing_cfg_r15 = make_copy_ptr(meas_sensing_cfg_r15_s()); HANDLE_CODE(meas_sensing_cfg_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void meas_obj_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq", carrier_freq); j.write_str("allowedMeasBandwidth", allowed_meas_bw.to_string()); j.write_bool("presenceAntennaPort1", presence_ant_port1); j.write_str("neighCellConfig", neigh_cell_cfg.to_string()); if (offset_freq_present) { j.write_str("offsetFreq", offset_freq.to_string()); } if (cells_to_rem_list_present) { j.start_array("cellsToRemoveList"); for (uint32_t i1 = 0; i1 < cells_to_rem_list.size(); ++i1) { j.write_int(cells_to_rem_list[i1]); } j.end_array(); } if (cells_to_add_mod_list_present) { j.start_array("cellsToAddModList"); for (uint32_t i1 = 0; i1 < cells_to_add_mod_list.size(); ++i1) { cells_to_add_mod_list[i1].to_json(j); } j.end_array(); } if (black_cells_to_rem_list_present) { j.start_array("blackCellsToRemoveList"); for (uint32_t i1 = 0; i1 < black_cells_to_rem_list.size(); ++i1) { j.write_int(black_cells_to_rem_list[i1]); } j.end_array(); } if (black_cells_to_add_mod_list_present) { j.start_array("blackCellsToAddModList"); for (uint32_t i1 = 0; i1 < black_cells_to_add_mod_list.size(); ++i1) { black_cells_to_add_mod_list[i1].to_json(j); } j.end_array(); } if (cell_for_which_to_report_cgi_present) { j.write_int("cellForWhichToReportCGI", cell_for_which_to_report_cgi); } if (ext) { if (meas_cycle_scell_r10_present) { j.write_str("measCycleSCell-r10", meas_cycle_scell_r10.to_string()); } rrc_asn1_warn_assert(meas_sf_pattern_cfg_neigh_r10_present != (meas_sf_pattern_cfg_neigh_r10.get() != NULL), __FILE__, __LINE__); if (meas_sf_pattern_cfg_neigh_r10_present) { j.write_fieldname("measSubframePatternConfigNeigh-r10"); meas_sf_pattern_cfg_neigh_r10->to_json(j); } if (wideband_rsrq_meas_r11_present) { j.write_bool("widebandRSRQ-Meas-r11", wideband_rsrq_meas_r11); } rrc_asn1_warn_assert(alt_ttt_cells_to_rem_list_r12_present != (alt_ttt_cells_to_rem_list_r12.get() != NULL), __FILE__, __LINE__); if (alt_ttt_cells_to_rem_list_r12_present) { j.start_array("altTTT-CellsToRemoveList-r12"); for (uint32_t i1 = 0; i1 < alt_ttt_cells_to_rem_list_r12->size(); ++i1) { j.write_int(((*alt_ttt_cells_to_rem_list_r12)[i1])); } j.end_array(); } rrc_asn1_warn_assert(alt_ttt_cells_to_add_mod_list_r12_present != (alt_ttt_cells_to_add_mod_list_r12.get() != NULL), __FILE__, __LINE__); if (alt_ttt_cells_to_add_mod_list_r12_present) { j.start_array("altTTT-CellsToAddModList-r12"); for (uint32_t i1 = 0; i1 < alt_ttt_cells_to_add_mod_list_r12->size(); ++i1) { ((*alt_ttt_cells_to_add_mod_list_r12)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(t312_r12_present != (t312_r12.get() != NULL), __FILE__, __LINE__); if (t312_r12_present) { j.write_fieldname("t312-r12"); t312_r12->to_json(j); } if (reduced_meas_performance_r12_present) { j.write_bool("reducedMeasPerformance-r12", reduced_meas_performance_r12); } rrc_asn1_warn_assert(meas_ds_cfg_r12_present != (meas_ds_cfg_r12.get() != NULL), __FILE__, __LINE__); if (meas_ds_cfg_r12_present) { j.write_fieldname("measDS-Config-r12"); meas_ds_cfg_r12->to_json(j); } rrc_asn1_warn_assert(white_cells_to_rem_list_r13_present != (white_cells_to_rem_list_r13.get() != NULL), __FILE__, __LINE__); if (white_cells_to_rem_list_r13_present) { j.start_array("whiteCellsToRemoveList-r13"); for (uint32_t i1 = 0; i1 < white_cells_to_rem_list_r13->size(); ++i1) { j.write_int(((*white_cells_to_rem_list_r13)[i1])); } j.end_array(); } rrc_asn1_warn_assert(white_cells_to_add_mod_list_r13_present != (white_cells_to_add_mod_list_r13.get() != NULL), __FILE__, __LINE__); if (white_cells_to_add_mod_list_r13_present) { j.start_array("whiteCellsToAddModList-r13"); for (uint32_t i1 = 0; i1 < white_cells_to_add_mod_list_r13->size(); ++i1) { ((*white_cells_to_add_mod_list_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(rmtc_cfg_r13_present != (rmtc_cfg_r13.get() != NULL), __FILE__, __LINE__); if (rmtc_cfg_r13_present) { j.write_fieldname("rmtc-Config-r13"); rmtc_cfg_r13->to_json(j); } if (carrier_freq_r13_present) { j.write_int("carrierFreq-r13", carrier_freq_r13); } rrc_asn1_warn_assert(tx_res_pool_to_rem_list_r14_present != (tx_res_pool_to_rem_list_r14.get() != NULL), __FILE__, __LINE__); if (tx_res_pool_to_rem_list_r14_present) { j.start_array("tx-ResourcePoolToRemoveList-r14"); for (uint32_t i1 = 0; i1 < tx_res_pool_to_rem_list_r14->size(); ++i1) { j.write_int(((*tx_res_pool_to_rem_list_r14)[i1])); } j.end_array(); } rrc_asn1_warn_assert(tx_res_pool_to_add_list_r14_present != (tx_res_pool_to_add_list_r14.get() != NULL), __FILE__, __LINE__); if (tx_res_pool_to_add_list_r14_present) { j.start_array("tx-ResourcePoolToAddList-r14"); for (uint32_t i1 = 0; i1 < tx_res_pool_to_add_list_r14->size(); ++i1) { j.write_int(((*tx_res_pool_to_add_list_r14)[i1])); } j.end_array(); } if (fembms_mixed_carrier_r14_present) { j.write_bool("fembms-MixedCarrier-r14", fembms_mixed_carrier_r14); } rrc_asn1_warn_assert(meas_sensing_cfg_r15_present != (meas_sensing_cfg_r15.get() != NULL), __FILE__, __LINE__); if (meas_sensing_cfg_r15_present) { j.write_fieldname("measSensing-Config-r15"); meas_sensing_cfg_r15->to_json(j); } } j.end_obj(); } void meas_obj_eutra_s::t312_r12_c_::set(types::options e) { type_ = e; } void meas_obj_eutra_s::t312_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "meas_obj_eutra_s::t312_r12_c_"); } j.end_obj(); } SRSASN_CODE meas_obj_eutra_s::t312_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "meas_obj_eutra_s::t312_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_eutra_s::t312_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "meas_obj_eutra_s::t312_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasObjectEUTRA-v9e0 ::= SEQUENCE SRSASN_CODE meas_obj_eutra_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_v9e0, (uint32_t)65536, (uint32_t)262143)); return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_eutra_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_v9e0, bref, (uint32_t)65536, (uint32_t)262143)); return SRSASN_SUCCESS; } void meas_obj_eutra_v9e0_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-v9e0", carrier_freq_v9e0); j.end_obj(); } // MeasObjectGERAN ::= SEQUENCE SRSASN_CODE meas_obj_geran_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(offset_freq_present, 1)); HANDLE_CODE(bref.pack(ncc_permitted_present, 1)); HANDLE_CODE(bref.pack(cell_for_which_to_report_cgi_present, 1)); HANDLE_CODE(carrier_freqs.pack(bref)); if (offset_freq_present) { HANDLE_CODE(pack_unalign_integer(bref, offset_freq, (int8_t)-15, (int8_t)15)); } if (ncc_permitted_present) { HANDLE_CODE(ncc_permitted.pack(bref)); } if (cell_for_which_to_report_cgi_present) { HANDLE_CODE(cell_for_which_to_report_cgi.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_geran_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(offset_freq_present, 1)); HANDLE_CODE(bref.unpack(ncc_permitted_present, 1)); HANDLE_CODE(bref.unpack(cell_for_which_to_report_cgi_present, 1)); HANDLE_CODE(carrier_freqs.unpack(bref)); if (offset_freq_present) { HANDLE_CODE(unpack_unalign_integer(offset_freq, bref, (int8_t)-15, (int8_t)15)); } if (ncc_permitted_present) { HANDLE_CODE(ncc_permitted.unpack(bref)); } if (cell_for_which_to_report_cgi_present) { HANDLE_CODE(cell_for_which_to_report_cgi.unpack(bref)); } return SRSASN_SUCCESS; } void meas_obj_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("carrierFreqs"); carrier_freqs.to_json(j); if (offset_freq_present) { j.write_int("offsetFreq", offset_freq); } if (ncc_permitted_present) { j.write_str("ncc-Permitted", ncc_permitted.to_string()); } if (cell_for_which_to_report_cgi_present) { j.write_fieldname("cellForWhichToReportCGI"); cell_for_which_to_report_cgi.to_json(j); } j.end_obj(); } // MeasObjectNR-r15 ::= SEQUENCE SRSASN_CODE meas_obj_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(thresh_rs_idx_r15_present, 1)); HANDLE_CODE(bref.pack(max_rs_idx_cell_qual_r15_present, 1)); HANDLE_CODE(bref.pack(offset_freq_r15_present, 1)); HANDLE_CODE(bref.pack(black_cells_to_rem_list_r15_present, 1)); HANDLE_CODE(bref.pack(black_cells_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.pack(cells_for_which_to_report_sftd_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r15, (uint32_t)0, (uint32_t)3279165)); HANDLE_CODE(rs_cfg_ssb_r15.pack(bref)); if (thresh_rs_idx_r15_present) { HANDLE_CODE(thresh_rs_idx_r15.pack(bref)); } if (max_rs_idx_cell_qual_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, max_rs_idx_cell_qual_r15, (uint8_t)1, (uint8_t)16)); } if (offset_freq_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, offset_freq_r15, (int8_t)-15, (int8_t)15)); } if (black_cells_to_rem_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, black_cells_to_rem_list_r15, 1, 32, UnalignedIntegerPacker(1, 32))); } if (black_cells_to_add_mod_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, black_cells_to_add_mod_list_r15, 1, 32)); } HANDLE_CODE(pack_unalign_integer(bref, quant_cfg_set_r15, (uint8_t)1, (uint8_t)2)); if (cells_for_which_to_report_sftd_r15_present) { HANDLE_CODE( pack_dyn_seq_of(bref, cells_for_which_to_report_sftd_r15, 1, 3, UnalignedIntegerPacker(0, 1007))); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= cell_for_which_to_report_cgi_r15_present; group_flags[0] |= derive_ssb_idx_from_cell_r15_present; rrc_asn1_warn_assert(ss_rssi_meas_r15_present != (ss_rssi_meas_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ss_rssi_meas_r15_present; rrc_asn1_warn_assert(band_nr_r15_present != (band_nr_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= band_nr_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cell_for_which_to_report_cgi_r15_present, 1)); HANDLE_CODE(bref.pack(derive_ssb_idx_from_cell_r15_present, 1)); HANDLE_CODE(bref.pack(ss_rssi_meas_r15_present, 1)); HANDLE_CODE(bref.pack(band_nr_r15_present, 1)); if (cell_for_which_to_report_cgi_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_for_which_to_report_cgi_r15, (uint16_t)0, (uint16_t)1007)); } if (derive_ssb_idx_from_cell_r15_present) { HANDLE_CODE(bref.pack(derive_ssb_idx_from_cell_r15, 1)); } if (ss_rssi_meas_r15_present) { HANDLE_CODE(ss_rssi_meas_r15->pack(bref)); } if (band_nr_r15_present) { HANDLE_CODE(band_nr_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(thresh_rs_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(max_rs_idx_cell_qual_r15_present, 1)); HANDLE_CODE(bref.unpack(offset_freq_r15_present, 1)); HANDLE_CODE(bref.unpack(black_cells_to_rem_list_r15_present, 1)); HANDLE_CODE(bref.unpack(black_cells_to_add_mod_list_r15_present, 1)); HANDLE_CODE(bref.unpack(cells_for_which_to_report_sftd_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r15, bref, (uint32_t)0, (uint32_t)3279165)); HANDLE_CODE(rs_cfg_ssb_r15.unpack(bref)); if (thresh_rs_idx_r15_present) { HANDLE_CODE(thresh_rs_idx_r15.unpack(bref)); } if (max_rs_idx_cell_qual_r15_present) { HANDLE_CODE(unpack_unalign_integer(max_rs_idx_cell_qual_r15, bref, (uint8_t)1, (uint8_t)16)); } if (offset_freq_r15_present) { HANDLE_CODE(unpack_unalign_integer(offset_freq_r15, bref, (int8_t)-15, (int8_t)15)); } if (black_cells_to_rem_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(black_cells_to_rem_list_r15, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (black_cells_to_add_mod_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(black_cells_to_add_mod_list_r15, bref, 1, 32)); } HANDLE_CODE(unpack_unalign_integer(quant_cfg_set_r15, bref, (uint8_t)1, (uint8_t)2)); if (cells_for_which_to_report_sftd_r15_present) { HANDLE_CODE( unpack_dyn_seq_of(cells_for_which_to_report_sftd_r15, bref, 1, 3, UnalignedIntegerPacker(0, 1007))); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cell_for_which_to_report_cgi_r15_present, 1)); HANDLE_CODE(bref.unpack(derive_ssb_idx_from_cell_r15_present, 1)); HANDLE_CODE(bref.unpack(ss_rssi_meas_r15_present, 1)); HANDLE_CODE(bref.unpack(band_nr_r15_present, 1)); if (cell_for_which_to_report_cgi_r15_present) { HANDLE_CODE(unpack_unalign_integer(cell_for_which_to_report_cgi_r15, bref, (uint16_t)0, (uint16_t)1007)); } if (derive_ssb_idx_from_cell_r15_present) { HANDLE_CODE(bref.unpack(derive_ssb_idx_from_cell_r15, 1)); } if (ss_rssi_meas_r15_present) { ss_rssi_meas_r15 = make_copy_ptr(ss_rssi_meas_r15_s()); HANDLE_CODE(ss_rssi_meas_r15->unpack(bref)); } if (band_nr_r15_present) { band_nr_r15 = make_copy_ptr(band_nr_r15_c_()); HANDLE_CODE(band_nr_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void meas_obj_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r15", carrier_freq_r15); j.write_fieldname("rs-ConfigSSB-r15"); rs_cfg_ssb_r15.to_json(j); if (thresh_rs_idx_r15_present) { j.write_fieldname("threshRS-Index-r15"); thresh_rs_idx_r15.to_json(j); } if (max_rs_idx_cell_qual_r15_present) { j.write_int("maxRS-IndexCellQual-r15", max_rs_idx_cell_qual_r15); } if (offset_freq_r15_present) { j.write_int("offsetFreq-r15", offset_freq_r15); } if (black_cells_to_rem_list_r15_present) { j.start_array("blackCellsToRemoveList-r15"); for (uint32_t i1 = 0; i1 < black_cells_to_rem_list_r15.size(); ++i1) { j.write_int(black_cells_to_rem_list_r15[i1]); } j.end_array(); } if (black_cells_to_add_mod_list_r15_present) { j.start_array("blackCellsToAddModList-r15"); for (uint32_t i1 = 0; i1 < black_cells_to_add_mod_list_r15.size(); ++i1) { black_cells_to_add_mod_list_r15[i1].to_json(j); } j.end_array(); } j.write_int("quantityConfigSet-r15", quant_cfg_set_r15); if (cells_for_which_to_report_sftd_r15_present) { j.start_array("cellsForWhichToReportSFTD-r15"); for (uint32_t i1 = 0; i1 < cells_for_which_to_report_sftd_r15.size(); ++i1) { j.write_int(cells_for_which_to_report_sftd_r15[i1]); } j.end_array(); } if (ext) { if (cell_for_which_to_report_cgi_r15_present) { j.write_int("cellForWhichToReportCGI-r15", cell_for_which_to_report_cgi_r15); } if (derive_ssb_idx_from_cell_r15_present) { j.write_bool("deriveSSB-IndexFromCell-r15", derive_ssb_idx_from_cell_r15); } rrc_asn1_warn_assert(ss_rssi_meas_r15_present != (ss_rssi_meas_r15.get() != NULL), __FILE__, __LINE__); if (ss_rssi_meas_r15_present) { j.write_fieldname("ss-RSSI-Measurement-r15"); ss_rssi_meas_r15->to_json(j); } rrc_asn1_warn_assert(band_nr_r15_present != (band_nr_r15.get() != NULL), __FILE__, __LINE__); if (band_nr_r15_present) { j.write_fieldname("bandNR-r15"); band_nr_r15->to_json(j); } } j.end_obj(); } void meas_obj_nr_r15_s::band_nr_r15_c_::set(types::options e) { type_ = e; } void meas_obj_nr_r15_s::band_nr_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_int("setup", c); break; default: log_invalid_choice_id(type_, "meas_obj_nr_r15_s::band_nr_r15_c_"); } j.end_obj(); } SRSASN_CODE meas_obj_nr_r15_s::band_nr_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c, (uint16_t)1, (uint16_t)1024)); break; default: log_invalid_choice_id(type_, "meas_obj_nr_r15_s::band_nr_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_nr_r15_s::band_nr_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c, bref, (uint16_t)1, (uint16_t)1024)); break; default: log_invalid_choice_id(type_, "meas_obj_nr_r15_s::band_nr_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasObjectUTRA ::= SEQUENCE SRSASN_CODE meas_obj_utra_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(offset_freq_present, 1)); HANDLE_CODE(bref.pack(cells_to_rem_list_present, 1)); HANDLE_CODE(bref.pack(cells_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(cell_for_which_to_report_cgi_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq, (uint16_t)0, (uint16_t)16383)); if (offset_freq_present) { HANDLE_CODE(pack_unalign_integer(bref, offset_freq, (int8_t)-15, (int8_t)15)); } if (cells_to_rem_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_rem_list, 1, 32, UnalignedIntegerPacker(1, 32))); } if (cells_to_add_mod_list_present) { HANDLE_CODE(cells_to_add_mod_list.pack(bref)); } if (cell_for_which_to_report_cgi_present) { HANDLE_CODE(cell_for_which_to_report_cgi.pack(bref)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(csg_allowed_report_cells_v930_present != (csg_allowed_report_cells_v930.get() != NULL), __FILE__, __LINE__); group_flags[0] |= csg_allowed_report_cells_v930_present; group_flags[1] |= reduced_meas_performance_r12_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(csg_allowed_report_cells_v930_present, 1)); if (csg_allowed_report_cells_v930_present) { HANDLE_CODE(csg_allowed_report_cells_v930->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); if (reduced_meas_performance_r12_present) { HANDLE_CODE(bref.pack(reduced_meas_performance_r12, 1)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_utra_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(offset_freq_present, 1)); HANDLE_CODE(bref.unpack(cells_to_rem_list_present, 1)); HANDLE_CODE(bref.unpack(cells_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(cell_for_which_to_report_cgi_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq, bref, (uint16_t)0, (uint16_t)16383)); if (offset_freq_present) { HANDLE_CODE(unpack_unalign_integer(offset_freq, bref, (int8_t)-15, (int8_t)15)); } if (cells_to_rem_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cells_to_rem_list, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (cells_to_add_mod_list_present) { HANDLE_CODE(cells_to_add_mod_list.unpack(bref)); } if (cell_for_which_to_report_cgi_present) { HANDLE_CODE(cell_for_which_to_report_cgi.unpack(bref)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(csg_allowed_report_cells_v930_present, 1)); if (csg_allowed_report_cells_v930_present) { csg_allowed_report_cells_v930 = make_copy_ptr(csg_allowed_report_cells_r9_s()); HANDLE_CODE(csg_allowed_report_cells_v930->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); if (reduced_meas_performance_r12_present) { HANDLE_CODE(bref.unpack(reduced_meas_performance_r12, 1)); } } } return SRSASN_SUCCESS; } void meas_obj_utra_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq", carrier_freq); if (offset_freq_present) { j.write_int("offsetFreq", offset_freq); } if (cells_to_rem_list_present) { j.start_array("cellsToRemoveList"); for (uint32_t i1 = 0; i1 < cells_to_rem_list.size(); ++i1) { j.write_int(cells_to_rem_list[i1]); } j.end_array(); } if (cells_to_add_mod_list_present) { j.write_fieldname("cellsToAddModList"); cells_to_add_mod_list.to_json(j); } if (cell_for_which_to_report_cgi_present) { j.write_fieldname("cellForWhichToReportCGI"); cell_for_which_to_report_cgi.to_json(j); } if (ext) { rrc_asn1_warn_assert(csg_allowed_report_cells_v930_present != (csg_allowed_report_cells_v930.get() != NULL), __FILE__, __LINE__); if (csg_allowed_report_cells_v930_present) { j.write_fieldname("csg-allowedReportingCells-v930"); csg_allowed_report_cells_v930->to_json(j); } if (reduced_meas_performance_r12_present) { j.write_bool("reducedMeasPerformance-r12", reduced_meas_performance_r12); } } j.end_obj(); } void meas_obj_utra_s::cells_to_add_mod_list_c_::destroy_() { switch (type_) { case types::cells_to_add_mod_list_utra_fdd: c.destroy(); break; case types::cells_to_add_mod_list_utra_tdd: c.destroy(); break; default: break; } } void meas_obj_utra_s::cells_to_add_mod_list_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cells_to_add_mod_list_utra_fdd: c.init(); break; case types::cells_to_add_mod_list_utra_tdd: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cells_to_add_mod_list_c_"); } } meas_obj_utra_s::cells_to_add_mod_list_c_::cells_to_add_mod_list_c_( const meas_obj_utra_s::cells_to_add_mod_list_c_& other) { type_ = other.type(); switch (type_) { case types::cells_to_add_mod_list_utra_fdd: c.init(other.c.get()); break; case types::cells_to_add_mod_list_utra_tdd: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cells_to_add_mod_list_c_"); } } meas_obj_utra_s::cells_to_add_mod_list_c_& meas_obj_utra_s::cells_to_add_mod_list_c_:: operator=(const meas_obj_utra_s::cells_to_add_mod_list_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cells_to_add_mod_list_utra_fdd: c.set(other.c.get()); break; case types::cells_to_add_mod_list_utra_tdd: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cells_to_add_mod_list_c_"); } return *this; } void meas_obj_utra_s::cells_to_add_mod_list_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cells_to_add_mod_list_utra_fdd: j.start_array("cellsToAddModListUTRA-FDD"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::cells_to_add_mod_list_utra_tdd: j.start_array("cellsToAddModListUTRA-TDD"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cells_to_add_mod_list_c_"); } j.end_obj(); } SRSASN_CODE meas_obj_utra_s::cells_to_add_mod_list_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cells_to_add_mod_list_utra_fdd: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 32)); break; case types::cells_to_add_mod_list_utra_tdd: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 32)); break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cells_to_add_mod_list_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_utra_s::cells_to_add_mod_list_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cells_to_add_mod_list_utra_fdd: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 32)); break; case types::cells_to_add_mod_list_utra_tdd: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 32)); break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cells_to_add_mod_list_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_obj_utra_s::cell_for_which_to_report_cgi_c_::destroy_() {} void meas_obj_utra_s::cell_for_which_to_report_cgi_c_::set(types::options e) { destroy_(); type_ = e; } meas_obj_utra_s::cell_for_which_to_report_cgi_c_::cell_for_which_to_report_cgi_c_( const meas_obj_utra_s::cell_for_which_to_report_cgi_c_& other) { type_ = other.type(); switch (type_) { case types::utra_fdd: c.init(other.c.get()); break; case types::utra_tdd: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cell_for_which_to_report_cgi_c_"); } } meas_obj_utra_s::cell_for_which_to_report_cgi_c_& meas_obj_utra_s::cell_for_which_to_report_cgi_c_:: operator=(const meas_obj_utra_s::cell_for_which_to_report_cgi_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::utra_fdd: c.set(other.c.get()); break; case types::utra_tdd: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cell_for_which_to_report_cgi_c_"); } return *this; } void meas_obj_utra_s::cell_for_which_to_report_cgi_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::utra_fdd: j.write_int("utra-FDD", c.get()); break; case types::utra_tdd: j.write_int("utra-TDD", c.get()); break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cell_for_which_to_report_cgi_c_"); } j.end_obj(); } SRSASN_CODE meas_obj_utra_s::cell_for_which_to_report_cgi_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::utra_fdd: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::utra_tdd: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cell_for_which_to_report_cgi_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_utra_s::cell_for_which_to_report_cgi_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::utra_fdd: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::utra_tdd: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "meas_obj_utra_s::cell_for_which_to_report_cgi_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasObjectWLAN-r13 ::= SEQUENCE SRSASN_CODE meas_obj_wlan_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(carrier_freq_r13_present, 1)); HANDLE_CODE(bref.pack(wlan_to_add_mod_list_r13_present, 1)); HANDLE_CODE(bref.pack(wlan_to_rem_list_r13_present, 1)); if (carrier_freq_r13_present) { HANDLE_CODE(carrier_freq_r13.pack(bref)); } if (wlan_to_add_mod_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_to_add_mod_list_r13, 1, 32)); } if (wlan_to_rem_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_to_rem_list_r13, 1, 32)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_wlan_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(carrier_freq_r13_present, 1)); HANDLE_CODE(bref.unpack(wlan_to_add_mod_list_r13_present, 1)); HANDLE_CODE(bref.unpack(wlan_to_rem_list_r13_present, 1)); if (carrier_freq_r13_present) { HANDLE_CODE(carrier_freq_r13.unpack(bref)); } if (wlan_to_add_mod_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_to_add_mod_list_r13, bref, 1, 32)); } if (wlan_to_rem_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_to_rem_list_r13, bref, 1, 32)); } return SRSASN_SUCCESS; } void meas_obj_wlan_r13_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_r13_present) { j.write_fieldname("carrierFreq-r13"); carrier_freq_r13.to_json(j); } if (wlan_to_add_mod_list_r13_present) { j.start_array("wlan-ToAddModList-r13"); for (uint32_t i1 = 0; i1 < wlan_to_add_mod_list_r13.size(); ++i1) { wlan_to_add_mod_list_r13[i1].to_json(j); } j.end_array(); } if (wlan_to_rem_list_r13_present) { j.start_array("wlan-ToRemoveList-r13"); for (uint32_t i1 = 0; i1 < wlan_to_rem_list_r13.size(); ++i1) { wlan_to_rem_list_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } void meas_obj_wlan_r13_s::carrier_freq_r13_c_::destroy_() { switch (type_) { case types::band_ind_list_wlan_r13: c.destroy(); break; case types::carrier_info_list_wlan_r13: c.destroy(); break; default: break; } } void meas_obj_wlan_r13_s::carrier_freq_r13_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::band_ind_list_wlan_r13: c.init(); break; case types::carrier_info_list_wlan_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_wlan_r13_s::carrier_freq_r13_c_"); } } meas_obj_wlan_r13_s::carrier_freq_r13_c_::carrier_freq_r13_c_(const meas_obj_wlan_r13_s::carrier_freq_r13_c_& other) { type_ = other.type(); switch (type_) { case types::band_ind_list_wlan_r13: c.init(other.c.get()); break; case types::carrier_info_list_wlan_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_wlan_r13_s::carrier_freq_r13_c_"); } } meas_obj_wlan_r13_s::carrier_freq_r13_c_& meas_obj_wlan_r13_s::carrier_freq_r13_c_:: operator=(const meas_obj_wlan_r13_s::carrier_freq_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::band_ind_list_wlan_r13: c.set(other.c.get()); break; case types::carrier_info_list_wlan_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_wlan_r13_s::carrier_freq_r13_c_"); } return *this; } void meas_obj_wlan_r13_s::carrier_freq_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::band_ind_list_wlan_r13: j.start_array("bandIndicatorListWLAN-r13"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_str(c.get()[i1].to_string()); } j.end_array(); break; case types::carrier_info_list_wlan_r13: j.start_array("carrierInfoListWLAN-r13"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "meas_obj_wlan_r13_s::carrier_freq_r13_c_"); } j.end_obj(); } SRSASN_CODE meas_obj_wlan_r13_s::carrier_freq_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::band_ind_list_wlan_r13: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, EnumPacker())); break; case types::carrier_info_list_wlan_r13: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); break; default: log_invalid_choice_id(type_, "meas_obj_wlan_r13_s::carrier_freq_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_wlan_r13_s::carrier_freq_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::band_ind_list_wlan_r13: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, EnumPacker())); break; case types::carrier_info_list_wlan_r13: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); break; default: log_invalid_choice_id(type_, "meas_obj_wlan_r13_s::carrier_freq_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ObtainLocationConfig-r11 ::= SEQUENCE SRSASN_CODE obtain_location_cfg_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(obtain_location_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE obtain_location_cfg_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(obtain_location_r11_present, 1)); return SRSASN_SUCCESS; } void obtain_location_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); if (obtain_location_r11_present) { j.write_str("obtainLocation-r11", "setup"); } j.end_obj(); } // PowerPrefIndicationConfig-r11 ::= CHOICE void pwr_pref_ind_cfg_r11_c::set(types::options e) { type_ = e; } void pwr_pref_ind_cfg_r11_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("powerPrefIndicationTimer-r11", c.pwr_pref_ind_timer_r11.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "pwr_pref_ind_cfg_r11_c"); } j.end_obj(); } SRSASN_CODE pwr_pref_ind_cfg_r11_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.pwr_pref_ind_timer_r11)); break; default: log_invalid_choice_id(type_, "pwr_pref_ind_cfg_r11_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pwr_pref_ind_cfg_r11_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.pwr_pref_ind_timer_r11, bref)); break; default: log_invalid_choice_id(type_, "pwr_pref_ind_cfg_r11_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // QuantityConfigNR-r15 ::= SEQUENCE SRSASN_CODE quant_cfg_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_quant_rs_idx_nr_r15_present, 1)); HANDLE_CODE(meas_quant_cell_nr_r15.pack(bref)); if (meas_quant_rs_idx_nr_r15_present) { HANDLE_CODE(meas_quant_rs_idx_nr_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_quant_rs_idx_nr_r15_present, 1)); HANDLE_CODE(meas_quant_cell_nr_r15.unpack(bref)); if (meas_quant_rs_idx_nr_r15_present) { HANDLE_CODE(meas_quant_rs_idx_nr_r15.unpack(bref)); } return SRSASN_SUCCESS; } void quant_cfg_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("measQuantityCellNR-r15"); meas_quant_cell_nr_r15.to_json(j); if (meas_quant_rs_idx_nr_r15_present) { j.write_fieldname("measQuantityRS-IndexNR-r15"); meas_quant_rs_idx_nr_r15.to_json(j); } j.end_obj(); } // RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v10l0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mob_ctrl_info_v10l0_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_v10l0_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mob_ctrl_info_v10l0_present) { HANDLE_CODE(mob_ctrl_info_v10l0.pack(bref)); } if (s_cell_to_add_mod_list_v10l0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_v10l0, 1, 4)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v10l0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mob_ctrl_info_v10l0_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_v10l0_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mob_ctrl_info_v10l0_present) { HANDLE_CODE(mob_ctrl_info_v10l0.unpack(bref)); } if (s_cell_to_add_mod_list_v10l0_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_v10l0, bref, 1, 4)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v10l0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mob_ctrl_info_v10l0_present) { j.write_fieldname("mobilityControlInfo-v10l0"); mob_ctrl_info_v10l0.to_json(j); } if (s_cell_to_add_mod_list_v10l0_present) { j.start_array("sCellToAddModList-v10l0"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_v10l0.size(); ++i1) { s_cell_to_add_mod_list_v10l0[i1].to_json(j); } j.end_array(); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(sib_type1_ded_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (sib_type1_ded_r11_present) { HANDLE_CODE(sib_type1_ded_r11.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(sib_type1_ded_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (sib_type1_ded_r11_present) { HANDLE_CODE(sib_type1_ded_r11.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (sib_type1_ded_r11_present) { j.write_str("systemInformationBlockType1Dedicated-r11", sib_type1_ded_r11.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionRelease-v1320-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_v1320_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(resume_id_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (resume_id_r13_present) { HANDLE_CODE(resume_id_r13.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_v1320_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(resume_id_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (resume_id_r13_present) { HANDLE_CODE(resume_id_r13.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_release_v1320_ies_s::to_json(json_writer& j) const { j.start_obj(); if (resume_id_r13_present) { j.write_str("resumeIdentity-r13", resume_id_r13.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } SRSASN_CODE eutra_event_s::pack(bit_ref& bref) const { HANDLE_CODE(event_id.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, hysteresis, (uint8_t)0, (uint8_t)30)); HANDLE_CODE(pack_enum(bref, time_to_trigger)); return SRSASN_SUCCESS; } SRSASN_CODE eutra_event_s::unpack(bit_ref& bref) { HANDLE_CODE(event_id.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(hysteresis, bref, (uint8_t)0, (uint8_t)30)); HANDLE_CODE(unpack_enum(time_to_trigger, bref)); return SRSASN_SUCCESS; } void eutra_event_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("eventId"); event_id.to_json(j); j.write_int("hysteresis", hysteresis); j.write_str("timeToTrigger", time_to_trigger.to_string()); j.end_obj(); } void report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::destroy_() { switch (type_) { case types::event_a1: c.destroy(); break; case types::event_a2: c.destroy(); break; case types::event_a3: c.destroy(); break; case types::event_a4: c.destroy(); break; case types::event_a5: c.destroy(); break; case types::event_a6_r10: c.destroy(); break; case types::event_c1_r12: c.destroy(); break; case types::event_c2_r12: c.destroy(); break; case types::event_v1_r14: c.destroy(); break; case types::event_v2_r14: c.destroy(); break; case types::event_h1_r15: c.destroy(); break; case types::event_h2_r15: c.destroy(); break; default: break; } } void report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::event_a1: c.init(); break; case types::event_a2: c.init(); break; case types::event_a3: c.init(); break; case types::event_a4: c.init(); break; case types::event_a5: c.init(); break; case types::event_a6_r10: c.init(); break; case types::event_c1_r12: c.init(); break; case types::event_c2_r12: c.init(); break; case types::event_v1_r14: c.init(); break; case types::event_v2_r14: c.init(); break; case types::event_h1_r15: c.init(); break; case types::event_h2_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_"); } } report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::event_id_c_( const report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_& other) { type_ = other.type(); switch (type_) { case types::event_a1: c.init(other.c.get()); break; case types::event_a2: c.init(other.c.get()); break; case types::event_a3: c.init(other.c.get()); break; case types::event_a4: c.init(other.c.get()); break; case types::event_a5: c.init(other.c.get()); break; case types::event_a6_r10: c.init(other.c.get()); break; case types::event_c1_r12: c.init(other.c.get()); break; case types::event_c2_r12: c.init(other.c.get()); break; case types::event_v1_r14: c.init(other.c.get()); break; case types::event_v2_r14: c.init(other.c.get()); break; case types::event_h1_r15: c.init(other.c.get()); break; case types::event_h2_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_"); } } report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_& report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_:: operator=(const report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::event_a1: c.set(other.c.get()); break; case types::event_a2: c.set(other.c.get()); break; case types::event_a3: c.set(other.c.get()); break; case types::event_a4: c.set(other.c.get()); break; case types::event_a5: c.set(other.c.get()); break; case types::event_a6_r10: c.set(other.c.get()); break; case types::event_c1_r12: c.set(other.c.get()); break; case types::event_c2_r12: c.set(other.c.get()); break; case types::event_v1_r14: c.set(other.c.get()); break; case types::event_v2_r14: c.set(other.c.get()); break; case types::event_h1_r15: c.set(other.c.get()); break; case types::event_h2_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_"); } return *this; } void report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::event_a1: j.write_fieldname("eventA1"); j.start_obj(); j.write_fieldname("a1-Threshold"); c.get().a1_thres.to_json(j); j.end_obj(); break; case types::event_a2: j.write_fieldname("eventA2"); j.start_obj(); j.write_fieldname("a2-Threshold"); c.get().a2_thres.to_json(j); j.end_obj(); break; case types::event_a3: j.write_fieldname("eventA3"); j.start_obj(); j.write_int("a3-Offset", c.get().a3_offset); j.write_bool("reportOnLeave", c.get().report_on_leave); j.end_obj(); break; case types::event_a4: j.write_fieldname("eventA4"); j.start_obj(); j.write_fieldname("a4-Threshold"); c.get().a4_thres.to_json(j); j.end_obj(); break; case types::event_a5: j.write_fieldname("eventA5"); j.start_obj(); j.write_fieldname("a5-Threshold1"); c.get().a5_thres1.to_json(j); j.write_fieldname("a5-Threshold2"); c.get().a5_thres2.to_json(j); j.end_obj(); break; case types::event_a6_r10: j.write_fieldname("eventA6-r10"); j.start_obj(); j.write_int("a6-Offset-r10", c.get().a6_offset_r10); j.write_bool("a6-ReportOnLeave-r10", c.get().a6_report_on_leave_r10); j.end_obj(); break; case types::event_c1_r12: j.write_fieldname("eventC1-r12"); j.start_obj(); j.write_int("c1-Threshold-r12", c.get().c1_thres_r12); j.write_bool("c1-ReportOnLeave-r12", c.get().c1_report_on_leave_r12); j.end_obj(); break; case types::event_c2_r12: j.write_fieldname("eventC2-r12"); j.start_obj(); j.write_int("c2-RefCSI-RS-r12", c.get().c2_ref_csi_rs_r12); j.write_int("c2-Offset-r12", c.get().c2_offset_r12); j.write_bool("c2-ReportOnLeave-r12", c.get().c2_report_on_leave_r12); j.end_obj(); break; case types::event_v1_r14: j.write_fieldname("eventV1-r14"); j.start_obj(); j.write_int("v1-Threshold-r14", c.get().v1_thres_r14); j.end_obj(); break; case types::event_v2_r14: j.write_fieldname("eventV2-r14"); j.start_obj(); j.write_int("v2-Threshold-r14", c.get().v2_thres_r14); j.end_obj(); break; case types::event_h1_r15: j.write_fieldname("eventH1-r15"); j.start_obj(); j.write_int("h1-ThresholdOffset-r15", c.get().h1_thres_offset_r15); j.write_int("h1-Hysteresis-15", c.get().h1_hysteresis_minus15); j.end_obj(); break; case types::event_h2_r15: j.write_fieldname("eventH2-r15"); j.start_obj(); j.write_int("h2-ThresholdOffset-r15", c.get().h2_thres_offset_r15); j.write_int("h2-Hysteresis-15", c.get().h2_hysteresis_minus15); j.end_obj(); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::event_a1: HANDLE_CODE(c.get().a1_thres.pack(bref)); break; case types::event_a2: HANDLE_CODE(c.get().a2_thres.pack(bref)); break; case types::event_a3: HANDLE_CODE(pack_unalign_integer(bref, c.get().a3_offset, (int8_t)-30, (int8_t)30)); HANDLE_CODE(bref.pack(c.get().report_on_leave, 1)); break; case types::event_a4: HANDLE_CODE(c.get().a4_thres.pack(bref)); break; case types::event_a5: HANDLE_CODE(c.get().a5_thres1.pack(bref)); HANDLE_CODE(c.get().a5_thres2.pack(bref)); break; case types::event_a6_r10: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().a6_offset_r10, (int8_t)-30, (int8_t)30)); HANDLE_CODE(bref.pack(c.get().a6_report_on_leave_r10, 1)); } break; case types::event_c1_r12: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().c1_thres_r12, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(bref.pack(c.get().c1_report_on_leave_r12, 1)); } break; case types::event_c2_r12: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().c2_ref_csi_rs_r12, (uint8_t)1, (uint8_t)96)); HANDLE_CODE(pack_unalign_integer(bref, c.get().c2_offset_r12, (int8_t)-30, (int8_t)30)); HANDLE_CODE(bref.pack(c.get().c2_report_on_leave_r12, 1)); } break; case types::event_v1_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().v1_thres_r14, (uint8_t)0, (uint8_t)100)); } break; case types::event_v2_r14: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().v2_thres_r14, (uint8_t)0, (uint8_t)100)); } break; case types::event_h1_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().h1_thres_offset_r15, (uint16_t)0, (uint16_t)300)); HANDLE_CODE(pack_unalign_integer(bref, c.get().h1_hysteresis_minus15, (uint8_t)1, (uint8_t)16)); } break; case types::event_h2_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().h2_thres_offset_r15, (uint16_t)0, (uint16_t)300)); HANDLE_CODE(pack_unalign_integer(bref, c.get().h2_hysteresis_minus15, (uint8_t)1, (uint8_t)16)); } break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::event_a1: HANDLE_CODE(c.get().a1_thres.unpack(bref)); break; case types::event_a2: HANDLE_CODE(c.get().a2_thres.unpack(bref)); break; case types::event_a3: HANDLE_CODE(unpack_unalign_integer(c.get().a3_offset, bref, (int8_t)-30, (int8_t)30)); HANDLE_CODE(bref.unpack(c.get().report_on_leave, 1)); break; case types::event_a4: HANDLE_CODE(c.get().a4_thres.unpack(bref)); break; case types::event_a5: HANDLE_CODE(c.get().a5_thres1.unpack(bref)); HANDLE_CODE(c.get().a5_thres2.unpack(bref)); break; case types::event_a6_r10: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get().a6_offset_r10, bref, (int8_t)-30, (int8_t)30)); HANDLE_CODE(bref.unpack(c.get().a6_report_on_leave_r10, 1)); } break; case types::event_c1_r12: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get().c1_thres_r12, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(bref.unpack(c.get().c1_report_on_leave_r12, 1)); } break; case types::event_c2_r12: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get().c2_ref_csi_rs_r12, bref, (uint8_t)1, (uint8_t)96)); HANDLE_CODE(unpack_unalign_integer(c.get().c2_offset_r12, bref, (int8_t)-30, (int8_t)30)); HANDLE_CODE(bref.unpack(c.get().c2_report_on_leave_r12, 1)); } break; case types::event_v1_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get().v1_thres_r14, bref, (uint8_t)0, (uint8_t)100)); } break; case types::event_v2_r14: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get().v2_thres_r14, bref, (uint8_t)0, (uint8_t)100)); } break; case types::event_h1_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE( unpack_unalign_integer(c.get().h1_thres_offset_r15, bref, (uint16_t)0, (uint16_t)300)); HANDLE_CODE( unpack_unalign_integer(c.get().h1_hysteresis_minus15, bref, (uint8_t)1, (uint8_t)16)); } break; case types::event_h2_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE( unpack_unalign_integer(c.get().h2_thres_offset_r15, bref, (uint16_t)0, (uint16_t)300)); HANDLE_CODE( unpack_unalign_integer(c.get().h2_hysteresis_minus15, bref, (uint8_t)1, (uint8_t)16)); } break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ReportConfigEUTRA ::= SEQUENCE SRSASN_CODE report_cfg_eutra_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(trigger_type.pack(bref)); HANDLE_CODE(pack_enum(bref, trigger_quant)); HANDLE_CODE(pack_enum(bref, report_quant)); HANDLE_CODE(pack_unalign_integer(bref, max_report_cells, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pack_enum(bref, report_interv)); HANDLE_CODE(pack_enum(bref, report_amount)); if (ext) { ext_groups_header group_flags(8); group_flags[0] |= si_request_for_ho_r9_present; group_flags[0] |= ue_rx_tx_time_diff_periodical_r9_present; group_flags[1] |= include_location_info_r10_present; group_flags[1] |= report_add_neigh_meas_r10_present; rrc_asn1_warn_assert(alternative_time_to_trigger_r12_present != (alternative_time_to_trigger_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= alternative_time_to_trigger_r12_present; group_flags[2] |= use_t312_r12_present; group_flags[2] |= use_ps_cell_r12_present; rrc_asn1_warn_assert(a_n_thres1_v1250_present != (a_n_thres1_v1250.get() != NULL), __FILE__, __LINE__); group_flags[2] |= a_n_thres1_v1250_present; rrc_asn1_warn_assert(a5_thres2_v1250_present != (a5_thres2_v1250.get() != NULL), __FILE__, __LINE__); group_flags[2] |= a5_thres2_v1250_present; group_flags[2] |= report_strongest_csi_rss_r12_present; group_flags[2] |= report_crs_meas_r12_present; group_flags[2] |= trigger_quant_csi_rs_r12_present; group_flags[3] |= report_sstd_meas_r13_present; rrc_asn1_warn_assert(rs_sinr_cfg_r13_present != (rs_sinr_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= rs_sinr_cfg_r13_present; group_flags[3] |= use_white_cell_list_r13_present; rrc_asn1_warn_assert(meas_rssi_report_cfg_r13_present != (meas_rssi_report_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_rssi_report_cfg_r13_present; group_flags[3] |= include_multi_band_info_r13_present; rrc_asn1_warn_assert(ul_delay_cfg_r13_present != (ul_delay_cfg_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= ul_delay_cfg_r13_present; group_flags[4] |= ue_rx_tx_time_diff_periodical_tdd_r13_present; group_flags[5] |= purpose_v1430_present; group_flags[6] |= max_report_rs_idx_r15_present; rrc_asn1_warn_assert(include_bt_meas_r15_present != (include_bt_meas_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= include_bt_meas_r15_present; rrc_asn1_warn_assert(include_wlan_meas_r15_present != (include_wlan_meas_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= include_wlan_meas_r15_present; group_flags[7] |= purpose_r15_present; group_flags[7] |= nof_triggering_cells_r15_present; group_flags[7] |= a4_a5_report_on_leave_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(si_request_for_ho_r9_present, 1)); HANDLE_CODE(bref.pack(ue_rx_tx_time_diff_periodical_r9_present, 1)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(include_location_info_r10_present, 1)); HANDLE_CODE(bref.pack(report_add_neigh_meas_r10_present, 1)); } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(alternative_time_to_trigger_r12_present, 1)); HANDLE_CODE(bref.pack(use_t312_r12_present, 1)); HANDLE_CODE(bref.pack(use_ps_cell_r12_present, 1)); HANDLE_CODE(bref.pack(a_n_thres1_v1250_present, 1)); HANDLE_CODE(bref.pack(a5_thres2_v1250_present, 1)); HANDLE_CODE(bref.pack(report_strongest_csi_rss_r12_present, 1)); HANDLE_CODE(bref.pack(report_crs_meas_r12_present, 1)); HANDLE_CODE(bref.pack(trigger_quant_csi_rs_r12_present, 1)); if (alternative_time_to_trigger_r12_present) { HANDLE_CODE(alternative_time_to_trigger_r12->pack(bref)); } if (use_t312_r12_present) { HANDLE_CODE(bref.pack(use_t312_r12, 1)); } if (use_ps_cell_r12_present) { HANDLE_CODE(bref.pack(use_ps_cell_r12, 1)); } if (a_n_thres1_v1250_present) { HANDLE_CODE(a_n_thres1_v1250->pack(bref)); } if (a5_thres2_v1250_present) { HANDLE_CODE(a5_thres2_v1250->pack(bref)); } if (report_strongest_csi_rss_r12_present) { HANDLE_CODE(bref.pack(report_strongest_csi_rss_r12, 1)); } if (report_crs_meas_r12_present) { HANDLE_CODE(bref.pack(report_crs_meas_r12, 1)); } if (trigger_quant_csi_rs_r12_present) { HANDLE_CODE(bref.pack(trigger_quant_csi_rs_r12, 1)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(report_sstd_meas_r13_present, 1)); HANDLE_CODE(bref.pack(rs_sinr_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(use_white_cell_list_r13_present, 1)); HANDLE_CODE(bref.pack(meas_rssi_report_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(include_multi_band_info_r13_present, 1)); HANDLE_CODE(bref.pack(ul_delay_cfg_r13_present, 1)); if (report_sstd_meas_r13_present) { HANDLE_CODE(bref.pack(report_sstd_meas_r13, 1)); } if (rs_sinr_cfg_r13_present) { HANDLE_CODE(rs_sinr_cfg_r13->pack(bref)); } if (use_white_cell_list_r13_present) { HANDLE_CODE(bref.pack(use_white_cell_list_r13, 1)); } if (meas_rssi_report_cfg_r13_present) { HANDLE_CODE(meas_rssi_report_cfg_r13->pack(bref)); } if (ul_delay_cfg_r13_present) { HANDLE_CODE(ul_delay_cfg_r13->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ue_rx_tx_time_diff_periodical_tdd_r13_present, 1)); if (ue_rx_tx_time_diff_periodical_tdd_r13_present) { HANDLE_CODE(bref.pack(ue_rx_tx_time_diff_periodical_tdd_r13, 1)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(purpose_v1430_present, 1)); if (purpose_v1430_present) { HANDLE_CODE(pack_enum(bref, purpose_v1430)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(max_report_rs_idx_r15_present, 1)); if (max_report_rs_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, max_report_rs_idx_r15, (uint8_t)0, (uint8_t)32)); } } if (group_flags[7]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(include_bt_meas_r15_present, 1)); HANDLE_CODE(bref.pack(include_wlan_meas_r15_present, 1)); HANDLE_CODE(bref.pack(purpose_r15_present, 1)); HANDLE_CODE(bref.pack(nof_triggering_cells_r15_present, 1)); HANDLE_CODE(bref.pack(a4_a5_report_on_leave_r15_present, 1)); if (include_bt_meas_r15_present) { HANDLE_CODE(include_bt_meas_r15->pack(bref)); } if (include_wlan_meas_r15_present) { HANDLE_CODE(include_wlan_meas_r15->pack(bref)); } if (nof_triggering_cells_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, nof_triggering_cells_r15, (uint8_t)2, (uint8_t)8)); } if (a4_a5_report_on_leave_r15_present) { HANDLE_CODE(bref.pack(a4_a5_report_on_leave_r15, 1)); } } } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_eutra_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(trigger_type.unpack(bref)); HANDLE_CODE(unpack_enum(trigger_quant, bref)); HANDLE_CODE(unpack_enum(report_quant, bref)); HANDLE_CODE(unpack_unalign_integer(max_report_cells, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_enum(report_interv, bref)); HANDLE_CODE(unpack_enum(report_amount, bref)); if (ext) { ext_groups_header group_flags(8); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(si_request_for_ho_r9_present, 1)); HANDLE_CODE(bref.unpack(ue_rx_tx_time_diff_periodical_r9_present, 1)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(include_location_info_r10_present, 1)); HANDLE_CODE(bref.unpack(report_add_neigh_meas_r10_present, 1)); } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(alternative_time_to_trigger_r12_present, 1)); HANDLE_CODE(bref.unpack(use_t312_r12_present, 1)); HANDLE_CODE(bref.unpack(use_ps_cell_r12_present, 1)); HANDLE_CODE(bref.unpack(a_n_thres1_v1250_present, 1)); HANDLE_CODE(bref.unpack(a5_thres2_v1250_present, 1)); HANDLE_CODE(bref.unpack(report_strongest_csi_rss_r12_present, 1)); HANDLE_CODE(bref.unpack(report_crs_meas_r12_present, 1)); HANDLE_CODE(bref.unpack(trigger_quant_csi_rs_r12_present, 1)); if (alternative_time_to_trigger_r12_present) { alternative_time_to_trigger_r12 = make_copy_ptr(alternative_time_to_trigger_r12_c_()); HANDLE_CODE(alternative_time_to_trigger_r12->unpack(bref)); } if (use_t312_r12_present) { HANDLE_CODE(bref.unpack(use_t312_r12, 1)); } if (use_ps_cell_r12_present) { HANDLE_CODE(bref.unpack(use_ps_cell_r12, 1)); } if (a_n_thres1_v1250_present) { a_n_thres1_v1250 = make_copy_ptr(rsrq_range_cfg_r12_c()); HANDLE_CODE(a_n_thres1_v1250->unpack(bref)); } if (a5_thres2_v1250_present) { a5_thres2_v1250 = make_copy_ptr(rsrq_range_cfg_r12_c()); HANDLE_CODE(a5_thres2_v1250->unpack(bref)); } if (report_strongest_csi_rss_r12_present) { HANDLE_CODE(bref.unpack(report_strongest_csi_rss_r12, 1)); } if (report_crs_meas_r12_present) { HANDLE_CODE(bref.unpack(report_crs_meas_r12, 1)); } if (trigger_quant_csi_rs_r12_present) { HANDLE_CODE(bref.unpack(trigger_quant_csi_rs_r12, 1)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(report_sstd_meas_r13_present, 1)); HANDLE_CODE(bref.unpack(rs_sinr_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(use_white_cell_list_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_rssi_report_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(include_multi_band_info_r13_present, 1)); HANDLE_CODE(bref.unpack(ul_delay_cfg_r13_present, 1)); if (report_sstd_meas_r13_present) { HANDLE_CODE(bref.unpack(report_sstd_meas_r13, 1)); } if (rs_sinr_cfg_r13_present) { rs_sinr_cfg_r13 = make_copy_ptr(rs_sinr_cfg_r13_c_()); HANDLE_CODE(rs_sinr_cfg_r13->unpack(bref)); } if (use_white_cell_list_r13_present) { HANDLE_CODE(bref.unpack(use_white_cell_list_r13, 1)); } if (meas_rssi_report_cfg_r13_present) { meas_rssi_report_cfg_r13 = make_copy_ptr(meas_rssi_report_cfg_r13_s()); HANDLE_CODE(meas_rssi_report_cfg_r13->unpack(bref)); } if (ul_delay_cfg_r13_present) { ul_delay_cfg_r13 = make_copy_ptr(ul_delay_cfg_r13_c()); HANDLE_CODE(ul_delay_cfg_r13->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ue_rx_tx_time_diff_periodical_tdd_r13_present, 1)); if (ue_rx_tx_time_diff_periodical_tdd_r13_present) { HANDLE_CODE(bref.unpack(ue_rx_tx_time_diff_periodical_tdd_r13, 1)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(purpose_v1430_present, 1)); if (purpose_v1430_present) { HANDLE_CODE(unpack_enum(purpose_v1430, bref)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(max_report_rs_idx_r15_present, 1)); if (max_report_rs_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(max_report_rs_idx_r15, bref, (uint8_t)0, (uint8_t)32)); } } if (group_flags[7]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(include_bt_meas_r15_present, 1)); HANDLE_CODE(bref.unpack(include_wlan_meas_r15_present, 1)); HANDLE_CODE(bref.unpack(purpose_r15_present, 1)); HANDLE_CODE(bref.unpack(nof_triggering_cells_r15_present, 1)); HANDLE_CODE(bref.unpack(a4_a5_report_on_leave_r15_present, 1)); if (include_bt_meas_r15_present) { include_bt_meas_r15 = make_copy_ptr(bt_name_list_cfg_r15_c()); HANDLE_CODE(include_bt_meas_r15->unpack(bref)); } if (include_wlan_meas_r15_present) { include_wlan_meas_r15 = make_copy_ptr(wlan_name_list_cfg_r15_c()); HANDLE_CODE(include_wlan_meas_r15->unpack(bref)); } if (nof_triggering_cells_r15_present) { HANDLE_CODE(unpack_unalign_integer(nof_triggering_cells_r15, bref, (uint8_t)2, (uint8_t)8)); } if (a4_a5_report_on_leave_r15_present) { HANDLE_CODE(bref.unpack(a4_a5_report_on_leave_r15, 1)); } } } return SRSASN_SUCCESS; } void report_cfg_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("triggerType"); trigger_type.to_json(j); j.write_str("triggerQuantity", trigger_quant.to_string()); j.write_str("reportQuantity", report_quant.to_string()); j.write_int("maxReportCells", max_report_cells); j.write_str("reportInterval", report_interv.to_string()); j.write_str("reportAmount", report_amount.to_string()); if (ext) { if (si_request_for_ho_r9_present) { j.write_str("si-RequestForHO-r9", "setup"); } if (ue_rx_tx_time_diff_periodical_r9_present) { j.write_str("ue-RxTxTimeDiffPeriodical-r9", "setup"); } if (include_location_info_r10_present) { j.write_str("includeLocationInfo-r10", "true"); } if (report_add_neigh_meas_r10_present) { j.write_str("reportAddNeighMeas-r10", "setup"); } rrc_asn1_warn_assert(alternative_time_to_trigger_r12_present != (alternative_time_to_trigger_r12.get() != NULL), __FILE__, __LINE__); if (alternative_time_to_trigger_r12_present) { j.write_fieldname("alternativeTimeToTrigger-r12"); alternative_time_to_trigger_r12->to_json(j); } if (use_t312_r12_present) { j.write_bool("useT312-r12", use_t312_r12); } if (use_ps_cell_r12_present) { j.write_bool("usePSCell-r12", use_ps_cell_r12); } rrc_asn1_warn_assert(a_n_thres1_v1250_present != (a_n_thres1_v1250.get() != NULL), __FILE__, __LINE__); if (a_n_thres1_v1250_present) { j.write_fieldname("aN-Threshold1-v1250"); a_n_thres1_v1250->to_json(j); } rrc_asn1_warn_assert(a5_thres2_v1250_present != (a5_thres2_v1250.get() != NULL), __FILE__, __LINE__); if (a5_thres2_v1250_present) { j.write_fieldname("a5-Threshold2-v1250"); a5_thres2_v1250->to_json(j); } if (report_strongest_csi_rss_r12_present) { j.write_bool("reportStrongestCSI-RSs-r12", report_strongest_csi_rss_r12); } if (report_crs_meas_r12_present) { j.write_bool("reportCRS-Meas-r12", report_crs_meas_r12); } if (trigger_quant_csi_rs_r12_present) { j.write_bool("triggerQuantityCSI-RS-r12", trigger_quant_csi_rs_r12); } if (report_sstd_meas_r13_present) { j.write_bool("reportSSTD-Meas-r13", report_sstd_meas_r13); } rrc_asn1_warn_assert(rs_sinr_cfg_r13_present != (rs_sinr_cfg_r13.get() != NULL), __FILE__, __LINE__); if (rs_sinr_cfg_r13_present) { j.write_fieldname("rs-sinr-Config-r13"); rs_sinr_cfg_r13->to_json(j); } if (use_white_cell_list_r13_present) { j.write_bool("useWhiteCellList-r13", use_white_cell_list_r13); } rrc_asn1_warn_assert(meas_rssi_report_cfg_r13_present != (meas_rssi_report_cfg_r13.get() != NULL), __FILE__, __LINE__); if (meas_rssi_report_cfg_r13_present) { j.write_fieldname("measRSSI-ReportConfig-r13"); meas_rssi_report_cfg_r13->to_json(j); } if (include_multi_band_info_r13_present) { j.write_str("includeMultiBandInfo-r13", "true"); } rrc_asn1_warn_assert(ul_delay_cfg_r13_present != (ul_delay_cfg_r13.get() != NULL), __FILE__, __LINE__); if (ul_delay_cfg_r13_present) { j.write_fieldname("ul-DelayConfig-r13"); ul_delay_cfg_r13->to_json(j); } if (ue_rx_tx_time_diff_periodical_tdd_r13_present) { j.write_bool("ue-RxTxTimeDiffPeriodicalTDD-r13", ue_rx_tx_time_diff_periodical_tdd_r13); } if (purpose_v1430_present) { j.write_str("purpose-v1430", purpose_v1430.to_string()); } if (max_report_rs_idx_r15_present) { j.write_int("maxReportRS-Index-r15", max_report_rs_idx_r15); } rrc_asn1_warn_assert(include_bt_meas_r15_present != (include_bt_meas_r15.get() != NULL), __FILE__, __LINE__); if (include_bt_meas_r15_present) { j.write_fieldname("includeBT-Meas-r15"); include_bt_meas_r15->to_json(j); } rrc_asn1_warn_assert(include_wlan_meas_r15_present != (include_wlan_meas_r15.get() != NULL), __FILE__, __LINE__); if (include_wlan_meas_r15_present) { j.write_fieldname("includeWLAN-Meas-r15"); include_wlan_meas_r15->to_json(j); } if (purpose_r15_present) { j.write_str("purpose-r15", "sensing"); } if (nof_triggering_cells_r15_present) { j.write_int("numberOfTriggeringCells-r15", nof_triggering_cells_r15); } if (a4_a5_report_on_leave_r15_present) { j.write_bool("a4-a5-ReportOnLeave-r15", a4_a5_report_on_leave_r15); } } j.end_obj(); } void report_cfg_eutra_s::trigger_type_c_::destroy_() { switch (type_) { case types::event: c.destroy(); break; case types::periodical: c.destroy(); break; default: break; } } void report_cfg_eutra_s::trigger_type_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::event: c.init(); break; case types::periodical: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_"); } } report_cfg_eutra_s::trigger_type_c_::trigger_type_c_(const report_cfg_eutra_s::trigger_type_c_& other) { type_ = other.type(); switch (type_) { case types::event: c.init(other.c.get()); break; case types::periodical: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_"); } } report_cfg_eutra_s::trigger_type_c_& report_cfg_eutra_s::trigger_type_c_:: operator=(const report_cfg_eutra_s::trigger_type_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::event: c.set(other.c.get()); break; case types::periodical: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_"); } return *this; } void report_cfg_eutra_s::trigger_type_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::event: j.write_fieldname("event"); c.get().to_json(j); break; case types::periodical: j.write_fieldname("periodical"); j.start_obj(); j.write_str("purpose", c.get().purpose.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_eutra_s::trigger_type_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::event: HANDLE_CODE(c.get().pack(bref)); break; case types::periodical: HANDLE_CODE(pack_enum(bref, c.get().purpose)); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_eutra_s::trigger_type_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::event: HANDLE_CODE(c.get().unpack(bref)); break; case types::periodical: HANDLE_CODE(unpack_enum(c.get().purpose, bref)); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::trigger_type_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void report_cfg_eutra_s::alternative_time_to_trigger_r12_c_::set(types::options e) { type_ = e; } void report_cfg_eutra_s::alternative_time_to_trigger_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::alternative_time_to_trigger_r12_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_eutra_s::alternative_time_to_trigger_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::alternative_time_to_trigger_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_eutra_s::alternative_time_to_trigger_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::alternative_time_to_trigger_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void report_cfg_eutra_s::rs_sinr_cfg_r13_c_::set(types::options e) { type_ = e; } void report_cfg_eutra_s::rs_sinr_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.trigger_quant_v1310_present) { j.write_str("triggerQuantity-v1310", "sinr"); } if (c.a_n_thres1_r13_present) { j.write_int("aN-Threshold1-r13", c.a_n_thres1_r13); } if (c.a5_thres2_r13_present) { j.write_int("a5-Threshold2-r13", c.a5_thres2_r13); } j.write_str("reportQuantity-v1310", c.report_quant_v1310.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::rs_sinr_cfg_r13_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_eutra_s::rs_sinr_cfg_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.trigger_quant_v1310_present, 1)); HANDLE_CODE(bref.pack(c.a_n_thres1_r13_present, 1)); HANDLE_CODE(bref.pack(c.a5_thres2_r13_present, 1)); if (c.a_n_thres1_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.a_n_thres1_r13, (uint8_t)0, (uint8_t)127)); } if (c.a5_thres2_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, c.a5_thres2_r13, (uint8_t)0, (uint8_t)127)); } HANDLE_CODE(pack_enum(bref, c.report_quant_v1310)); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::rs_sinr_cfg_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_eutra_s::rs_sinr_cfg_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.trigger_quant_v1310_present, 1)); HANDLE_CODE(bref.unpack(c.a_n_thres1_r13_present, 1)); HANDLE_CODE(bref.unpack(c.a5_thres2_r13_present, 1)); if (c.a_n_thres1_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.a_n_thres1_r13, bref, (uint8_t)0, (uint8_t)127)); } if (c.a5_thres2_r13_present) { HANDLE_CODE(unpack_unalign_integer(c.a5_thres2_r13, bref, (uint8_t)0, (uint8_t)127)); } HANDLE_CODE(unpack_enum(c.report_quant_v1310, bref)); break; default: log_invalid_choice_id(type_, "report_cfg_eutra_s::rs_sinr_cfg_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ReportConfigInterRAT ::= SEQUENCE SRSASN_CODE report_cfg_inter_rat_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(trigger_type.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, max_report_cells, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pack_enum(bref, report_interv)); HANDLE_CODE(pack_enum(bref, report_amount)); if (ext) { ext_groups_header group_flags(7); group_flags[0] |= si_request_for_ho_r9_present; group_flags[1] |= report_quant_utra_fdd_r10_present; group_flags[2] |= include_location_info_r11_present; rrc_asn1_warn_assert(b2_thres1_v1250_present != (b2_thres1_v1250.get() != NULL), __FILE__, __LINE__); group_flags[3] |= b2_thres1_v1250_present; rrc_asn1_warn_assert(report_quant_wlan_r13_present != (report_quant_wlan_r13.get() != NULL), __FILE__, __LINE__); group_flags[4] |= report_quant_wlan_r13_present; group_flags[5] |= report_any_wlan_r14_present; rrc_asn1_warn_assert(report_quant_cell_nr_r15_present != (report_quant_cell_nr_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= report_quant_cell_nr_r15_present; group_flags[6] |= max_report_rs_idx_r15_present; rrc_asn1_warn_assert(report_quant_rs_idx_nr_r15_present != (report_quant_rs_idx_nr_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= report_quant_rs_idx_nr_r15_present; group_flags[6] |= report_rs_idx_results_nr_present; group_flags[6] |= report_sftd_meas_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(si_request_for_ho_r9_present, 1)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(report_quant_utra_fdd_r10_present, 1)); } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(include_location_info_r11_present, 1)); if (include_location_info_r11_present) { HANDLE_CODE(bref.pack(include_location_info_r11, 1)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(b2_thres1_v1250_present, 1)); if (b2_thres1_v1250_present) { HANDLE_CODE(b2_thres1_v1250->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(report_quant_wlan_r13_present, 1)); if (report_quant_wlan_r13_present) { HANDLE_CODE(report_quant_wlan_r13->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(report_any_wlan_r14_present, 1)); if (report_any_wlan_r14_present) { HANDLE_CODE(bref.pack(report_any_wlan_r14, 1)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(report_quant_cell_nr_r15_present, 1)); HANDLE_CODE(bref.pack(max_report_rs_idx_r15_present, 1)); HANDLE_CODE(bref.pack(report_quant_rs_idx_nr_r15_present, 1)); HANDLE_CODE(bref.pack(report_rs_idx_results_nr_present, 1)); HANDLE_CODE(bref.pack(report_sftd_meas_r15_present, 1)); if (report_quant_cell_nr_r15_present) { HANDLE_CODE(report_quant_cell_nr_r15->pack(bref)); } if (max_report_rs_idx_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, max_report_rs_idx_r15, (uint8_t)0, (uint8_t)32)); } if (report_quant_rs_idx_nr_r15_present) { HANDLE_CODE(report_quant_rs_idx_nr_r15->pack(bref)); } if (report_rs_idx_results_nr_present) { HANDLE_CODE(bref.pack(report_rs_idx_results_nr, 1)); } if (report_sftd_meas_r15_present) { HANDLE_CODE(pack_enum(bref, report_sftd_meas_r15)); } } } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_inter_rat_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(trigger_type.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(max_report_cells, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_enum(report_interv, bref)); HANDLE_CODE(unpack_enum(report_amount, bref)); if (ext) { ext_groups_header group_flags(7); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(si_request_for_ho_r9_present, 1)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(report_quant_utra_fdd_r10_present, 1)); } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(include_location_info_r11_present, 1)); if (include_location_info_r11_present) { HANDLE_CODE(bref.unpack(include_location_info_r11, 1)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(b2_thres1_v1250_present, 1)); if (b2_thres1_v1250_present) { b2_thres1_v1250 = make_copy_ptr(b2_thres1_v1250_c_()); HANDLE_CODE(b2_thres1_v1250->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(report_quant_wlan_r13_present, 1)); if (report_quant_wlan_r13_present) { report_quant_wlan_r13 = make_copy_ptr(report_quant_wlan_r13_s()); HANDLE_CODE(report_quant_wlan_r13->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(report_any_wlan_r14_present, 1)); if (report_any_wlan_r14_present) { HANDLE_CODE(bref.unpack(report_any_wlan_r14, 1)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(report_quant_cell_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(max_report_rs_idx_r15_present, 1)); HANDLE_CODE(bref.unpack(report_quant_rs_idx_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(report_rs_idx_results_nr_present, 1)); HANDLE_CODE(bref.unpack(report_sftd_meas_r15_present, 1)); if (report_quant_cell_nr_r15_present) { report_quant_cell_nr_r15 = make_copy_ptr(report_quant_nr_r15_s()); HANDLE_CODE(report_quant_cell_nr_r15->unpack(bref)); } if (max_report_rs_idx_r15_present) { HANDLE_CODE(unpack_unalign_integer(max_report_rs_idx_r15, bref, (uint8_t)0, (uint8_t)32)); } if (report_quant_rs_idx_nr_r15_present) { report_quant_rs_idx_nr_r15 = make_copy_ptr(report_quant_nr_r15_s()); HANDLE_CODE(report_quant_rs_idx_nr_r15->unpack(bref)); } if (report_rs_idx_results_nr_present) { HANDLE_CODE(bref.unpack(report_rs_idx_results_nr, 1)); } if (report_sftd_meas_r15_present) { HANDLE_CODE(unpack_enum(report_sftd_meas_r15, bref)); } } } return SRSASN_SUCCESS; } void report_cfg_inter_rat_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("triggerType"); trigger_type.to_json(j); j.write_int("maxReportCells", max_report_cells); j.write_str("reportInterval", report_interv.to_string()); j.write_str("reportAmount", report_amount.to_string()); if (ext) { if (si_request_for_ho_r9_present) { j.write_str("si-RequestForHO-r9", "setup"); } if (report_quant_utra_fdd_r10_present) { j.write_str("reportQuantityUTRA-FDD-r10", "both"); } if (include_location_info_r11_present) { j.write_bool("includeLocationInfo-r11", include_location_info_r11); } rrc_asn1_warn_assert(b2_thres1_v1250_present != (b2_thres1_v1250.get() != NULL), __FILE__, __LINE__); if (b2_thres1_v1250_present) { j.write_fieldname("b2-Threshold1-v1250"); b2_thres1_v1250->to_json(j); } rrc_asn1_warn_assert(report_quant_wlan_r13_present != (report_quant_wlan_r13.get() != NULL), __FILE__, __LINE__); if (report_quant_wlan_r13_present) { j.write_fieldname("reportQuantityWLAN-r13"); report_quant_wlan_r13->to_json(j); } if (report_any_wlan_r14_present) { j.write_bool("reportAnyWLAN-r14", report_any_wlan_r14); } rrc_asn1_warn_assert(report_quant_cell_nr_r15_present != (report_quant_cell_nr_r15.get() != NULL), __FILE__, __LINE__); if (report_quant_cell_nr_r15_present) { j.write_fieldname("reportQuantityCellNR-r15"); report_quant_cell_nr_r15->to_json(j); } if (max_report_rs_idx_r15_present) { j.write_int("maxReportRS-Index-r15", max_report_rs_idx_r15); } rrc_asn1_warn_assert(report_quant_rs_idx_nr_r15_present != (report_quant_rs_idx_nr_r15.get() != NULL), __FILE__, __LINE__); if (report_quant_rs_idx_nr_r15_present) { j.write_fieldname("reportQuantityRS-IndexNR-r15"); report_quant_rs_idx_nr_r15->to_json(j); } if (report_rs_idx_results_nr_present) { j.write_bool("reportRS-IndexResultsNR", report_rs_idx_results_nr); } if (report_sftd_meas_r15_present) { j.write_str("reportSFTD-Meas-r15", report_sftd_meas_r15.to_string()); } } j.end_obj(); } void report_cfg_inter_rat_s::trigger_type_c_::destroy_() { switch (type_) { case types::event: c.destroy(); break; case types::periodical: c.destroy(); break; default: break; } } void report_cfg_inter_rat_s::trigger_type_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::event: c.init(); break; case types::periodical: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_"); } } report_cfg_inter_rat_s::trigger_type_c_::trigger_type_c_(const report_cfg_inter_rat_s::trigger_type_c_& other) { type_ = other.type(); switch (type_) { case types::event: c.init(other.c.get()); break; case types::periodical: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_"); } } report_cfg_inter_rat_s::trigger_type_c_& report_cfg_inter_rat_s::trigger_type_c_:: operator=(const report_cfg_inter_rat_s::trigger_type_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::event: c.set(other.c.get()); break; case types::periodical: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_"); } return *this; } void report_cfg_inter_rat_s::trigger_type_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::event: j.write_fieldname("event"); j.start_obj(); j.write_fieldname("eventId"); c.get().event_id.to_json(j); j.write_int("hysteresis", c.get().hysteresis); j.write_str("timeToTrigger", c.get().time_to_trigger.to_string()); j.end_obj(); break; case types::periodical: j.write_fieldname("periodical"); j.start_obj(); j.write_str("purpose", c.get().purpose.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_inter_rat_s::trigger_type_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::event: HANDLE_CODE(c.get().event_id.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, c.get().hysteresis, (uint8_t)0, (uint8_t)30)); HANDLE_CODE(pack_enum(bref, c.get().time_to_trigger)); break; case types::periodical: HANDLE_CODE(pack_enum(bref, c.get().purpose)); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_inter_rat_s::trigger_type_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::event: HANDLE_CODE(c.get().event_id.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(c.get().hysteresis, bref, (uint8_t)0, (uint8_t)30)); HANDLE_CODE(unpack_enum(c.get().time_to_trigger, bref)); break; case types::periodical: HANDLE_CODE(unpack_enum(c.get().purpose, bref)); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::destroy_() { switch (type_) { case types::event_b1: c.destroy(); break; case types::event_b2: c.destroy(); break; case types::event_w1_r13: c.destroy(); break; case types::event_w2_r13: c.destroy(); break; case types::event_w3_r13: c.destroy(); break; case types::event_b1_nr_r15: c.destroy(); break; case types::event_b2_nr_r15: c.destroy(); break; default: break; } } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::event_b1: c.init(); break; case types::event_b2: c.init(); break; case types::event_w1_r13: c.init(); break; case types::event_w2_r13: c.init(); break; case types::event_w3_r13: c.init(); break; case types::event_b1_nr_r15: c.init(); break; case types::event_b2_nr_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_"); } } report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_id_c_( const report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_& other) { type_ = other.type(); switch (type_) { case types::event_b1: c.init(other.c.get()); break; case types::event_b2: c.init(other.c.get()); break; case types::event_w1_r13: c.init(other.c.get()); break; case types::event_w2_r13: c.init(other.c.get()); break; case types::event_w3_r13: c.init(other.c.get()); break; case types::event_b1_nr_r15: c.init(other.c.get()); break; case types::event_b2_nr_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_"); } } report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_& report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_:: operator=(const report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::event_b1: c.set(other.c.get()); break; case types::event_b2: c.set(other.c.get()); break; case types::event_w1_r13: c.set(other.c.get()); break; case types::event_w2_r13: c.set(other.c.get()); break; case types::event_w3_r13: c.set(other.c.get()); break; case types::event_b1_nr_r15: c.set(other.c.get()); break; case types::event_b2_nr_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_"); } return *this; } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::event_b1: j.write_fieldname("eventB1"); j.start_obj(); j.write_fieldname("b1-Threshold"); c.get().b1_thres.to_json(j); j.end_obj(); break; case types::event_b2: j.write_fieldname("eventB2"); j.start_obj(); j.write_fieldname("b2-Threshold1"); c.get().b2_thres1.to_json(j); j.write_fieldname("b2-Threshold2"); c.get().b2_thres2.to_json(j); j.end_obj(); break; case types::event_w1_r13: j.write_fieldname("eventW1-r13"); j.start_obj(); j.write_int("w1-Threshold-r13", c.get().w1_thres_r13); j.end_obj(); break; case types::event_w2_r13: j.write_fieldname("eventW2-r13"); j.start_obj(); j.write_int("w2-Threshold1-r13", c.get().w2_thres1_r13); j.write_int("w2-Threshold2-r13", c.get().w2_thres2_r13); j.end_obj(); break; case types::event_w3_r13: j.write_fieldname("eventW3-r13"); j.start_obj(); j.write_int("w3-Threshold-r13", c.get().w3_thres_r13); j.end_obj(); break; case types::event_b1_nr_r15: j.write_fieldname("eventB1-NR-r15"); j.start_obj(); j.write_fieldname("b1-ThresholdNR-r15"); c.get().b1_thres_nr_r15.to_json(j); j.write_bool("reportOnLeave-r15", c.get().report_on_leave_r15); j.end_obj(); break; case types::event_b2_nr_r15: j.write_fieldname("eventB2-NR-r15"); j.start_obj(); j.write_fieldname("b2-Threshold1-r15"); c.get().b2_thres1_r15.to_json(j); j.write_fieldname("b2-Threshold2NR-r15"); c.get().b2_thres2_nr_r15.to_json(j); j.write_bool("reportOnLeave-r15", c.get().report_on_leave_r15); j.end_obj(); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::event_b1: HANDLE_CODE(c.get().b1_thres.pack(bref)); break; case types::event_b2: HANDLE_CODE(c.get().b2_thres1.pack(bref)); HANDLE_CODE(c.get().b2_thres2.pack(bref)); break; case types::event_w1_r13: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().w1_thres_r13, (uint8_t)0, (uint8_t)141)); } break; case types::event_w2_r13: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().w2_thres1_r13, (uint8_t)0, (uint8_t)141)); HANDLE_CODE(pack_unalign_integer(bref, c.get().w2_thres2_r13, (uint8_t)0, (uint8_t)141)); } break; case types::event_w3_r13: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get().w3_thres_r13, (uint8_t)0, (uint8_t)141)); } break; case types::event_b1_nr_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().b1_thres_nr_r15.pack(bref)); HANDLE_CODE(bref.pack(c.get().report_on_leave_r15, 1)); } break; case types::event_b2_nr_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().b2_thres1_r15.pack(bref)); HANDLE_CODE(c.get().b2_thres2_nr_r15.pack(bref)); HANDLE_CODE(bref.pack(c.get().report_on_leave_r15, 1)); } break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::event_b1: HANDLE_CODE(c.get().b1_thres.unpack(bref)); break; case types::event_b2: HANDLE_CODE(c.get().b2_thres1.unpack(bref)); HANDLE_CODE(c.get().b2_thres2.unpack(bref)); break; case types::event_w1_r13: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get().w1_thres_r13, bref, (uint8_t)0, (uint8_t)141)); } break; case types::event_w2_r13: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get().w2_thres1_r13, bref, (uint8_t)0, (uint8_t)141)); HANDLE_CODE(unpack_unalign_integer(c.get().w2_thres2_r13, bref, (uint8_t)0, (uint8_t)141)); } break; case types::event_w3_r13: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get().w3_thres_r13, bref, (uint8_t)0, (uint8_t)141)); } break; case types::event_b1_nr_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().b1_thres_nr_r15.unpack(bref)); HANDLE_CODE(bref.unpack(c.get().report_on_leave_r15, 1)); } break; case types::event_b2_nr_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().b2_thres1_r15.unpack(bref)); HANDLE_CODE(c.get().b2_thres2_nr_r15.unpack(bref)); HANDLE_CODE(bref.unpack(c.get().report_on_leave_r15, 1)); } break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::destroy_() { switch (type_) { case types::b1_thres_utra: c.destroy(); break; default: break; } } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::b1_thres_utra: c.init(); break; case types::b1_thres_geran: break; case types::b1_thres_cdma2000: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_"); } } report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::b1_thres_c_( const report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_& other) { type_ = other.type(); switch (type_) { case types::b1_thres_utra: c.init(other.c.get()); break; case types::b1_thres_geran: c.init(other.c.get()); break; case types::b1_thres_cdma2000: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_"); } } report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_& report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_:: operator=(const report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::b1_thres_utra: c.set(other.c.get()); break; case types::b1_thres_geran: c.set(other.c.get()); break; case types::b1_thres_cdma2000: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_"); } return *this; } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::to_json( json_writer& j) const { j.start_obj(); switch (type_) { case types::b1_thres_utra: j.write_fieldname("b1-ThresholdUTRA"); c.get().to_json(j); break; case types::b1_thres_geran: j.write_int("b1-ThresholdGERAN", c.get()); break; case types::b1_thres_cdma2000: j.write_int("b1-ThresholdCDMA2000", c.get()); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::b1_thres_utra: HANDLE_CODE(c.get().pack(bref)); break; case types::b1_thres_geran: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)63)); break; case types::b1_thres_cdma2000: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)63)); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::b1_thres_utra: HANDLE_CODE(c.get().unpack(bref)); break; case types::b1_thres_geran: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)63)); break; case types::b1_thres_cdma2000: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)63)); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::destroy_() { switch (type_) { case types::b2_thres2_utra: c.destroy(); break; default: break; } } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::b2_thres2_utra: c.init(); break; case types::b2_thres2_geran: break; case types::b2_thres2_cdma2000: break; case types::nulltype: break; default: log_invalid_choice_id( type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_"); } } report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::b2_thres2_c_( const report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_& other) { type_ = other.type(); switch (type_) { case types::b2_thres2_utra: c.init(other.c.get()); break; case types::b2_thres2_geran: c.init(other.c.get()); break; case types::b2_thres2_cdma2000: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id( type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_"); } } report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_& report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_:: operator=(const report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::b2_thres2_utra: c.set(other.c.get()); break; case types::b2_thres2_geran: c.set(other.c.get()); break; case types::b2_thres2_cdma2000: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id( type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_"); } return *this; } void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::to_json( json_writer& j) const { j.start_obj(); switch (type_) { case types::b2_thres2_utra: j.write_fieldname("b2-Threshold2UTRA"); c.get().to_json(j); break; case types::b2_thres2_geran: j.write_int("b2-Threshold2GERAN", c.get()); break; case types::b2_thres2_cdma2000: j.write_int("b2-Threshold2CDMA2000", c.get()); break; default: log_invalid_choice_id( type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::b2_thres2_utra: HANDLE_CODE(c.get().pack(bref)); break; case types::b2_thres2_geran: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)63)); break; case types::b2_thres2_cdma2000: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)63)); break; default: log_invalid_choice_id( type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::b2_thres2_utra: HANDLE_CODE(c.get().unpack(bref)); break; case types::b2_thres2_geran: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)63)); break; case types::b2_thres2_cdma2000: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)63)); break; default: log_invalid_choice_id( type_, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void report_cfg_inter_rat_s::b2_thres1_v1250_c_::set(types::options e) { type_ = e; } void report_cfg_inter_rat_s::b2_thres1_v1250_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_int("setup", c); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::b2_thres1_v1250_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_inter_rat_s::b2_thres1_v1250_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c, (int8_t)-30, (int8_t)46)); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::b2_thres1_v1250_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_inter_rat_s::b2_thres1_v1250_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c, bref, (int8_t)-30, (int8_t)46)); break; default: log_invalid_choice_id(type_, "report_cfg_inter_rat_s::b2_thres1_v1250_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ReportProximityConfig-r9 ::= SEQUENCE SRSASN_CODE report_proximity_cfg_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(proximity_ind_eutra_r9_present, 1)); HANDLE_CODE(bref.pack(proximity_ind_utra_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE report_proximity_cfg_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(proximity_ind_eutra_r9_present, 1)); HANDLE_CODE(bref.unpack(proximity_ind_utra_r9_present, 1)); return SRSASN_SUCCESS; } void report_proximity_cfg_r9_s::to_json(json_writer& j) const { j.start_obj(); if (proximity_ind_eutra_r9_present) { j.write_str("proximityIndicationEUTRA-r9", "enabled"); } if (proximity_ind_utra_r9_present) { j.write_str("proximityIndicationUTRA-r9", "enabled"); } j.end_obj(); } // TrackingAreaCodeList-v1130 ::= SEQUENCE SRSASN_CODE tac_list_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_per_tac_list_r11, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE tac_list_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(plmn_id_per_tac_list_r11, bref, 1, 8)); return SRSASN_SUCCESS; } void tac_list_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("plmn-Identity-perTAC-List-r11"); for (uint32_t i1 = 0; i1 < plmn_id_per_tac_list_r11.size(); ++i1) { plmn_id_per_tac_list_r11[i1].to_json(j); } j.end_array(); j.end_obj(); } // UECapabilityEnquiry-v1430-IEs ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(request_diff_fallback_comb_list_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (request_diff_fallback_comb_list_r14_present) { HANDLE_CODE( pack_dyn_seq_of(bref, request_diff_fallback_comb_list_r14, 1, 384, SeqOfPacker(1, 64, Packer()))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(request_diff_fallback_comb_list_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (request_diff_fallback_comb_list_r14_present) { HANDLE_CODE( unpack_dyn_seq_of(request_diff_fallback_comb_list_r14, bref, 1, 384, SeqOfPacker(1, 64, Packer()))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_enquiry_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (request_diff_fallback_comb_list_r14_present) { j.start_array("requestDiffFallbackCombList-r14"); for (uint32_t i1 = 0; i1 < request_diff_fallback_comb_list_r14.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < request_diff_fallback_comb_list_r14[i1].size(); ++i2) { request_diff_fallback_comb_list_r14[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationRequest-v1250-IEs ::= SEQUENCE SRSASN_CODE ue_info_request_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mob_history_report_req_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mob_history_report_req_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_request_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mob_history_report_req_r12_present) { j.write_str("mobilityHistoryReportReq-r12", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // AreaConfiguration-v1130 ::= SEQUENCE SRSASN_CODE area_cfg_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(tac_list_v1130.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE area_cfg_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(tac_list_v1130.unpack(bref)); return SRSASN_SUCCESS; } void area_cfg_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("trackingAreaCodeList-v1130"); tac_list_v1130.to_json(j); j.end_obj(); } // CellGlobalIdEUTRA ::= SEQUENCE SRSASN_CODE cell_global_id_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(plmn_id.pack(bref)); HANDLE_CODE(cell_id.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_global_id_eutra_s::unpack(bit_ref& bref) { HANDLE_CODE(plmn_id.unpack(bref)); HANDLE_CODE(cell_id.unpack(bref)); return SRSASN_SUCCESS; } void cell_global_id_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("plmn-Identity"); plmn_id.to_json(j); j.write_str("cellIdentity", cell_id.to_string()); j.end_obj(); } // HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE SRSASN_CODE ho_from_eutra_prep_request_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dual_rx_tx_redirect_ind_r10_present, 1)); HANDLE_CODE(bref.pack(redirect_carrier_cdma2000_minus1_xrtt_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (redirect_carrier_cdma2000_minus1_xrtt_r10_present) { HANDLE_CODE(redirect_carrier_cdma2000_minus1_xrtt_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_from_eutra_prep_request_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dual_rx_tx_redirect_ind_r10_present, 1)); HANDLE_CODE(bref.unpack(redirect_carrier_cdma2000_minus1_xrtt_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (redirect_carrier_cdma2000_minus1_xrtt_r10_present) { HANDLE_CODE(redirect_carrier_cdma2000_minus1_xrtt_r10.unpack(bref)); } return SRSASN_SUCCESS; } void ho_from_eutra_prep_request_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (dual_rx_tx_redirect_ind_r10_present) { j.write_str("dualRxTxRedirectIndicator-r10", "true"); } if (redirect_carrier_cdma2000_minus1_xrtt_r10_present) { j.write_fieldname("redirectCarrierCDMA2000-1XRTT-r10"); redirect_carrier_cdma2000_minus1_xrtt_r10.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE SRSASN_CODE logged_meas_cfg_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(target_mbsfn_area_list_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (target_mbsfn_area_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, target_mbsfn_area_list_r12, 0, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE logged_meas_cfg_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(target_mbsfn_area_list_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (target_mbsfn_area_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(target_mbsfn_area_list_r12, bref, 0, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void logged_meas_cfg_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (target_mbsfn_area_list_r12_present) { j.start_array("targetMBSFN-AreaList-r12"); for (uint32_t i1 = 0; i1 < target_mbsfn_area_list_r12.size(); ++i1) { target_mbsfn_area_list_r12[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MeasIdToAddMod ::= SEQUENCE SRSASN_CODE meas_id_to_add_mod_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, meas_id, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, meas_obj_id, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, report_cfg_id, (uint8_t)1, (uint8_t)32)); return SRSASN_SUCCESS; } SRSASN_CODE meas_id_to_add_mod_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(meas_id, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(meas_obj_id, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(report_cfg_id, bref, (uint8_t)1, (uint8_t)32)); return SRSASN_SUCCESS; } void meas_id_to_add_mod_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measId", meas_id); j.write_int("measObjectId", meas_obj_id); j.write_int("reportConfigId", report_cfg_id); j.end_obj(); } // MeasIdToAddMod-v1310 ::= SEQUENCE SRSASN_CODE meas_id_to_add_mod_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_obj_id_v1310_present, 1)); if (meas_obj_id_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_obj_id_v1310, (uint8_t)33, (uint8_t)64)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_id_to_add_mod_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_obj_id_v1310_present, 1)); if (meas_obj_id_v1310_present) { HANDLE_CODE(unpack_unalign_integer(meas_obj_id_v1310, bref, (uint8_t)33, (uint8_t)64)); } return SRSASN_SUCCESS; } void meas_id_to_add_mod_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (meas_obj_id_v1310_present) { j.write_int("measObjectId-v1310", meas_obj_id_v1310); } j.end_obj(); } // MeasIdToAddModExt-r12 ::= SEQUENCE SRSASN_CODE meas_id_to_add_mod_ext_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, meas_id_v1250, (uint8_t)33, (uint8_t)64)); HANDLE_CODE(pack_unalign_integer(bref, meas_obj_id_r12, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, report_cfg_id_r12, (uint8_t)1, (uint8_t)32)); return SRSASN_SUCCESS; } SRSASN_CODE meas_id_to_add_mod_ext_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(meas_id_v1250, bref, (uint8_t)33, (uint8_t)64)); HANDLE_CODE(unpack_unalign_integer(meas_obj_id_r12, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(report_cfg_id_r12, bref, (uint8_t)1, (uint8_t)32)); return SRSASN_SUCCESS; } void meas_id_to_add_mod_ext_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measId-v1250", meas_id_v1250); j.write_int("measObjectId-r12", meas_obj_id_r12); j.write_int("reportConfigId-r12", report_cfg_id_r12); j.end_obj(); } // MeasObjectToAddMod ::= SEQUENCE SRSASN_CODE meas_obj_to_add_mod_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, meas_obj_id, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(meas_obj.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_to_add_mod_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(meas_obj_id, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(meas_obj.unpack(bref)); return SRSASN_SUCCESS; } void meas_obj_to_add_mod_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measObjectId", meas_obj_id); j.write_fieldname("measObject"); meas_obj.to_json(j); j.end_obj(); } void meas_obj_to_add_mod_s::meas_obj_c_::destroy_() { switch (type_) { case types::meas_obj_eutra: c.destroy(); break; case types::meas_obj_utra: c.destroy(); break; case types::meas_obj_geran: c.destroy(); break; case types::meas_obj_cdma2000: c.destroy(); break; case types::meas_obj_wlan_r13: c.destroy(); break; case types::meas_obj_nr_r15: c.destroy(); break; default: break; } } void meas_obj_to_add_mod_s::meas_obj_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::meas_obj_eutra: c.init(); break; case types::meas_obj_utra: c.init(); break; case types::meas_obj_geran: c.init(); break; case types::meas_obj_cdma2000: c.init(); break; case types::meas_obj_wlan_r13: c.init(); break; case types::meas_obj_nr_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_s::meas_obj_c_"); } } meas_obj_to_add_mod_s::meas_obj_c_::meas_obj_c_(const meas_obj_to_add_mod_s::meas_obj_c_& other) { type_ = other.type(); switch (type_) { case types::meas_obj_eutra: c.init(other.c.get()); break; case types::meas_obj_utra: c.init(other.c.get()); break; case types::meas_obj_geran: c.init(other.c.get()); break; case types::meas_obj_cdma2000: c.init(other.c.get()); break; case types::meas_obj_wlan_r13: c.init(other.c.get()); break; case types::meas_obj_nr_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_s::meas_obj_c_"); } } meas_obj_to_add_mod_s::meas_obj_c_& meas_obj_to_add_mod_s::meas_obj_c_:: operator=(const meas_obj_to_add_mod_s::meas_obj_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::meas_obj_eutra: c.set(other.c.get()); break; case types::meas_obj_utra: c.set(other.c.get()); break; case types::meas_obj_geran: c.set(other.c.get()); break; case types::meas_obj_cdma2000: c.set(other.c.get()); break; case types::meas_obj_wlan_r13: c.set(other.c.get()); break; case types::meas_obj_nr_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_s::meas_obj_c_"); } return *this; } void meas_obj_to_add_mod_s::meas_obj_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::meas_obj_eutra: j.write_fieldname("measObjectEUTRA"); c.get().to_json(j); break; case types::meas_obj_utra: j.write_fieldname("measObjectUTRA"); c.get().to_json(j); break; case types::meas_obj_geran: j.write_fieldname("measObjectGERAN"); c.get().to_json(j); break; case types::meas_obj_cdma2000: j.write_fieldname("measObjectCDMA2000"); c.get().to_json(j); break; case types::meas_obj_wlan_r13: j.write_fieldname("measObjectWLAN-r13"); c.get().to_json(j); break; case types::meas_obj_nr_r15: j.write_fieldname("measObjectNR-r15"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_s::meas_obj_c_"); } j.end_obj(); } SRSASN_CODE meas_obj_to_add_mod_s::meas_obj_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::meas_obj_eutra: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_obj_utra: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_obj_geran: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_obj_cdma2000: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_obj_wlan_r13: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::meas_obj_nr_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_s::meas_obj_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_to_add_mod_s::meas_obj_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::meas_obj_eutra: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_obj_utra: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_obj_geran: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_obj_cdma2000: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_obj_wlan_r13: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::meas_obj_nr_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_s::meas_obj_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasObjectToAddMod-v9e0 ::= SEQUENCE SRSASN_CODE meas_obj_to_add_mod_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_obj_eutra_v9e0_present, 1)); if (meas_obj_eutra_v9e0_present) { HANDLE_CODE(meas_obj_eutra_v9e0.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_to_add_mod_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_obj_eutra_v9e0_present, 1)); if (meas_obj_eutra_v9e0_present) { HANDLE_CODE(meas_obj_eutra_v9e0.unpack(bref)); } return SRSASN_SUCCESS; } void meas_obj_to_add_mod_v9e0_s::to_json(json_writer& j) const { j.start_obj(); if (meas_obj_eutra_v9e0_present) { j.write_fieldname("measObjectEUTRA-v9e0"); meas_obj_eutra_v9e0.to_json(j); } j.end_obj(); } // MeasObjectToAddModExt-r13 ::= SEQUENCE SRSASN_CODE meas_obj_to_add_mod_ext_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, meas_obj_id_r13, (uint8_t)33, (uint8_t)64)); HANDLE_CODE(meas_obj_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_to_add_mod_ext_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(meas_obj_id_r13, bref, (uint8_t)33, (uint8_t)64)); HANDLE_CODE(meas_obj_r13.unpack(bref)); return SRSASN_SUCCESS; } void meas_obj_to_add_mod_ext_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measObjectId-r13", meas_obj_id_r13); j.write_fieldname("measObject-r13"); meas_obj_r13.to_json(j); j.end_obj(); } void meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::destroy_() { switch (type_) { case types::meas_obj_eutra_r13: c.destroy(); break; case types::meas_obj_utra_r13: c.destroy(); break; case types::meas_obj_geran_r13: c.destroy(); break; case types::meas_obj_cdma2000_r13: c.destroy(); break; case types::meas_obj_wlan_v1320: c.destroy(); break; case types::meas_obj_nr_r15: c.destroy(); break; default: break; } } void meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::meas_obj_eutra_r13: c.init(); break; case types::meas_obj_utra_r13: c.init(); break; case types::meas_obj_geran_r13: c.init(); break; case types::meas_obj_cdma2000_r13: c.init(); break; case types::meas_obj_wlan_v1320: c.init(); break; case types::meas_obj_nr_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_"); } } meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::meas_obj_r13_c_( const meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_& other) { type_ = other.type(); switch (type_) { case types::meas_obj_eutra_r13: c.init(other.c.get()); break; case types::meas_obj_utra_r13: c.init(other.c.get()); break; case types::meas_obj_geran_r13: c.init(other.c.get()); break; case types::meas_obj_cdma2000_r13: c.init(other.c.get()); break; case types::meas_obj_wlan_v1320: c.init(other.c.get()); break; case types::meas_obj_nr_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_"); } } meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_& meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_:: operator=(const meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::meas_obj_eutra_r13: c.set(other.c.get()); break; case types::meas_obj_utra_r13: c.set(other.c.get()); break; case types::meas_obj_geran_r13: c.set(other.c.get()); break; case types::meas_obj_cdma2000_r13: c.set(other.c.get()); break; case types::meas_obj_wlan_v1320: c.set(other.c.get()); break; case types::meas_obj_nr_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_"); } return *this; } void meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::meas_obj_eutra_r13: j.write_fieldname("measObjectEUTRA-r13"); c.get().to_json(j); break; case types::meas_obj_utra_r13: j.write_fieldname("measObjectUTRA-r13"); c.get().to_json(j); break; case types::meas_obj_geran_r13: j.write_fieldname("measObjectGERAN-r13"); c.get().to_json(j); break; case types::meas_obj_cdma2000_r13: j.write_fieldname("measObjectCDMA2000-r13"); c.get().to_json(j); break; case types::meas_obj_wlan_v1320: j.write_fieldname("measObjectWLAN-v1320"); c.get().to_json(j); break; case types::meas_obj_nr_r15: j.write_fieldname("measObjectNR-r15"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_"); } j.end_obj(); } SRSASN_CODE meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::meas_obj_eutra_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_obj_utra_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_obj_geran_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_obj_cdma2000_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_obj_wlan_v1320: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::meas_obj_nr_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::meas_obj_eutra_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_obj_utra_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_obj_geran_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_obj_cdma2000_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_obj_wlan_v1320: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::meas_obj_nr_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; default: log_invalid_choice_id(type_, "meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MobilityFromEUTRACommand-v1530-IEs ::= SEQUENCE SRSASN_CODE mob_from_eutra_cmd_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(smtc_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (smtc_r15_present) { HANDLE_CODE(smtc_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(smtc_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (smtc_r15_present) { HANDLE_CODE(smtc_r15.unpack(bref)); } return SRSASN_SUCCESS; } void mob_from_eutra_cmd_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (smtc_r15_present) { j.write_fieldname("smtc-r15"); smtc_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // OtherConfig-r9 ::= SEQUENCE SRSASN_CODE other_cfg_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(report_proximity_cfg_r9_present, 1)); if (report_proximity_cfg_r9_present) { HANDLE_CODE(report_proximity_cfg_r9.pack(bref)); } if (ext) { ext_groups_header group_flags(4); rrc_asn1_warn_assert(idc_cfg_r11_present != (idc_cfg_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= idc_cfg_r11_present; rrc_asn1_warn_assert(pwr_pref_ind_cfg_r11_present != (pwr_pref_ind_cfg_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= pwr_pref_ind_cfg_r11_present; rrc_asn1_warn_assert(obtain_location_cfg_r11_present != (obtain_location_cfg_r11.get() != NULL), __FILE__, __LINE__); group_flags[0] |= obtain_location_cfg_r11_present; group_flags[1] |= bw_pref_ind_timer_r14_present; group_flags[1] |= sps_assist_info_report_r14_present; rrc_asn1_warn_assert(delay_budget_report_cfg_r14_present != (delay_budget_report_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[1] |= delay_budget_report_cfg_r14_present; rrc_asn1_warn_assert(rlm_report_cfg_r14_present != (rlm_report_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[1] |= rlm_report_cfg_r14_present; rrc_asn1_warn_assert(overheat_assist_cfg_r14_present != (overheat_assist_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[2] |= overheat_assist_cfg_r14_present; rrc_asn1_warn_assert(meas_cfg_app_layer_r15_present != (meas_cfg_app_layer_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_cfg_app_layer_r15_present; group_flags[3] |= ailc_bit_cfg_r15_present; rrc_asn1_warn_assert(bt_name_list_cfg_r15_present != (bt_name_list_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= bt_name_list_cfg_r15_present; rrc_asn1_warn_assert(wlan_name_list_cfg_r15_present != (wlan_name_list_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= wlan_name_list_cfg_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(idc_cfg_r11_present, 1)); HANDLE_CODE(bref.pack(pwr_pref_ind_cfg_r11_present, 1)); HANDLE_CODE(bref.pack(obtain_location_cfg_r11_present, 1)); if (idc_cfg_r11_present) { HANDLE_CODE(idc_cfg_r11->pack(bref)); } if (pwr_pref_ind_cfg_r11_present) { HANDLE_CODE(pwr_pref_ind_cfg_r11->pack(bref)); } if (obtain_location_cfg_r11_present) { HANDLE_CODE(obtain_location_cfg_r11->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(bw_pref_ind_timer_r14_present, 1)); HANDLE_CODE(bref.pack(sps_assist_info_report_r14_present, 1)); HANDLE_CODE(bref.pack(delay_budget_report_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(rlm_report_cfg_r14_present, 1)); if (bw_pref_ind_timer_r14_present) { HANDLE_CODE(pack_enum(bref, bw_pref_ind_timer_r14)); } if (sps_assist_info_report_r14_present) { HANDLE_CODE(bref.pack(sps_assist_info_report_r14, 1)); } if (delay_budget_report_cfg_r14_present) { HANDLE_CODE(delay_budget_report_cfg_r14->pack(bref)); } if (rlm_report_cfg_r14_present) { HANDLE_CODE(rlm_report_cfg_r14->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(overheat_assist_cfg_r14_present, 1)); if (overheat_assist_cfg_r14_present) { HANDLE_CODE(overheat_assist_cfg_r14->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_cfg_app_layer_r15_present, 1)); HANDLE_CODE(bref.pack(ailc_bit_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(bt_name_list_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(wlan_name_list_cfg_r15_present, 1)); if (meas_cfg_app_layer_r15_present) { HANDLE_CODE(meas_cfg_app_layer_r15->pack(bref)); } if (ailc_bit_cfg_r15_present) { HANDLE_CODE(bref.pack(ailc_bit_cfg_r15, 1)); } if (bt_name_list_cfg_r15_present) { HANDLE_CODE(bt_name_list_cfg_r15->pack(bref)); } if (wlan_name_list_cfg_r15_present) { HANDLE_CODE(wlan_name_list_cfg_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE other_cfg_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(report_proximity_cfg_r9_present, 1)); if (report_proximity_cfg_r9_present) { HANDLE_CODE(report_proximity_cfg_r9.unpack(bref)); } if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(idc_cfg_r11_present, 1)); HANDLE_CODE(bref.unpack(pwr_pref_ind_cfg_r11_present, 1)); HANDLE_CODE(bref.unpack(obtain_location_cfg_r11_present, 1)); if (idc_cfg_r11_present) { idc_cfg_r11 = make_copy_ptr(idc_cfg_r11_s()); HANDLE_CODE(idc_cfg_r11->unpack(bref)); } if (pwr_pref_ind_cfg_r11_present) { pwr_pref_ind_cfg_r11 = make_copy_ptr(pwr_pref_ind_cfg_r11_c()); HANDLE_CODE(pwr_pref_ind_cfg_r11->unpack(bref)); } if (obtain_location_cfg_r11_present) { obtain_location_cfg_r11 = make_copy_ptr(obtain_location_cfg_r11_s()); HANDLE_CODE(obtain_location_cfg_r11->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(bw_pref_ind_timer_r14_present, 1)); HANDLE_CODE(bref.unpack(sps_assist_info_report_r14_present, 1)); HANDLE_CODE(bref.unpack(delay_budget_report_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(rlm_report_cfg_r14_present, 1)); if (bw_pref_ind_timer_r14_present) { HANDLE_CODE(unpack_enum(bw_pref_ind_timer_r14, bref)); } if (sps_assist_info_report_r14_present) { HANDLE_CODE(bref.unpack(sps_assist_info_report_r14, 1)); } if (delay_budget_report_cfg_r14_present) { delay_budget_report_cfg_r14 = make_copy_ptr(delay_budget_report_cfg_r14_c_()); HANDLE_CODE(delay_budget_report_cfg_r14->unpack(bref)); } if (rlm_report_cfg_r14_present) { rlm_report_cfg_r14 = make_copy_ptr(rlm_report_cfg_r14_c_()); HANDLE_CODE(rlm_report_cfg_r14->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(overheat_assist_cfg_r14_present, 1)); if (overheat_assist_cfg_r14_present) { overheat_assist_cfg_r14 = make_copy_ptr(overheat_assist_cfg_r14_c_()); HANDLE_CODE(overheat_assist_cfg_r14->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_cfg_app_layer_r15_present, 1)); HANDLE_CODE(bref.unpack(ailc_bit_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(bt_name_list_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(wlan_name_list_cfg_r15_present, 1)); if (meas_cfg_app_layer_r15_present) { meas_cfg_app_layer_r15 = make_copy_ptr(meas_cfg_app_layer_r15_c_()); HANDLE_CODE(meas_cfg_app_layer_r15->unpack(bref)); } if (ailc_bit_cfg_r15_present) { HANDLE_CODE(bref.unpack(ailc_bit_cfg_r15, 1)); } if (bt_name_list_cfg_r15_present) { bt_name_list_cfg_r15 = make_copy_ptr(bt_name_list_cfg_r15_c()); HANDLE_CODE(bt_name_list_cfg_r15->unpack(bref)); } if (wlan_name_list_cfg_r15_present) { wlan_name_list_cfg_r15 = make_copy_ptr(wlan_name_list_cfg_r15_c()); HANDLE_CODE(wlan_name_list_cfg_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void other_cfg_r9_s::to_json(json_writer& j) const { j.start_obj(); if (report_proximity_cfg_r9_present) { j.write_fieldname("reportProximityConfig-r9"); report_proximity_cfg_r9.to_json(j); } if (ext) { rrc_asn1_warn_assert(idc_cfg_r11_present != (idc_cfg_r11.get() != NULL), __FILE__, __LINE__); if (idc_cfg_r11_present) { j.write_fieldname("idc-Config-r11"); idc_cfg_r11->to_json(j); } rrc_asn1_warn_assert(pwr_pref_ind_cfg_r11_present != (pwr_pref_ind_cfg_r11.get() != NULL), __FILE__, __LINE__); if (pwr_pref_ind_cfg_r11_present) { j.write_fieldname("powerPrefIndicationConfig-r11"); pwr_pref_ind_cfg_r11->to_json(j); } rrc_asn1_warn_assert(obtain_location_cfg_r11_present != (obtain_location_cfg_r11.get() != NULL), __FILE__, __LINE__); if (obtain_location_cfg_r11_present) { j.write_fieldname("obtainLocationConfig-r11"); obtain_location_cfg_r11->to_json(j); } if (bw_pref_ind_timer_r14_present) { j.write_str("bw-PreferenceIndicationTimer-r14", bw_pref_ind_timer_r14.to_string()); } if (sps_assist_info_report_r14_present) { j.write_bool("sps-AssistanceInfoReport-r14", sps_assist_info_report_r14); } rrc_asn1_warn_assert(delay_budget_report_cfg_r14_present != (delay_budget_report_cfg_r14.get() != NULL), __FILE__, __LINE__); if (delay_budget_report_cfg_r14_present) { j.write_fieldname("delayBudgetReportingConfig-r14"); delay_budget_report_cfg_r14->to_json(j); } rrc_asn1_warn_assert(rlm_report_cfg_r14_present != (rlm_report_cfg_r14.get() != NULL), __FILE__, __LINE__); if (rlm_report_cfg_r14_present) { j.write_fieldname("rlm-ReportConfig-r14"); rlm_report_cfg_r14->to_json(j); } rrc_asn1_warn_assert(overheat_assist_cfg_r14_present != (overheat_assist_cfg_r14.get() != NULL), __FILE__, __LINE__); if (overheat_assist_cfg_r14_present) { j.write_fieldname("overheatingAssistanceConfig-r14"); overheat_assist_cfg_r14->to_json(j); } rrc_asn1_warn_assert(meas_cfg_app_layer_r15_present != (meas_cfg_app_layer_r15.get() != NULL), __FILE__, __LINE__); if (meas_cfg_app_layer_r15_present) { j.write_fieldname("measConfigAppLayer-r15"); meas_cfg_app_layer_r15->to_json(j); } if (ailc_bit_cfg_r15_present) { j.write_bool("ailc-BitConfig-r15", ailc_bit_cfg_r15); } rrc_asn1_warn_assert(bt_name_list_cfg_r15_present != (bt_name_list_cfg_r15.get() != NULL), __FILE__, __LINE__); if (bt_name_list_cfg_r15_present) { j.write_fieldname("bt-NameListConfig-r15"); bt_name_list_cfg_r15->to_json(j); } rrc_asn1_warn_assert(wlan_name_list_cfg_r15_present != (wlan_name_list_cfg_r15.get() != NULL), __FILE__, __LINE__); if (wlan_name_list_cfg_r15_present) { j.write_fieldname("wlan-NameListConfig-r15"); wlan_name_list_cfg_r15->to_json(j); } } j.end_obj(); } void other_cfg_r9_s::delay_budget_report_cfg_r14_c_::set(types::options e) { type_ = e; } void other_cfg_r9_s::delay_budget_report_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("delayBudgetReportingProhibitTimer-r14", c.delay_budget_report_prohibit_timer_r14.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::delay_budget_report_cfg_r14_c_"); } j.end_obj(); } SRSASN_CODE other_cfg_r9_s::delay_budget_report_cfg_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.delay_budget_report_prohibit_timer_r14)); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::delay_budget_report_cfg_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE other_cfg_r9_s::delay_budget_report_cfg_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.delay_budget_report_prohibit_timer_r14, bref)); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::delay_budget_report_cfg_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void other_cfg_r9_s::rlm_report_cfg_r14_c_::set(types::options e) { type_ = e; } void other_cfg_r9_s::rlm_report_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("rlmReportTimer-r14", c.rlm_report_timer_r14.to_string()); if (c.rlm_report_rep_mpdcch_r14_present) { j.write_str("rlmReportRep-MPDCCH-r14", "setup"); } j.end_obj(); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::rlm_report_cfg_r14_c_"); } j.end_obj(); } SRSASN_CODE other_cfg_r9_s::rlm_report_cfg_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.rlm_report_rep_mpdcch_r14_present, 1)); HANDLE_CODE(pack_enum(bref, c.rlm_report_timer_r14)); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::rlm_report_cfg_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE other_cfg_r9_s::rlm_report_cfg_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.rlm_report_rep_mpdcch_r14_present, 1)); HANDLE_CODE(unpack_enum(c.rlm_report_timer_r14, bref)); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::rlm_report_cfg_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void other_cfg_r9_s::overheat_assist_cfg_r14_c_::set(types::options e) { type_ = e; } void other_cfg_r9_s::overheat_assist_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("overheatingIndicationProhibitTimer-r14", c.overheat_ind_prohibit_timer_r14.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::overheat_assist_cfg_r14_c_"); } j.end_obj(); } SRSASN_CODE other_cfg_r9_s::overheat_assist_cfg_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.overheat_ind_prohibit_timer_r14)); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::overheat_assist_cfg_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE other_cfg_r9_s::overheat_assist_cfg_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.overheat_ind_prohibit_timer_r14, bref)); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::overheat_assist_cfg_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void other_cfg_r9_s::meas_cfg_app_layer_r15_c_::set(types::options e) { type_ = e; } void other_cfg_r9_s::meas_cfg_app_layer_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("measConfigAppLayerContainer-r15", c.meas_cfg_app_layer_container_r15.to_string()); j.write_str("serviceType", c.service_type.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::meas_cfg_app_layer_r15_c_"); } j.end_obj(); } SRSASN_CODE other_cfg_r9_s::meas_cfg_app_layer_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.meas_cfg_app_layer_container_r15.pack(bref)); HANDLE_CODE(pack_enum(bref, c.service_type)); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::meas_cfg_app_layer_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE other_cfg_r9_s::meas_cfg_app_layer_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.meas_cfg_app_layer_container_r15.unpack(bref)); HANDLE_CODE(unpack_enum(c.service_type, bref)); break; default: log_invalid_choice_id(type_, "other_cfg_r9_s::meas_cfg_app_layer_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PRACH-Config-v1310 ::= SEQUENCE SRSASN_CODE prach_cfg_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rsrp_thress_prach_info_list_r13_present, 1)); HANDLE_CODE(bref.pack(mpdcch_start_sf_css_ra_r13_present, 1)); HANDLE_CODE(bref.pack(prach_hop_offset_r13_present, 1)); HANDLE_CODE(bref.pack(prach_params_list_ce_r13_present, 1)); HANDLE_CODE(bref.pack(init_ce_level_r13_present, 1)); if (rsrp_thress_prach_info_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, rsrp_thress_prach_info_list_r13, 1, 3, UnalignedIntegerPacker(0, 97))); } if (mpdcch_start_sf_css_ra_r13_present) { HANDLE_CODE(mpdcch_start_sf_css_ra_r13.pack(bref)); } if (prach_hop_offset_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, prach_hop_offset_r13, (uint8_t)0, (uint8_t)94)); } if (prach_params_list_ce_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, prach_params_list_ce_r13, 1, 4)); } if (init_ce_level_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, init_ce_level_r13, (uint8_t)0, (uint8_t)3)); } return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rsrp_thress_prach_info_list_r13_present, 1)); HANDLE_CODE(bref.unpack(mpdcch_start_sf_css_ra_r13_present, 1)); HANDLE_CODE(bref.unpack(prach_hop_offset_r13_present, 1)); HANDLE_CODE(bref.unpack(prach_params_list_ce_r13_present, 1)); HANDLE_CODE(bref.unpack(init_ce_level_r13_present, 1)); if (rsrp_thress_prach_info_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(rsrp_thress_prach_info_list_r13, bref, 1, 3, UnalignedIntegerPacker(0, 97))); } if (mpdcch_start_sf_css_ra_r13_present) { HANDLE_CODE(mpdcch_start_sf_css_ra_r13.unpack(bref)); } if (prach_hop_offset_r13_present) { HANDLE_CODE(unpack_unalign_integer(prach_hop_offset_r13, bref, (uint8_t)0, (uint8_t)94)); } if (prach_params_list_ce_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(prach_params_list_ce_r13, bref, 1, 4)); } if (init_ce_level_r13_present) { HANDLE_CODE(unpack_unalign_integer(init_ce_level_r13, bref, (uint8_t)0, (uint8_t)3)); } return SRSASN_SUCCESS; } void prach_cfg_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (rsrp_thress_prach_info_list_r13_present) { j.start_array("rsrp-ThresholdsPrachInfoList-r13"); for (uint32_t i1 = 0; i1 < rsrp_thress_prach_info_list_r13.size(); ++i1) { j.write_int(rsrp_thress_prach_info_list_r13[i1]); } j.end_array(); } if (mpdcch_start_sf_css_ra_r13_present) { j.write_fieldname("mpdcch-startSF-CSS-RA-r13"); mpdcch_start_sf_css_ra_r13.to_json(j); } if (prach_hop_offset_r13_present) { j.write_int("prach-HoppingOffset-r13", prach_hop_offset_r13); } if (prach_params_list_ce_r13_present) { j.start_array("prach-ParametersListCE-r13"); for (uint32_t i1 = 0; i1 < prach_params_list_ce_r13.size(); ++i1) { prach_params_list_ce_r13[i1].to_json(j); } j.end_array(); } if (init_ce_level_r13_present) { j.write_int("initial-CE-level-r13", init_ce_level_r13); } j.end_obj(); } void prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::destroy_() {} void prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::set(types::options e) { destroy_(); type_ = e; } prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::mpdcch_start_sf_css_ra_r13_c_( const prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_& other) { type_ = other.type(); switch (type_) { case types::fdd_r13: c.init(other.c.get()); break; case types::tdd_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); } } prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_& prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_:: operator=(const prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd_r13: c.set(other.c.get()); break; case types::tdd_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); } return *this; } void prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd_r13: j.write_str("fdd-r13", c.get().to_string()); break; case types::tdd_r13: j.write_str("tdd-r13", c.get().to_string()); break; default: log_invalid_choice_id(type_, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); } j.end_obj(); } SRSASN_CODE prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::tdd_r13: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::tdd_r13: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // QuantityConfigCDMA2000 ::= SEQUENCE SRSASN_CODE quant_cfg_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, meas_quant_cdma2000)); return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(meas_quant_cdma2000, bref)); return SRSASN_SUCCESS; } void quant_cfg_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("measQuantityCDMA2000", meas_quant_cdma2000.to_string()); j.end_obj(); } // QuantityConfigEUTRA ::= SEQUENCE SRSASN_CODE quant_cfg_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coef_rsrp_present, 1)); HANDLE_CODE(bref.pack(filt_coef_rsrq_present, 1)); if (filt_coef_rsrp_present) { HANDLE_CODE(pack_enum(bref, filt_coef_rsrp)); } if (filt_coef_rsrq_present) { HANDLE_CODE(pack_enum(bref, filt_coef_rsrq)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_eutra_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coef_rsrp_present, 1)); HANDLE_CODE(bref.unpack(filt_coef_rsrq_present, 1)); if (filt_coef_rsrp_present) { HANDLE_CODE(unpack_enum(filt_coef_rsrp, bref)); } if (filt_coef_rsrq_present) { HANDLE_CODE(unpack_enum(filt_coef_rsrq, bref)); } return SRSASN_SUCCESS; } void quant_cfg_eutra_s::to_json(json_writer& j) const { j.start_obj(); if (filt_coef_rsrp_present) { j.write_str("filterCoefficientRSRP", filt_coef_rsrp.to_string()); } if (filt_coef_rsrq_present) { j.write_str("filterCoefficientRSRQ", filt_coef_rsrq.to_string()); } j.end_obj(); } // QuantityConfigEUTRA-v1250 ::= SEQUENCE SRSASN_CODE quant_cfg_eutra_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coef_csi_rsrp_r12_present, 1)); if (filt_coef_csi_rsrp_r12_present) { HANDLE_CODE(pack_enum(bref, filt_coef_csi_rsrp_r12)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_eutra_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coef_csi_rsrp_r12_present, 1)); if (filt_coef_csi_rsrp_r12_present) { HANDLE_CODE(unpack_enum(filt_coef_csi_rsrp_r12, bref)); } return SRSASN_SUCCESS; } void quant_cfg_eutra_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (filt_coef_csi_rsrp_r12_present) { j.write_str("filterCoefficientCSI-RSRP-r12", filt_coef_csi_rsrp_r12.to_string()); } j.end_obj(); } // QuantityConfigEUTRA-v1310 ::= SEQUENCE SRSASN_CODE quant_cfg_eutra_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coef_rs_sinr_r13_present, 1)); if (filt_coef_rs_sinr_r13_present) { HANDLE_CODE(pack_enum(bref, filt_coef_rs_sinr_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_eutra_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coef_rs_sinr_r13_present, 1)); if (filt_coef_rs_sinr_r13_present) { HANDLE_CODE(unpack_enum(filt_coef_rs_sinr_r13, bref)); } return SRSASN_SUCCESS; } void quant_cfg_eutra_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (filt_coef_rs_sinr_r13_present) { j.write_str("filterCoefficientRS-SINR-r13", filt_coef_rs_sinr_r13.to_string()); } j.end_obj(); } // QuantityConfigGERAN ::= SEQUENCE SRSASN_CODE quant_cfg_geran_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coef_present, 1)); if (filt_coef_present) { HANDLE_CODE(pack_enum(bref, filt_coef)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_geran_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coef_present, 1)); if (filt_coef_present) { HANDLE_CODE(unpack_enum(filt_coef, bref)); } return SRSASN_SUCCESS; } void quant_cfg_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("measQuantityGERAN", "rssi"); if (filt_coef_present) { j.write_str("filterCoefficient", filt_coef.to_string()); } j.end_obj(); } // QuantityConfigUTRA ::= SEQUENCE SRSASN_CODE quant_cfg_utra_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coef_present, 1)); HANDLE_CODE(pack_enum(bref, meas_quant_utra_fdd)); if (filt_coef_present) { HANDLE_CODE(pack_enum(bref, filt_coef)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_utra_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coef_present, 1)); HANDLE_CODE(unpack_enum(meas_quant_utra_fdd, bref)); if (filt_coef_present) { HANDLE_CODE(unpack_enum(filt_coef, bref)); } return SRSASN_SUCCESS; } void quant_cfg_utra_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("measQuantityUTRA-FDD", meas_quant_utra_fdd.to_string()); j.write_str("measQuantityUTRA-TDD", "pccpch-RSCP"); if (filt_coef_present) { j.write_str("filterCoefficient", filt_coef.to_string()); } j.end_obj(); } // QuantityConfigUTRA-v1020 ::= SEQUENCE SRSASN_CODE quant_cfg_utra_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coef2_fdd_r10_present, 1)); if (filt_coef2_fdd_r10_present) { HANDLE_CODE(pack_enum(bref, filt_coef2_fdd_r10)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_utra_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coef2_fdd_r10_present, 1)); if (filt_coef2_fdd_r10_present) { HANDLE_CODE(unpack_enum(filt_coef2_fdd_r10, bref)); } return SRSASN_SUCCESS; } void quant_cfg_utra_v1020_s::to_json(json_writer& j) const { j.start_obj(); if (filt_coef2_fdd_r10_present) { j.write_str("filterCoefficient2-FDD-r10", filt_coef2_fdd_r10.to_string()); } j.end_obj(); } // QuantityConfigWLAN-r13 ::= SEQUENCE SRSASN_CODE quant_cfg_wlan_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(filt_coef_r13_present, 1)); if (filt_coef_r13_present) { HANDLE_CODE(pack_enum(bref, filt_coef_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_wlan_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(filt_coef_r13_present, 1)); if (filt_coef_r13_present) { HANDLE_CODE(unpack_enum(filt_coef_r13, bref)); } return SRSASN_SUCCESS; } void quant_cfg_wlan_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("measQuantityWLAN-r13", "rssiWLAN"); if (filt_coef_r13_present) { j.write_str("filterCoefficient-r13", filt_coef_r13.to_string()); } j.end_obj(); } // RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(s_cell_to_release_list_r10_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (s_cell_to_release_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_release_list_r10, 1, 4, UnalignedIntegerPacker(1, 7))); } if (s_cell_to_add_mod_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_r10, 1, 4)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(s_cell_to_release_list_r10_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (s_cell_to_release_list_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_release_list_r10, bref, 1, 4, UnalignedIntegerPacker(1, 7))); } if (s_cell_to_add_mod_list_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_r10, bref, 1, 4)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (s_cell_to_release_list_r10_present) { j.start_array("sCellToReleaseList-r10"); for (uint32_t i1 = 0; i1 < s_cell_to_release_list_r10.size(); ++i1) { j.write_int(s_cell_to_release_list_r10[i1]); } j.end_array(); } if (s_cell_to_add_mod_list_r10_present) { j.start_array("sCellToAddModList-r10"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_r10.size(); ++i1) { s_cell_to_add_mod_list_r10[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v10i0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ant_info_ded_pcell_v10i0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ant_info_ded_pcell_v10i0_present) { HANDLE_CODE(ant_info_ded_pcell_v10i0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v10i0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ant_info_ded_pcell_v10i0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ant_info_ded_pcell_v10i0_present) { HANDLE_CODE(ant_info_ded_pcell_v10i0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v10i0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ant_info_ded_pcell_v10i0_present) { j.write_fieldname("antennaInfoDedicatedPCell-v10i0"); ant_info_ded_pcell_v10i0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionRelease-v1020-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(extended_wait_time_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (extended_wait_time_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, extended_wait_time_r10, (uint16_t)1, (uint16_t)1800)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(extended_wait_time_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (extended_wait_time_r10_present) { HANDLE_CODE(unpack_unalign_integer(extended_wait_time_r10, bref, (uint16_t)1, (uint16_t)1800)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_release_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (extended_wait_time_r10_present) { j.write_int("extendedWaitTime-r10", extended_wait_time_r10); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionResume-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_resume_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(full_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(full_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } void rrc_conn_resume_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (full_cfg_r15_present) { j.write_str("fullConfig-r15", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RedirectedCarrierInfo-v9e0 ::= SEQUENCE SRSASN_CODE redirected_carrier_info_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, eutra_v9e0, (uint32_t)65536, (uint32_t)262143)); return SRSASN_SUCCESS; } SRSASN_CODE redirected_carrier_info_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(eutra_v9e0, bref, (uint32_t)65536, (uint32_t)262143)); return SRSASN_SUCCESS; } void redirected_carrier_info_v9e0_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("eutra-v9e0", eutra_v9e0); j.end_obj(); } // ReportConfigToAddMod ::= SEQUENCE SRSASN_CODE report_cfg_to_add_mod_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, report_cfg_id, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(report_cfg.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_to_add_mod_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(report_cfg_id, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(report_cfg.unpack(bref)); return SRSASN_SUCCESS; } void report_cfg_to_add_mod_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("reportConfigId", report_cfg_id); j.write_fieldname("reportConfig"); report_cfg.to_json(j); j.end_obj(); } void report_cfg_to_add_mod_s::report_cfg_c_::destroy_() { switch (type_) { case types::report_cfg_eutra: c.destroy(); break; case types::report_cfg_inter_rat: c.destroy(); break; default: break; } } void report_cfg_to_add_mod_s::report_cfg_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::report_cfg_eutra: c.init(); break; case types::report_cfg_inter_rat: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_to_add_mod_s::report_cfg_c_"); } } report_cfg_to_add_mod_s::report_cfg_c_::report_cfg_c_(const report_cfg_to_add_mod_s::report_cfg_c_& other) { type_ = other.type(); switch (type_) { case types::report_cfg_eutra: c.init(other.c.get()); break; case types::report_cfg_inter_rat: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_to_add_mod_s::report_cfg_c_"); } } report_cfg_to_add_mod_s::report_cfg_c_& report_cfg_to_add_mod_s::report_cfg_c_:: operator=(const report_cfg_to_add_mod_s::report_cfg_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::report_cfg_eutra: c.set(other.c.get()); break; case types::report_cfg_inter_rat: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "report_cfg_to_add_mod_s::report_cfg_c_"); } return *this; } void report_cfg_to_add_mod_s::report_cfg_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::report_cfg_eutra: j.write_fieldname("reportConfigEUTRA"); c.get().to_json(j); break; case types::report_cfg_inter_rat: j.write_fieldname("reportConfigInterRAT"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "report_cfg_to_add_mod_s::report_cfg_c_"); } j.end_obj(); } SRSASN_CODE report_cfg_to_add_mod_s::report_cfg_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::report_cfg_eutra: HANDLE_CODE(c.get().pack(bref)); break; case types::report_cfg_inter_rat: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "report_cfg_to_add_mod_s::report_cfg_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE report_cfg_to_add_mod_s::report_cfg_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::report_cfg_eutra: HANDLE_CODE(c.get().unpack(bref)); break; case types::report_cfg_inter_rat: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "report_cfg_to_add_mod_s::report_cfg_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UECapabilityEnquiry-v1310-IEs ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(request_reduced_format_r13_present, 1)); HANDLE_CODE(bref.pack(request_skip_fallback_comb_r13_present, 1)); HANDLE_CODE(bref.pack(requested_max_ccs_dl_r13_present, 1)); HANDLE_CODE(bref.pack(requested_max_ccs_ul_r13_present, 1)); HANDLE_CODE(bref.pack(request_reduced_int_non_cont_comb_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (requested_max_ccs_dl_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, requested_max_ccs_dl_r13, (uint8_t)2, (uint8_t)32)); } if (requested_max_ccs_ul_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, requested_max_ccs_ul_r13, (uint8_t)2, (uint8_t)32)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(request_reduced_format_r13_present, 1)); HANDLE_CODE(bref.unpack(request_skip_fallback_comb_r13_present, 1)); HANDLE_CODE(bref.unpack(requested_max_ccs_dl_r13_present, 1)); HANDLE_CODE(bref.unpack(requested_max_ccs_ul_r13_present, 1)); HANDLE_CODE(bref.unpack(request_reduced_int_non_cont_comb_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (requested_max_ccs_dl_r13_present) { HANDLE_CODE(unpack_unalign_integer(requested_max_ccs_dl_r13, bref, (uint8_t)2, (uint8_t)32)); } if (requested_max_ccs_ul_r13_present) { HANDLE_CODE(unpack_unalign_integer(requested_max_ccs_ul_r13, bref, (uint8_t)2, (uint8_t)32)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_enquiry_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (request_reduced_format_r13_present) { j.write_str("requestReducedFormat-r13", "true"); } if (request_skip_fallback_comb_r13_present) { j.write_str("requestSkipFallbackComb-r13", "true"); } if (requested_max_ccs_dl_r13_present) { j.write_int("requestedMaxCCsDL-r13", requested_max_ccs_dl_r13); } if (requested_max_ccs_ul_r13_present) { j.write_int("requestedMaxCCsUL-r13", requested_max_ccs_ul_r13); } if (request_reduced_int_non_cont_comb_r13_present) { j.write_str("requestReducedIntNonContComb-r13", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationRequest-v1130-IEs ::= SEQUENCE SRSASN_CODE ue_info_request_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(conn_est_fail_report_req_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(conn_est_fail_report_req_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_request_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (conn_est_fail_report_req_r11_present) { j.write_str("connEstFailReportReq-r11", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CarrierBandwidthEUTRA ::= SEQUENCE SRSASN_CODE carrier_bw_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_bw_present, 1)); HANDLE_CODE(pack_enum(bref, dl_bw)); if (ul_bw_present) { HANDLE_CODE(pack_enum(bref, ul_bw)); } return SRSASN_SUCCESS; } SRSASN_CODE carrier_bw_eutra_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_bw_present, 1)); HANDLE_CODE(unpack_enum(dl_bw, bref)); if (ul_bw_present) { HANDLE_CODE(unpack_enum(ul_bw, bref)); } return SRSASN_SUCCESS; } void carrier_bw_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("dl-Bandwidth", dl_bw.to_string()); if (ul_bw_present) { j.write_str("ul-Bandwidth", ul_bw.to_string()); } j.end_obj(); } // CarrierFreqEUTRA ::= SEQUENCE SRSASN_CODE carrier_freq_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_carrier_freq_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq, (uint16_t)0, (uint16_t)65535)); if (ul_carrier_freq_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_carrier_freq, (uint16_t)0, (uint16_t)65535)); } return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_eutra_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_carrier_freq_present, 1)); HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq, bref, (uint16_t)0, (uint16_t)65535)); if (ul_carrier_freq_present) { HANDLE_CODE(unpack_unalign_integer(ul_carrier_freq, bref, (uint16_t)0, (uint16_t)65535)); } return SRSASN_SUCCESS; } void carrier_freq_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("dl-CarrierFreq", dl_carrier_freq); if (ul_carrier_freq_present) { j.write_int("ul-CarrierFreq", ul_carrier_freq); } j.end_obj(); } // CarrierFreqEUTRA-v9e0 ::= SEQUENCE SRSASN_CODE carrier_freq_eutra_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_carrier_freq_v9e0_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq_v9e0, (uint32_t)0, (uint32_t)262143)); if (ul_carrier_freq_v9e0_present) { HANDLE_CODE(pack_unalign_integer(bref, ul_carrier_freq_v9e0, (uint32_t)0, (uint32_t)262143)); } return SRSASN_SUCCESS; } SRSASN_CODE carrier_freq_eutra_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_carrier_freq_v9e0_present, 1)); HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq_v9e0, bref, (uint32_t)0, (uint32_t)262143)); if (ul_carrier_freq_v9e0_present) { HANDLE_CODE(unpack_unalign_integer(ul_carrier_freq_v9e0, bref, (uint32_t)0, (uint32_t)262143)); } return SRSASN_SUCCESS; } void carrier_freq_eutra_v9e0_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("dl-CarrierFreq-v9e0", dl_carrier_freq_v9e0); if (ul_carrier_freq_v9e0_present) { j.write_int("ul-CarrierFreq-v9e0", ul_carrier_freq_v9e0); } j.end_obj(); } // CarrierInfoNR-r15 ::= SEQUENCE SRSASN_CODE carrier_info_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(smtc_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r15, (uint32_t)0, (uint32_t)3279165)); HANDLE_CODE(pack_enum(bref, subcarrier_spacing_ssb_r15)); if (smtc_r15_present) { HANDLE_CODE(smtc_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE carrier_info_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(smtc_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r15, bref, (uint32_t)0, (uint32_t)3279165)); HANDLE_CODE(unpack_enum(subcarrier_spacing_ssb_r15, bref)); if (smtc_r15_present) { HANDLE_CODE(smtc_r15.unpack(bref)); } return SRSASN_SUCCESS; } void carrier_info_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r15", carrier_freq_r15); j.write_str("subcarrierSpacingSSB-r15", subcarrier_spacing_ssb_r15.to_string()); if (smtc_r15_present) { j.write_fieldname("smtc-r15"); smtc_r15.to_json(j); } j.end_obj(); } // CounterCheck-v1530-IEs ::= SEQUENCE SRSASN_CODE counter_check_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(drb_count_msb_info_list_ext_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (drb_count_msb_info_list_ext_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_count_msb_info_list_ext_r15, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(drb_count_msb_info_list_ext_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (drb_count_msb_info_list_ext_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_count_msb_info_list_ext_r15, bref, 1, 4)); } return SRSASN_SUCCESS; } void counter_check_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (drb_count_msb_info_list_ext_r15_present) { j.start_array("drb-CountMSB-InfoListExt-r15"); for (uint32_t i1 = 0; i1 < drb_count_msb_info_list_ext_r15.size(); ++i1) { drb_count_msb_info_list_ext_r15[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE SRSASN_CODE ho_from_eutra_prep_request_v920_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(concurr_prep_cdma2000_hrpd_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (concurr_prep_cdma2000_hrpd_r9_present) { HANDLE_CODE(bref.pack(concurr_prep_cdma2000_hrpd_r9, 1)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_from_eutra_prep_request_v920_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(concurr_prep_cdma2000_hrpd_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (concurr_prep_cdma2000_hrpd_r9_present) { HANDLE_CODE(bref.unpack(concurr_prep_cdma2000_hrpd_r9, 1)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_from_eutra_prep_request_v920_ies_s::to_json(json_writer& j) const { j.start_obj(); if (concurr_prep_cdma2000_hrpd_r9_present) { j.write_bool("concurrPrepCDMA2000-HRPD-r9", concurr_prep_cdma2000_hrpd_r9); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE SRSASN_CODE logged_meas_cfg_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(plmn_id_list_r11_present, 1)); HANDLE_CODE(bref.pack(area_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (plmn_id_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r11, 1, 16)); } if (area_cfg_v1130_present) { HANDLE_CODE(area_cfg_v1130.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE logged_meas_cfg_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(plmn_id_list_r11_present, 1)); HANDLE_CODE(bref.unpack(area_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (plmn_id_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r11, bref, 1, 16)); } if (area_cfg_v1130_present) { HANDLE_CODE(area_cfg_v1130.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void logged_meas_cfg_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (plmn_id_list_r11_present) { j.start_array("plmn-IdentityList-r11"); for (uint32_t i1 = 0; i1 < plmn_id_list_r11.size(); ++i1) { plmn_id_list_r11[i1].to_json(j); } j.end_array(); } if (area_cfg_v1130_present) { j.write_fieldname("areaConfiguration-v1130"); area_cfg_v1130.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MeasGapConfigDensePRS-r15 ::= CHOICE void meas_gap_cfg_dense_prs_r15_c::set(types::options e) { type_ = e; } void meas_gap_cfg_dense_prs_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("gapOffsetDensePRS-r15"); c.gap_offset_dense_prs_r15.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_dense_prs_r15_c"); } j.end_obj(); } SRSASN_CODE meas_gap_cfg_dense_prs_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.gap_offset_dense_prs_r15.pack(bref)); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_dense_prs_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_gap_cfg_dense_prs_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.gap_offset_dense_prs_r15.unpack(bref)); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_dense_prs_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::destroy_() {} void meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set(types::options e) { destroy_(); type_ = e; } meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::gap_offset_dense_prs_r15_c_( const meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_& other) { type_ = other.type(); switch (type_) { case types::rstd0_r15: c.init(other.c.get()); break; case types::rstd1_r15: c.init(other.c.get()); break; case types::rstd2_r15: c.init(other.c.get()); break; case types::rstd3_r15: c.init(other.c.get()); break; case types::rstd4_r15: c.init(other.c.get()); break; case types::rstd5_r15: c.init(other.c.get()); break; case types::rstd6_r15: c.init(other.c.get()); break; case types::rstd7_r15: c.init(other.c.get()); break; case types::rstd8_r15: c.init(other.c.get()); break; case types::rstd9_r15: c.init(other.c.get()); break; case types::rstd10_r15: c.init(other.c.get()); break; case types::rstd11_r15: c.init(other.c.get()); break; case types::rstd12_r15: c.init(other.c.get()); break; case types::rstd13_r15: c.init(other.c.get()); break; case types::rstd14_r15: c.init(other.c.get()); break; case types::rstd15_r15: c.init(other.c.get()); break; case types::rstd16_r15: c.init(other.c.get()); break; case types::rstd17_r15: c.init(other.c.get()); break; case types::rstd18_r15: c.init(other.c.get()); break; case types::rstd19_r15: c.init(other.c.get()); break; case types::rstd20_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_"); } } meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_:: operator=(const meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rstd0_r15: c.set(other.c.get()); break; case types::rstd1_r15: c.set(other.c.get()); break; case types::rstd2_r15: c.set(other.c.get()); break; case types::rstd3_r15: c.set(other.c.get()); break; case types::rstd4_r15: c.set(other.c.get()); break; case types::rstd5_r15: c.set(other.c.get()); break; case types::rstd6_r15: c.set(other.c.get()); break; case types::rstd7_r15: c.set(other.c.get()); break; case types::rstd8_r15: c.set(other.c.get()); break; case types::rstd9_r15: c.set(other.c.get()); break; case types::rstd10_r15: c.set(other.c.get()); break; case types::rstd11_r15: c.set(other.c.get()); break; case types::rstd12_r15: c.set(other.c.get()); break; case types::rstd13_r15: c.set(other.c.get()); break; case types::rstd14_r15: c.set(other.c.get()); break; case types::rstd15_r15: c.set(other.c.get()); break; case types::rstd16_r15: c.set(other.c.get()); break; case types::rstd17_r15: c.set(other.c.get()); break; case types::rstd18_r15: c.set(other.c.get()); break; case types::rstd19_r15: c.set(other.c.get()); break; case types::rstd20_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_"); } return *this; } void meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rstd0_r15: j.write_int("rstd0-r15", c.get()); break; case types::rstd1_r15: j.write_int("rstd1-r15", c.get()); break; case types::rstd2_r15: j.write_int("rstd2-r15", c.get()); break; case types::rstd3_r15: j.write_int("rstd3-r15", c.get()); break; case types::rstd4_r15: j.write_int("rstd4-r15", c.get()); break; case types::rstd5_r15: j.write_int("rstd5-r15", c.get()); break; case types::rstd6_r15: j.write_int("rstd6-r15", c.get()); break; case types::rstd7_r15: j.write_int("rstd7-r15", c.get()); break; case types::rstd8_r15: j.write_int("rstd8-r15", c.get()); break; case types::rstd9_r15: j.write_int("rstd9-r15", c.get()); break; case types::rstd10_r15: j.write_int("rstd10-r15", c.get()); break; case types::rstd11_r15: j.write_int("rstd11-r15", c.get()); break; case types::rstd12_r15: j.write_int("rstd12-r15", c.get()); break; case types::rstd13_r15: j.write_int("rstd13-r15", c.get()); break; case types::rstd14_r15: j.write_int("rstd14-r15", c.get()); break; case types::rstd15_r15: j.write_int("rstd15-r15", c.get()); break; case types::rstd16_r15: j.write_int("rstd16-r15", c.get()); break; case types::rstd17_r15: j.write_int("rstd17-r15", c.get()); break; case types::rstd18_r15: j.write_int("rstd18-r15", c.get()); break; case types::rstd19_r15: j.write_int("rstd19-r15", c.get()); break; case types::rstd20_r15: j.write_int("rstd20-r15", c.get()); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_"); } j.end_obj(); } SRSASN_CODE meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rstd0_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::rstd1_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; case types::rstd2_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::rstd3_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd4_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd5_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; case types::rstd6_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::rstd7_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd8_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd9_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::rstd10_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd11_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd12_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::rstd13_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd14_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd15_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd16_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd17_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd18_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd19_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd20_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rstd0_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::rstd1_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; case types::rstd2_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::rstd3_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd4_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd5_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; case types::rstd6_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::rstd7_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd8_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd9_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::rstd10_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd11_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd12_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::rstd13_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd14_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd15_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd16_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd17_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd18_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd19_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd20_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasGapConfigPerCC-List-r14 ::= CHOICE void meas_gap_cfg_per_cc_list_r14_c::set(types::options e) { type_ = e; } void meas_gap_cfg_per_cc_list_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); if (c.meas_gap_cfg_to_rem_list_r14_present) { j.start_array("measGapConfigToRemoveList-r14"); for (uint32_t i1 = 0; i1 < c.meas_gap_cfg_to_rem_list_r14.size(); ++i1) { j.write_int(c.meas_gap_cfg_to_rem_list_r14[i1]); } j.end_array(); } if (c.meas_gap_cfg_to_add_mod_list_r14_present) { j.start_array("measGapConfigToAddModList-r14"); for (uint32_t i1 = 0; i1 < c.meas_gap_cfg_to_add_mod_list_r14.size(); ++i1) { c.meas_gap_cfg_to_add_mod_list_r14[i1].to_json(j); } j.end_array(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "meas_gap_cfg_per_cc_list_r14_c"); } j.end_obj(); } SRSASN_CODE meas_gap_cfg_per_cc_list_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.pack(c.meas_gap_cfg_to_rem_list_r14_present, 1)); HANDLE_CODE(bref.pack(c.meas_gap_cfg_to_add_mod_list_r14_present, 1)); if (c.meas_gap_cfg_to_rem_list_r14_present) { HANDLE_CODE( pack_dyn_seq_of(bref, c.meas_gap_cfg_to_rem_list_r14, 1, 32, UnalignedIntegerPacker(0, 31))); } if (c.meas_gap_cfg_to_add_mod_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.meas_gap_cfg_to_add_mod_list_r14, 1, 32)); } break; default: log_invalid_choice_id(type_, "meas_gap_cfg_per_cc_list_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_gap_cfg_per_cc_list_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(bref.unpack(c.meas_gap_cfg_to_rem_list_r14_present, 1)); HANDLE_CODE(bref.unpack(c.meas_gap_cfg_to_add_mod_list_r14_present, 1)); if (c.meas_gap_cfg_to_rem_list_r14_present) { HANDLE_CODE( unpack_dyn_seq_of(c.meas_gap_cfg_to_rem_list_r14, bref, 1, 32, UnalignedIntegerPacker(0, 31))); } if (c.meas_gap_cfg_to_add_mod_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(c.meas_gap_cfg_to_add_mod_list_r14, bref, 1, 32)); } break; default: log_invalid_choice_id(type_, "meas_gap_cfg_per_cc_list_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasGapSharingConfig-r14 ::= CHOICE void meas_gap_sharing_cfg_r14_c::set(types::options e) { type_ = e; } void meas_gap_sharing_cfg_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("measGapSharingScheme-r14", c.meas_gap_sharing_scheme_r14.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "meas_gap_sharing_cfg_r14_c"); } j.end_obj(); } SRSASN_CODE meas_gap_sharing_cfg_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c.meas_gap_sharing_scheme_r14)); break; default: log_invalid_choice_id(type_, "meas_gap_sharing_cfg_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_gap_sharing_cfg_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c.meas_gap_sharing_scheme_r14, bref)); break; default: log_invalid_choice_id(type_, "meas_gap_sharing_cfg_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MobilityControlInfoV2X-r14 ::= SEQUENCE SRSASN_CODE mob_ctrl_info_v2x_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(v2x_comm_tx_pool_exceptional_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_comm_rx_pool_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_comm_sync_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(cbr_mob_tx_cfg_list_r14_present, 1)); if (v2x_comm_tx_pool_exceptional_r14_present) { HANDLE_CODE(v2x_comm_tx_pool_exceptional_r14.pack(bref)); } if (v2x_comm_rx_pool_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_rx_pool_r14, 1, 16)); } if (v2x_comm_sync_cfg_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_sync_cfg_r14, 1, 16)); } if (cbr_mob_tx_cfg_list_r14_present) { HANDLE_CODE(cbr_mob_tx_cfg_list_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_ctrl_info_v2x_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(v2x_comm_tx_pool_exceptional_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_comm_rx_pool_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_comm_sync_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(cbr_mob_tx_cfg_list_r14_present, 1)); if (v2x_comm_tx_pool_exceptional_r14_present) { HANDLE_CODE(v2x_comm_tx_pool_exceptional_r14.unpack(bref)); } if (v2x_comm_rx_pool_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_rx_pool_r14, bref, 1, 16)); } if (v2x_comm_sync_cfg_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_sync_cfg_r14, bref, 1, 16)); } if (cbr_mob_tx_cfg_list_r14_present) { HANDLE_CODE(cbr_mob_tx_cfg_list_r14.unpack(bref)); } return SRSASN_SUCCESS; } void mob_ctrl_info_v2x_r14_s::to_json(json_writer& j) const { j.start_obj(); if (v2x_comm_tx_pool_exceptional_r14_present) { j.write_fieldname("v2x-CommTxPoolExceptional-r14"); v2x_comm_tx_pool_exceptional_r14.to_json(j); } if (v2x_comm_rx_pool_r14_present) { j.start_array("v2x-CommRxPool-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_rx_pool_r14.size(); ++i1) { v2x_comm_rx_pool_r14[i1].to_json(j); } j.end_array(); } if (v2x_comm_sync_cfg_r14_present) { j.start_array("v2x-CommSyncConfig-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_sync_cfg_r14.size(); ++i1) { v2x_comm_sync_cfg_r14[i1].to_json(j); } j.end_array(); } if (cbr_mob_tx_cfg_list_r14_present) { j.write_fieldname("cbr-MobilityTxConfigList-r14"); cbr_mob_tx_cfg_list_r14.to_json(j); } j.end_obj(); } // MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE SRSASN_CODE mob_from_eutra_cmd_v8d0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_ind_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (band_ind_present) { HANDLE_CODE(pack_enum(bref, band_ind)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_v8d0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_ind_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (band_ind_present) { HANDLE_CODE(unpack_enum(band_ind, bref)); } return SRSASN_SUCCESS; } void mob_from_eutra_cmd_v8d0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (band_ind_present) { j.write_str("bandIndicator", band_ind.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE SRSASN_CODE mob_from_eutra_cmd_v960_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_ind_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (band_ind_present) { HANDLE_CODE(pack_enum(bref, band_ind)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_v960_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_ind_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (band_ind_present) { HANDLE_CODE(unpack_enum(band_ind, bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mob_from_eutra_cmd_v960_ies_s::to_json(json_writer& j) const { j.start_obj(); if (band_ind_present) { j.write_str("bandIndicator", band_ind.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // QuantityConfig ::= SEQUENCE SRSASN_CODE quant_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(quant_cfg_eutra_present, 1)); HANDLE_CODE(bref.pack(quant_cfg_utra_present, 1)); HANDLE_CODE(bref.pack(quant_cfg_geran_present, 1)); HANDLE_CODE(bref.pack(quant_cfg_cdma2000_present, 1)); if (quant_cfg_eutra_present) { HANDLE_CODE(quant_cfg_eutra.pack(bref)); } if (quant_cfg_utra_present) { HANDLE_CODE(quant_cfg_utra.pack(bref)); } if (quant_cfg_geran_present) { HANDLE_CODE(quant_cfg_geran.pack(bref)); } if (quant_cfg_cdma2000_present) { HANDLE_CODE(quant_cfg_cdma2000.pack(bref)); } if (ext) { ext_groups_header group_flags(4); rrc_asn1_warn_assert(quant_cfg_utra_v1020_present != (quant_cfg_utra_v1020.get() != NULL), __FILE__, __LINE__); group_flags[0] |= quant_cfg_utra_v1020_present; rrc_asn1_warn_assert(quant_cfg_eutra_v1250_present != (quant_cfg_eutra_v1250.get() != NULL), __FILE__, __LINE__); group_flags[1] |= quant_cfg_eutra_v1250_present; rrc_asn1_warn_assert(quant_cfg_eutra_v1310_present != (quant_cfg_eutra_v1310.get() != NULL), __FILE__, __LINE__); group_flags[2] |= quant_cfg_eutra_v1310_present; rrc_asn1_warn_assert(quant_cfg_wlan_r13_present != (quant_cfg_wlan_r13.get() != NULL), __FILE__, __LINE__); group_flags[2] |= quant_cfg_wlan_r13_present; rrc_asn1_warn_assert(quant_cfg_nr_list_r15_present != (quant_cfg_nr_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= quant_cfg_nr_list_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(quant_cfg_utra_v1020_present, 1)); if (quant_cfg_utra_v1020_present) { HANDLE_CODE(quant_cfg_utra_v1020->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(quant_cfg_eutra_v1250_present, 1)); if (quant_cfg_eutra_v1250_present) { HANDLE_CODE(quant_cfg_eutra_v1250->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(quant_cfg_eutra_v1310_present, 1)); HANDLE_CODE(bref.pack(quant_cfg_wlan_r13_present, 1)); if (quant_cfg_eutra_v1310_present) { HANDLE_CODE(quant_cfg_eutra_v1310->pack(bref)); } if (quant_cfg_wlan_r13_present) { HANDLE_CODE(quant_cfg_wlan_r13->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(quant_cfg_nr_list_r15_present, 1)); if (quant_cfg_nr_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *quant_cfg_nr_list_r15, 1, 2)); } } } return SRSASN_SUCCESS; } SRSASN_CODE quant_cfg_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(quant_cfg_eutra_present, 1)); HANDLE_CODE(bref.unpack(quant_cfg_utra_present, 1)); HANDLE_CODE(bref.unpack(quant_cfg_geran_present, 1)); HANDLE_CODE(bref.unpack(quant_cfg_cdma2000_present, 1)); if (quant_cfg_eutra_present) { HANDLE_CODE(quant_cfg_eutra.unpack(bref)); } if (quant_cfg_utra_present) { HANDLE_CODE(quant_cfg_utra.unpack(bref)); } if (quant_cfg_geran_present) { HANDLE_CODE(quant_cfg_geran.unpack(bref)); } if (quant_cfg_cdma2000_present) { HANDLE_CODE(quant_cfg_cdma2000.unpack(bref)); } if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(quant_cfg_utra_v1020_present, 1)); if (quant_cfg_utra_v1020_present) { quant_cfg_utra_v1020 = make_copy_ptr(quant_cfg_utra_v1020_s()); HANDLE_CODE(quant_cfg_utra_v1020->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(quant_cfg_eutra_v1250_present, 1)); if (quant_cfg_eutra_v1250_present) { quant_cfg_eutra_v1250 = make_copy_ptr(quant_cfg_eutra_v1250_s()); HANDLE_CODE(quant_cfg_eutra_v1250->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(quant_cfg_eutra_v1310_present, 1)); HANDLE_CODE(bref.unpack(quant_cfg_wlan_r13_present, 1)); if (quant_cfg_eutra_v1310_present) { quant_cfg_eutra_v1310 = make_copy_ptr(quant_cfg_eutra_v1310_s()); HANDLE_CODE(quant_cfg_eutra_v1310->unpack(bref)); } if (quant_cfg_wlan_r13_present) { quant_cfg_wlan_r13 = make_copy_ptr(quant_cfg_wlan_r13_s()); HANDLE_CODE(quant_cfg_wlan_r13->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(quant_cfg_nr_list_r15_present, 1)); if (quant_cfg_nr_list_r15_present) { quant_cfg_nr_list_r15 = make_copy_ptr(quant_cfg_nr_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*quant_cfg_nr_list_r15, bref, 1, 2)); } } } return SRSASN_SUCCESS; } void quant_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (quant_cfg_eutra_present) { j.write_fieldname("quantityConfigEUTRA"); quant_cfg_eutra.to_json(j); } if (quant_cfg_utra_present) { j.write_fieldname("quantityConfigUTRA"); quant_cfg_utra.to_json(j); } if (quant_cfg_geran_present) { j.write_fieldname("quantityConfigGERAN"); quant_cfg_geran.to_json(j); } if (quant_cfg_cdma2000_present) { j.write_fieldname("quantityConfigCDMA2000"); quant_cfg_cdma2000.to_json(j); } if (ext) { rrc_asn1_warn_assert(quant_cfg_utra_v1020_present != (quant_cfg_utra_v1020.get() != NULL), __FILE__, __LINE__); if (quant_cfg_utra_v1020_present) { j.write_fieldname("quantityConfigUTRA-v1020"); quant_cfg_utra_v1020->to_json(j); } rrc_asn1_warn_assert(quant_cfg_eutra_v1250_present != (quant_cfg_eutra_v1250.get() != NULL), __FILE__, __LINE__); if (quant_cfg_eutra_v1250_present) { j.write_fieldname("quantityConfigEUTRA-v1250"); quant_cfg_eutra_v1250->to_json(j); } rrc_asn1_warn_assert(quant_cfg_eutra_v1310_present != (quant_cfg_eutra_v1310.get() != NULL), __FILE__, __LINE__); if (quant_cfg_eutra_v1310_present) { j.write_fieldname("quantityConfigEUTRA-v1310"); quant_cfg_eutra_v1310->to_json(j); } rrc_asn1_warn_assert(quant_cfg_wlan_r13_present != (quant_cfg_wlan_r13.get() != NULL), __FILE__, __LINE__); if (quant_cfg_wlan_r13_present) { j.write_fieldname("quantityConfigWLAN-r13"); quant_cfg_wlan_r13->to_json(j); } rrc_asn1_warn_assert(quant_cfg_nr_list_r15_present != (quant_cfg_nr_list_r15.get() != NULL), __FILE__, __LINE__); if (quant_cfg_nr_list_r15_present) { j.start_array("quantityConfigNRList-r15"); for (uint32_t i1 = 0; i1 < quant_cfg_nr_list_r15->size(); ++i1) { ((*quant_cfg_nr_list_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v8m0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v8m0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v8m0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v920_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(other_cfg_r9_present, 1)); HANDLE_CODE(bref.pack(full_cfg_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (other_cfg_r9_present) { HANDLE_CODE(other_cfg_r9.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v920_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(other_cfg_r9_present, 1)); HANDLE_CODE(bref.unpack(full_cfg_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (other_cfg_r9_present) { HANDLE_CODE(other_cfg_r9.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v920_ies_s::to_json(json_writer& j) const { j.start_obj(); if (other_cfg_r9_present) { j.write_fieldname("otherConfig-r9"); other_cfg_r9.to_json(j); } if (full_cfg_r9_present) { j.write_str("fullConfig-r9", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionRelease-v920-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_v920_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cell_info_list_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (cell_info_list_r9_present) { HANDLE_CODE(cell_info_list_r9.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_v920_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cell_info_list_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (cell_info_list_r9_present) { HANDLE_CODE(cell_info_list_r9.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_release_v920_ies_s::to_json(json_writer& j) const { j.start_obj(); if (cell_info_list_r9_present) { j.write_fieldname("cellInfoList-r9"); cell_info_list_r9.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::destroy_() { switch (type_) { case types::geran_r9: c.destroy(); break; case types::utra_fdd_r9: c.destroy(); break; case types::utra_tdd_r9: c.destroy(); break; case types::utra_tdd_r10: c.destroy(); break; default: break; } } void rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::geran_r9: c.init(); break; case types::utra_fdd_r9: c.init(); break; case types::utra_tdd_r9: c.init(); break; case types::utra_tdd_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_release_v920_ies_s::cell_info_list_r9_c_"); } } rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::cell_info_list_r9_c_( const rrc_conn_release_v920_ies_s::cell_info_list_r9_c_& other) { type_ = other.type(); switch (type_) { case types::geran_r9: c.init(other.c.get()); break; case types::utra_fdd_r9: c.init(other.c.get()); break; case types::utra_tdd_r9: c.init(other.c.get()); break; case types::utra_tdd_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_release_v920_ies_s::cell_info_list_r9_c_"); } } rrc_conn_release_v920_ies_s::cell_info_list_r9_c_& rrc_conn_release_v920_ies_s::cell_info_list_r9_c_:: operator=(const rrc_conn_release_v920_ies_s::cell_info_list_r9_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::geran_r9: c.set(other.c.get()); break; case types::utra_fdd_r9: c.set(other.c.get()); break; case types::utra_tdd_r9: c.set(other.c.get()); break; case types::utra_tdd_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_release_v920_ies_s::cell_info_list_r9_c_"); } return *this; } void rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::geran_r9: j.start_array("geran-r9"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::utra_fdd_r9: j.start_array("utra-FDD-r9"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::utra_tdd_r9: j.start_array("utra-TDD-r9"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::utra_tdd_r10: j.start_array("utra-TDD-r10"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "rrc_conn_release_v920_ies_s::cell_info_list_r9_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::geran_r9: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 32)); break; case types::utra_fdd_r9: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 16)); break; case types::utra_tdd_r9: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 16)); break; case types::utra_tdd_r10: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 16)); } break; default: log_invalid_choice_id(type_, "rrc_conn_release_v920_ies_s::cell_info_list_r9_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::geran_r9: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 32)); break; case types::utra_fdd_r9: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 16)); break; case types::utra_tdd_r9: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 16)); break; case types::utra_tdd_r10: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 16)); } break; default: log_invalid_choice_id(type_, "rrc_conn_release_v920_ies_s::cell_info_list_r9_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionRelease-v9e0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_v9e0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(redirected_carrier_info_v9e0_present, 1)); HANDLE_CODE(bref.pack(idle_mode_mob_ctrl_info_v9e0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (redirected_carrier_info_v9e0_present) { HANDLE_CODE(redirected_carrier_info_v9e0.pack(bref)); } if (idle_mode_mob_ctrl_info_v9e0_present) { HANDLE_CODE(idle_mode_mob_ctrl_info_v9e0.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_v9e0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(redirected_carrier_info_v9e0_present, 1)); HANDLE_CODE(bref.unpack(idle_mode_mob_ctrl_info_v9e0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (redirected_carrier_info_v9e0_present) { HANDLE_CODE(redirected_carrier_info_v9e0.unpack(bref)); } if (idle_mode_mob_ctrl_info_v9e0_present) { HANDLE_CODE(idle_mode_mob_ctrl_info_v9e0.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_release_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (redirected_carrier_info_v9e0_present) { j.write_fieldname("redirectedCarrierInfo-v9e0"); redirected_carrier_info_v9e0.to_json(j); } if (idle_mode_mob_ctrl_info_v9e0_present) { j.write_fieldname("idleModeMobilityControlInfo-v9e0"); idle_mode_mob_ctrl_info_v9e0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionResume-v1510-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_resume_v1510_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(sk_counter_r15_present, 1)); HANDLE_CODE(bref.pack(nr_radio_bearer_cfg1_r15_present, 1)); HANDLE_CODE(bref.pack(nr_radio_bearer_cfg2_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (sk_counter_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, sk_counter_r15, (uint16_t)0, (uint16_t)65535)); } if (nr_radio_bearer_cfg1_r15_present) { HANDLE_CODE(nr_radio_bearer_cfg1_r15.pack(bref)); } if (nr_radio_bearer_cfg2_r15_present) { HANDLE_CODE(nr_radio_bearer_cfg2_r15.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_v1510_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(sk_counter_r15_present, 1)); HANDLE_CODE(bref.unpack(nr_radio_bearer_cfg1_r15_present, 1)); HANDLE_CODE(bref.unpack(nr_radio_bearer_cfg2_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (sk_counter_r15_present) { HANDLE_CODE(unpack_unalign_integer(sk_counter_r15, bref, (uint16_t)0, (uint16_t)65535)); } if (nr_radio_bearer_cfg1_r15_present) { HANDLE_CODE(nr_radio_bearer_cfg1_r15.unpack(bref)); } if (nr_radio_bearer_cfg2_r15_present) { HANDLE_CODE(nr_radio_bearer_cfg2_r15.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_resume_v1510_ies_s::to_json(json_writer& j) const { j.start_obj(); if (sk_counter_r15_present) { j.write_int("sk-Counter-r15", sk_counter_r15); } if (nr_radio_bearer_cfg1_r15_present) { j.write_str("nr-RadioBearerConfig1-r15", nr_radio_bearer_cfg1_r15.to_string()); } if (nr_radio_bearer_cfg2_r15_present) { j.write_str("nr-RadioBearerConfig2-r15", nr_radio_bearer_cfg2_r15.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RadioResourceConfigCommon ::= SEQUENCE SRSASN_CODE rr_cfg_common_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rach_cfg_common_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_common_present, 1)); HANDLE_CODE(bref.pack(phich_cfg_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_common_present, 1)); HANDLE_CODE(bref.pack(srs_ul_cfg_common_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_present, 1)); HANDLE_CODE(bref.pack(ant_info_common_present, 1)); HANDLE_CODE(bref.pack(p_max_present, 1)); HANDLE_CODE(bref.pack(tdd_cfg_present, 1)); if (rach_cfg_common_present) { HANDLE_CODE(rach_cfg_common.pack(bref)); } HANDLE_CODE(prach_cfg.pack(bref)); if (pdsch_cfg_common_present) { HANDLE_CODE(pdsch_cfg_common.pack(bref)); } HANDLE_CODE(pusch_cfg_common.pack(bref)); if (phich_cfg_present) { HANDLE_CODE(phich_cfg.pack(bref)); } if (pucch_cfg_common_present) { HANDLE_CODE(pucch_cfg_common.pack(bref)); } if (srs_ul_cfg_common_present) { HANDLE_CODE(srs_ul_cfg_common.pack(bref)); } if (ul_pwr_ctrl_common_present) { HANDLE_CODE(ul_pwr_ctrl_common.pack(bref)); } if (ant_info_common_present) { HANDLE_CODE(ant_info_common.pack(bref)); } if (p_max_present) { HANDLE_CODE(pack_unalign_integer(bref, p_max, (int8_t)-30, (int8_t)33)); } if (tdd_cfg_present) { HANDLE_CODE(tdd_cfg.pack(bref)); } HANDLE_CODE(pack_enum(bref, ul_cp_len)); if (ext) { ext_groups_header group_flags(7); rrc_asn1_warn_assert(ul_pwr_ctrl_common_v1020_present != (ul_pwr_ctrl_common_v1020.get() != NULL), __FILE__, __LINE__); group_flags[0] |= ul_pwr_ctrl_common_v1020_present; rrc_asn1_warn_assert(tdd_cfg_v1130_present != (tdd_cfg_v1130.get() != NULL), __FILE__, __LINE__); group_flags[1] |= tdd_cfg_v1130_present; rrc_asn1_warn_assert(pusch_cfg_common_v1270_present != (pusch_cfg_common_v1270.get() != NULL), __FILE__, __LINE__); group_flags[2] |= pusch_cfg_common_v1270_present; rrc_asn1_warn_assert(prach_cfg_v1310_present != (prach_cfg_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= prach_cfg_v1310_present; rrc_asn1_warn_assert(freq_hop_params_r13_present != (freq_hop_params_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= freq_hop_params_r13_present; rrc_asn1_warn_assert(pdsch_cfg_common_v1310_present != (pdsch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pdsch_cfg_common_v1310_present; rrc_asn1_warn_assert(pucch_cfg_common_v1310_present != (pucch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pucch_cfg_common_v1310_present; rrc_asn1_warn_assert(pusch_cfg_common_v1310_present != (pusch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= pusch_cfg_common_v1310_present; rrc_asn1_warn_assert(ul_pwr_ctrl_common_v1310_present != (ul_pwr_ctrl_common_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= ul_pwr_ctrl_common_v1310_present; rrc_asn1_warn_assert(high_speed_cfg_r14_present != (high_speed_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= high_speed_cfg_r14_present; rrc_asn1_warn_assert(prach_cfg_v1430_present != (prach_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[4] |= prach_cfg_v1430_present; rrc_asn1_warn_assert(pucch_cfg_common_v1430_present != (pucch_cfg_common_v1430.get() != NULL), __FILE__, __LINE__); group_flags[4] |= pucch_cfg_common_v1430_present; rrc_asn1_warn_assert(tdd_cfg_v1430_present != (tdd_cfg_v1430.get() != NULL), __FILE__, __LINE__); group_flags[4] |= tdd_cfg_v1430_present; rrc_asn1_warn_assert(tdd_cfg_v1450_present != (tdd_cfg_v1450.get() != NULL), __FILE__, __LINE__); group_flags[5] |= tdd_cfg_v1450_present; rrc_asn1_warn_assert(ul_pwr_ctrl_common_v1530_present != (ul_pwr_ctrl_common_v1530.get() != NULL), __FILE__, __LINE__); group_flags[6] |= ul_pwr_ctrl_common_v1530_present; rrc_asn1_warn_assert(high_speed_cfg_v1530_present != (high_speed_cfg_v1530.get() != NULL), __FILE__, __LINE__); group_flags[6] |= high_speed_cfg_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_v1020_present, 1)); if (ul_pwr_ctrl_common_v1020_present) { HANDLE_CODE(ul_pwr_ctrl_common_v1020->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(tdd_cfg_v1130_present, 1)); if (tdd_cfg_v1130_present) { HANDLE_CODE(tdd_cfg_v1130->pack(bref)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(pusch_cfg_common_v1270_present, 1)); if (pusch_cfg_common_v1270_present) { HANDLE_CODE(pusch_cfg_common_v1270->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(prach_cfg_v1310_present, 1)); HANDLE_CODE(bref.pack(freq_hop_params_r13_present, 1)); HANDLE_CODE(bref.pack(pdsch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.pack(pusch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_v1310_present, 1)); if (prach_cfg_v1310_present) { HANDLE_CODE(prach_cfg_v1310->pack(bref)); } if (freq_hop_params_r13_present) { HANDLE_CODE(freq_hop_params_r13->pack(bref)); } if (pdsch_cfg_common_v1310_present) { HANDLE_CODE(pdsch_cfg_common_v1310->pack(bref)); } if (pucch_cfg_common_v1310_present) { HANDLE_CODE(pucch_cfg_common_v1310->pack(bref)); } if (pusch_cfg_common_v1310_present) { HANDLE_CODE(pusch_cfg_common_v1310->pack(bref)); } if (ul_pwr_ctrl_common_v1310_present) { HANDLE_CODE(ul_pwr_ctrl_common_v1310->pack(bref)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(high_speed_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(prach_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(pucch_cfg_common_v1430_present, 1)); HANDLE_CODE(bref.pack(tdd_cfg_v1430_present, 1)); if (high_speed_cfg_r14_present) { HANDLE_CODE(high_speed_cfg_r14->pack(bref)); } if (prach_cfg_v1430_present) { HANDLE_CODE(prach_cfg_v1430->pack(bref)); } if (pucch_cfg_common_v1430_present) { HANDLE_CODE(pucch_cfg_common_v1430->pack(bref)); } if (tdd_cfg_v1430_present) { HANDLE_CODE(tdd_cfg_v1430->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(tdd_cfg_v1450_present, 1)); if (tdd_cfg_v1450_present) { HANDLE_CODE(tdd_cfg_v1450->pack(bref)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_v1530_present, 1)); HANDLE_CODE(bref.pack(high_speed_cfg_v1530_present, 1)); if (ul_pwr_ctrl_common_v1530_present) { HANDLE_CODE(ul_pwr_ctrl_common_v1530->pack(bref)); } if (high_speed_cfg_v1530_present) { HANDLE_CODE(high_speed_cfg_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rr_cfg_common_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rach_cfg_common_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_common_present, 1)); HANDLE_CODE(bref.unpack(phich_cfg_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_common_present, 1)); HANDLE_CODE(bref.unpack(srs_ul_cfg_common_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_present, 1)); HANDLE_CODE(bref.unpack(ant_info_common_present, 1)); HANDLE_CODE(bref.unpack(p_max_present, 1)); HANDLE_CODE(bref.unpack(tdd_cfg_present, 1)); if (rach_cfg_common_present) { HANDLE_CODE(rach_cfg_common.unpack(bref)); } HANDLE_CODE(prach_cfg.unpack(bref)); if (pdsch_cfg_common_present) { HANDLE_CODE(pdsch_cfg_common.unpack(bref)); } HANDLE_CODE(pusch_cfg_common.unpack(bref)); if (phich_cfg_present) { HANDLE_CODE(phich_cfg.unpack(bref)); } if (pucch_cfg_common_present) { HANDLE_CODE(pucch_cfg_common.unpack(bref)); } if (srs_ul_cfg_common_present) { HANDLE_CODE(srs_ul_cfg_common.unpack(bref)); } if (ul_pwr_ctrl_common_present) { HANDLE_CODE(ul_pwr_ctrl_common.unpack(bref)); } if (ant_info_common_present) { HANDLE_CODE(ant_info_common.unpack(bref)); } if (p_max_present) { HANDLE_CODE(unpack_unalign_integer(p_max, bref, (int8_t)-30, (int8_t)33)); } if (tdd_cfg_present) { HANDLE_CODE(tdd_cfg.unpack(bref)); } HANDLE_CODE(unpack_enum(ul_cp_len, bref)); if (ext) { ext_groups_header group_flags(7); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_v1020_present, 1)); if (ul_pwr_ctrl_common_v1020_present) { ul_pwr_ctrl_common_v1020 = make_copy_ptr(ul_pwr_ctrl_common_v1020_s()); HANDLE_CODE(ul_pwr_ctrl_common_v1020->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(tdd_cfg_v1130_present, 1)); if (tdd_cfg_v1130_present) { tdd_cfg_v1130 = make_copy_ptr(tdd_cfg_v1130_s()); HANDLE_CODE(tdd_cfg_v1130->unpack(bref)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(pusch_cfg_common_v1270_present, 1)); if (pusch_cfg_common_v1270_present) { pusch_cfg_common_v1270 = make_copy_ptr(pusch_cfg_common_v1270_s()); HANDLE_CODE(pusch_cfg_common_v1270->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(prach_cfg_v1310_present, 1)); HANDLE_CODE(bref.unpack(freq_hop_params_r13_present, 1)); HANDLE_CODE(bref.unpack(pdsch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.unpack(pusch_cfg_common_v1310_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_v1310_present, 1)); if (prach_cfg_v1310_present) { prach_cfg_v1310 = make_copy_ptr(prach_cfg_v1310_s()); HANDLE_CODE(prach_cfg_v1310->unpack(bref)); } if (freq_hop_params_r13_present) { freq_hop_params_r13 = make_copy_ptr(freq_hop_params_r13_s()); HANDLE_CODE(freq_hop_params_r13->unpack(bref)); } if (pdsch_cfg_common_v1310_present) { pdsch_cfg_common_v1310 = make_copy_ptr(pdsch_cfg_common_v1310_s()); HANDLE_CODE(pdsch_cfg_common_v1310->unpack(bref)); } if (pucch_cfg_common_v1310_present) { pucch_cfg_common_v1310 = make_copy_ptr(pucch_cfg_common_v1310_s()); HANDLE_CODE(pucch_cfg_common_v1310->unpack(bref)); } if (pusch_cfg_common_v1310_present) { pusch_cfg_common_v1310 = make_copy_ptr(pusch_cfg_common_v1310_s()); HANDLE_CODE(pusch_cfg_common_v1310->unpack(bref)); } if (ul_pwr_ctrl_common_v1310_present) { ul_pwr_ctrl_common_v1310 = make_copy_ptr(ul_pwr_ctrl_common_v1310_s()); HANDLE_CODE(ul_pwr_ctrl_common_v1310->unpack(bref)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(high_speed_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(prach_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(pucch_cfg_common_v1430_present, 1)); HANDLE_CODE(bref.unpack(tdd_cfg_v1430_present, 1)); if (high_speed_cfg_r14_present) { high_speed_cfg_r14 = make_copy_ptr(high_speed_cfg_r14_s()); HANDLE_CODE(high_speed_cfg_r14->unpack(bref)); } if (prach_cfg_v1430_present) { prach_cfg_v1430 = make_copy_ptr(prach_cfg_v1430_s()); HANDLE_CODE(prach_cfg_v1430->unpack(bref)); } if (pucch_cfg_common_v1430_present) { pucch_cfg_common_v1430 = make_copy_ptr(pucch_cfg_common_v1430_s()); HANDLE_CODE(pucch_cfg_common_v1430->unpack(bref)); } if (tdd_cfg_v1430_present) { tdd_cfg_v1430 = make_copy_ptr(tdd_cfg_v1430_s()); HANDLE_CODE(tdd_cfg_v1430->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(tdd_cfg_v1450_present, 1)); if (tdd_cfg_v1450_present) { tdd_cfg_v1450 = make_copy_ptr(tdd_cfg_v1450_s()); HANDLE_CODE(tdd_cfg_v1450->unpack(bref)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_v1530_present, 1)); HANDLE_CODE(bref.unpack(high_speed_cfg_v1530_present, 1)); if (ul_pwr_ctrl_common_v1530_present) { ul_pwr_ctrl_common_v1530 = make_copy_ptr(ul_pwr_ctrl_common_v1530_s()); HANDLE_CODE(ul_pwr_ctrl_common_v1530->unpack(bref)); } if (high_speed_cfg_v1530_present) { high_speed_cfg_v1530 = make_copy_ptr(high_speed_cfg_v1530_s()); HANDLE_CODE(high_speed_cfg_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } void rr_cfg_common_s::to_json(json_writer& j) const { j.start_obj(); if (rach_cfg_common_present) { j.write_fieldname("rach-ConfigCommon"); rach_cfg_common.to_json(j); } j.write_fieldname("prach-Config"); prach_cfg.to_json(j); if (pdsch_cfg_common_present) { j.write_fieldname("pdsch-ConfigCommon"); pdsch_cfg_common.to_json(j); } j.write_fieldname("pusch-ConfigCommon"); pusch_cfg_common.to_json(j); if (phich_cfg_present) { j.write_fieldname("phich-Config"); phich_cfg.to_json(j); } if (pucch_cfg_common_present) { j.write_fieldname("pucch-ConfigCommon"); pucch_cfg_common.to_json(j); } if (srs_ul_cfg_common_present) { j.write_fieldname("soundingRS-UL-ConfigCommon"); srs_ul_cfg_common.to_json(j); } if (ul_pwr_ctrl_common_present) { j.write_fieldname("uplinkPowerControlCommon"); ul_pwr_ctrl_common.to_json(j); } if (ant_info_common_present) { j.write_fieldname("antennaInfoCommon"); ant_info_common.to_json(j); } if (p_max_present) { j.write_int("p-Max", p_max); } if (tdd_cfg_present) { j.write_fieldname("tdd-Config"); tdd_cfg.to_json(j); } j.write_str("ul-CyclicPrefixLength", ul_cp_len.to_string()); if (ext) { rrc_asn1_warn_assert(ul_pwr_ctrl_common_v1020_present != (ul_pwr_ctrl_common_v1020.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_v1020_present) { j.write_fieldname("uplinkPowerControlCommon-v1020"); ul_pwr_ctrl_common_v1020->to_json(j); } rrc_asn1_warn_assert(tdd_cfg_v1130_present != (tdd_cfg_v1130.get() != NULL), __FILE__, __LINE__); if (tdd_cfg_v1130_present) { j.write_fieldname("tdd-Config-v1130"); tdd_cfg_v1130->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_common_v1270_present != (pusch_cfg_common_v1270.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_common_v1270_present) { j.write_fieldname("pusch-ConfigCommon-v1270"); pusch_cfg_common_v1270->to_json(j); } rrc_asn1_warn_assert(prach_cfg_v1310_present != (prach_cfg_v1310.get() != NULL), __FILE__, __LINE__); if (prach_cfg_v1310_present) { j.write_fieldname("prach-Config-v1310"); prach_cfg_v1310->to_json(j); } rrc_asn1_warn_assert(freq_hop_params_r13_present != (freq_hop_params_r13.get() != NULL), __FILE__, __LINE__); if (freq_hop_params_r13_present) { j.write_fieldname("freqHoppingParameters-r13"); freq_hop_params_r13->to_json(j); } rrc_asn1_warn_assert(pdsch_cfg_common_v1310_present != (pdsch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); if (pdsch_cfg_common_v1310_present) { j.write_fieldname("pdsch-ConfigCommon-v1310"); pdsch_cfg_common_v1310->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_common_v1310_present != (pucch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_common_v1310_present) { j.write_fieldname("pucch-ConfigCommon-v1310"); pucch_cfg_common_v1310->to_json(j); } rrc_asn1_warn_assert(pusch_cfg_common_v1310_present != (pusch_cfg_common_v1310.get() != NULL), __FILE__, __LINE__); if (pusch_cfg_common_v1310_present) { j.write_fieldname("pusch-ConfigCommon-v1310"); pusch_cfg_common_v1310->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_common_v1310_present != (ul_pwr_ctrl_common_v1310.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_v1310_present) { j.write_fieldname("uplinkPowerControlCommon-v1310"); ul_pwr_ctrl_common_v1310->to_json(j); } rrc_asn1_warn_assert(high_speed_cfg_r14_present != (high_speed_cfg_r14.get() != NULL), __FILE__, __LINE__); if (high_speed_cfg_r14_present) { j.write_fieldname("highSpeedConfig-r14"); high_speed_cfg_r14->to_json(j); } rrc_asn1_warn_assert(prach_cfg_v1430_present != (prach_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (prach_cfg_v1430_present) { j.write_fieldname("prach-Config-v1430"); prach_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(pucch_cfg_common_v1430_present != (pucch_cfg_common_v1430.get() != NULL), __FILE__, __LINE__); if (pucch_cfg_common_v1430_present) { j.write_fieldname("pucch-ConfigCommon-v1430"); pucch_cfg_common_v1430->to_json(j); } rrc_asn1_warn_assert(tdd_cfg_v1430_present != (tdd_cfg_v1430.get() != NULL), __FILE__, __LINE__); if (tdd_cfg_v1430_present) { j.write_fieldname("tdd-Config-v1430"); tdd_cfg_v1430->to_json(j); } rrc_asn1_warn_assert(tdd_cfg_v1450_present != (tdd_cfg_v1450.get() != NULL), __FILE__, __LINE__); if (tdd_cfg_v1450_present) { j.write_fieldname("tdd-Config-v1450"); tdd_cfg_v1450->to_json(j); } rrc_asn1_warn_assert(ul_pwr_ctrl_common_v1530_present != (ul_pwr_ctrl_common_v1530.get() != NULL), __FILE__, __LINE__); if (ul_pwr_ctrl_common_v1530_present) { j.write_fieldname("uplinkPowerControlCommon-v1530"); ul_pwr_ctrl_common_v1530->to_json(j); } rrc_asn1_warn_assert(high_speed_cfg_v1530_present != (high_speed_cfg_v1530.get() != NULL), __FILE__, __LINE__); if (high_speed_cfg_v1530_present) { j.write_fieldname("highSpeedConfig-v1530"); high_speed_cfg_v1530->to_json(j); } } j.end_obj(); } // SI-OrPSI-GERAN ::= CHOICE void si_or_psi_geran_c::destroy_() { switch (type_) { case types::si: c.destroy(); break; case types::psi: c.destroy(); break; default: break; } } void si_or_psi_geran_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::si: c.init(); break; case types::psi: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "si_or_psi_geran_c"); } } si_or_psi_geran_c::si_or_psi_geran_c(const si_or_psi_geran_c& other) { type_ = other.type(); switch (type_) { case types::si: c.init(other.c.get()); break; case types::psi: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "si_or_psi_geran_c"); } } si_or_psi_geran_c& si_or_psi_geran_c::operator=(const si_or_psi_geran_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::si: c.set(other.c.get()); break; case types::psi: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "si_or_psi_geran_c"); } return *this; } void si_or_psi_geran_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::si: j.start_array("si"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_str(c.get()[i1].to_string()); } j.end_array(); break; case types::psi: j.start_array("psi"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_str(c.get()[i1].to_string()); } j.end_array(); break; default: log_invalid_choice_id(type_, "si_or_psi_geran_c"); } j.end_obj(); } SRSASN_CODE si_or_psi_geran_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::si: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 10)); break; case types::psi: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 10)); break; default: log_invalid_choice_id(type_, "si_or_psi_geran_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE si_or_psi_geran_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::si: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 10)); break; case types::psi: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 10)); break; default: log_invalid_choice_id(type_, "si_or_psi_geran_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UECapabilityEnquiry-v1180-IEs ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_v1180_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(requested_freq_bands_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (requested_freq_bands_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, requested_freq_bands_r11, 1, 16, UnalignedIntegerPacker(1, 256))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_v1180_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(requested_freq_bands_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (requested_freq_bands_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(requested_freq_bands_r11, bref, 1, 16, UnalignedIntegerPacker(1, 256))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_enquiry_v1180_ies_s::to_json(json_writer& j) const { j.start_obj(); if (requested_freq_bands_r11_present) { j.start_array("requestedFrequencyBands-r11"); for (uint32_t i1 = 0; i1 < requested_freq_bands_r11.size(); ++i1) { j.write_int(requested_freq_bands_r11[i1]); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationRequest-v1020-IEs ::= SEQUENCE SRSASN_CODE ue_info_request_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_report_req_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_report_req_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_request_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_report_req_r10_present) { j.write_str("logMeasReportReq-r10", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // AreaConfiguration-r10 ::= CHOICE void area_cfg_r10_c::destroy_() { switch (type_) { case types::cell_global_id_list_r10: c.destroy(); break; case types::tac_list_r10: c.destroy(); break; default: break; } } void area_cfg_r10_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cell_global_id_list_r10: c.init(); break; case types::tac_list_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "area_cfg_r10_c"); } } area_cfg_r10_c::area_cfg_r10_c(const area_cfg_r10_c& other) { type_ = other.type(); switch (type_) { case types::cell_global_id_list_r10: c.init(other.c.get()); break; case types::tac_list_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "area_cfg_r10_c"); } } area_cfg_r10_c& area_cfg_r10_c::operator=(const area_cfg_r10_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cell_global_id_list_r10: c.set(other.c.get()); break; case types::tac_list_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "area_cfg_r10_c"); } return *this; } void area_cfg_r10_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cell_global_id_list_r10: j.start_array("cellGlobalIdList-r10"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::tac_list_r10: j.start_array("trackingAreaCodeList-r10"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_str(c.get()[i1].to_string()); } j.end_array(); break; default: log_invalid_choice_id(type_, "area_cfg_r10_c"); } j.end_obj(); } SRSASN_CODE area_cfg_r10_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cell_global_id_list_r10: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 32)); break; case types::tac_list_r10: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); break; default: log_invalid_choice_id(type_, "area_cfg_r10_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE area_cfg_r10_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cell_global_id_list_r10: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 32)); break; case types::tac_list_r10: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); break; default: log_invalid_choice_id(type_, "area_cfg_r10_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE SRSASN_CODE csfb_params_resp_cdma2000_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csfb_params_resp_cdma2000_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void csfb_params_resp_cdma2000_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // CellChangeOrder ::= SEQUENCE SRSASN_CODE cell_change_order_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, t304)); HANDLE_CODE(target_rat_type.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_change_order_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(t304, bref)); HANDLE_CODE(target_rat_type.unpack(bref)); return SRSASN_SUCCESS; } void cell_change_order_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("t304", t304.to_string()); j.write_fieldname("targetRAT-Type"); target_rat_type.to_json(j); j.end_obj(); } void cell_change_order_s::target_rat_type_c_::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("geran"); j.start_obj(); j.write_fieldname("physCellId"); c.pci.to_json(j); j.write_fieldname("carrierFreq"); c.carrier_freq.to_json(j); if (c.network_ctrl_order_present) { j.write_str("networkControlOrder", c.network_ctrl_order.to_string()); } if (c.sys_info_present) { j.write_fieldname("systemInformation"); c.sys_info.to_json(j); } j.end_obj(); j.end_obj(); } SRSASN_CODE cell_change_order_s::target_rat_type_c_::pack(bit_ref& bref) const { pack_enum(bref, type()); HANDLE_CODE(bref.pack(c.network_ctrl_order_present, 1)); HANDLE_CODE(bref.pack(c.sys_info_present, 1)); HANDLE_CODE(c.pci.pack(bref)); HANDLE_CODE(c.carrier_freq.pack(bref)); if (c.network_ctrl_order_present) { HANDLE_CODE(c.network_ctrl_order.pack(bref)); } if (c.sys_info_present) { HANDLE_CODE(c.sys_info.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE cell_change_order_s::target_rat_type_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); if (e != type()) { log_invalid_choice_id(e, "cell_change_order_s::target_rat_type_c_"); return SRSASN_ERROR_DECODE_FAIL; } HANDLE_CODE(bref.unpack(c.network_ctrl_order_present, 1)); HANDLE_CODE(bref.unpack(c.sys_info_present, 1)); HANDLE_CODE(c.pci.unpack(bref)); HANDLE_CODE(c.carrier_freq.unpack(bref)); if (c.network_ctrl_order_present) { HANDLE_CODE(c.network_ctrl_order.unpack(bref)); } if (c.sys_info_present) { HANDLE_CODE(c.sys_info.unpack(bref)); } return SRSASN_SUCCESS; } // CounterCheck-v8a0-IEs ::= SEQUENCE SRSASN_CODE counter_check_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void counter_check_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // DLInformationTransfer-v8a0-IEs ::= SEQUENCE SRSASN_CODE dl_info_transfer_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE dl_info_transfer_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void dl_info_transfer_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // E-CSFB-r9 ::= SEQUENCE SRSASN_CODE e_csfb_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(msg_cont_cdma2000_minus1_xrtt_r9_present, 1)); HANDLE_CODE(bref.pack(mob_cdma2000_hrpd_r9_present, 1)); HANDLE_CODE(bref.pack(msg_cont_cdma2000_hrpd_r9_present, 1)); HANDLE_CODE(bref.pack(redirect_carrier_cdma2000_hrpd_r9_present, 1)); if (msg_cont_cdma2000_minus1_xrtt_r9_present) { HANDLE_CODE(msg_cont_cdma2000_minus1_xrtt_r9.pack(bref)); } if (mob_cdma2000_hrpd_r9_present) { HANDLE_CODE(pack_enum(bref, mob_cdma2000_hrpd_r9)); } if (msg_cont_cdma2000_hrpd_r9_present) { HANDLE_CODE(msg_cont_cdma2000_hrpd_r9.pack(bref)); } if (redirect_carrier_cdma2000_hrpd_r9_present) { HANDLE_CODE(redirect_carrier_cdma2000_hrpd_r9.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE e_csfb_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(msg_cont_cdma2000_minus1_xrtt_r9_present, 1)); HANDLE_CODE(bref.unpack(mob_cdma2000_hrpd_r9_present, 1)); HANDLE_CODE(bref.unpack(msg_cont_cdma2000_hrpd_r9_present, 1)); HANDLE_CODE(bref.unpack(redirect_carrier_cdma2000_hrpd_r9_present, 1)); if (msg_cont_cdma2000_minus1_xrtt_r9_present) { HANDLE_CODE(msg_cont_cdma2000_minus1_xrtt_r9.unpack(bref)); } if (mob_cdma2000_hrpd_r9_present) { HANDLE_CODE(unpack_enum(mob_cdma2000_hrpd_r9, bref)); } if (msg_cont_cdma2000_hrpd_r9_present) { HANDLE_CODE(msg_cont_cdma2000_hrpd_r9.unpack(bref)); } if (redirect_carrier_cdma2000_hrpd_r9_present) { HANDLE_CODE(redirect_carrier_cdma2000_hrpd_r9.unpack(bref)); } return SRSASN_SUCCESS; } void e_csfb_r9_s::to_json(json_writer& j) const { j.start_obj(); if (msg_cont_cdma2000_minus1_xrtt_r9_present) { j.write_str("messageContCDMA2000-1XRTT-r9", msg_cont_cdma2000_minus1_xrtt_r9.to_string()); } if (mob_cdma2000_hrpd_r9_present) { j.write_str("mobilityCDMA2000-HRPD-r9", mob_cdma2000_hrpd_r9.to_string()); } if (msg_cont_cdma2000_hrpd_r9_present) { j.write_str("messageContCDMA2000-HRPD-r9", msg_cont_cdma2000_hrpd_r9.to_string()); } if (redirect_carrier_cdma2000_hrpd_r9_present) { j.write_fieldname("redirectCarrierCDMA2000-HRPD-r9"); redirect_carrier_cdma2000_hrpd_r9.to_json(j); } j.end_obj(); } // Handover ::= SEQUENCE SRSASN_CODE ho_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(nas_security_param_from_eutra_present, 1)); HANDLE_CODE(bref.pack(sys_info_present, 1)); HANDLE_CODE(pack_enum(bref, target_rat_type)); HANDLE_CODE(target_rat_msg_container.pack(bref)); if (nas_security_param_from_eutra_present) { HANDLE_CODE(nas_security_param_from_eutra.pack(bref)); } if (sys_info_present) { HANDLE_CODE(sys_info.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(nas_security_param_from_eutra_present, 1)); HANDLE_CODE(bref.unpack(sys_info_present, 1)); HANDLE_CODE(unpack_enum(target_rat_type, bref)); HANDLE_CODE(target_rat_msg_container.unpack(bref)); if (nas_security_param_from_eutra_present) { HANDLE_CODE(nas_security_param_from_eutra.unpack(bref)); } if (sys_info_present) { HANDLE_CODE(sys_info.unpack(bref)); } return SRSASN_SUCCESS; } void ho_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("targetRAT-Type", target_rat_type.to_string()); j.write_str("targetRAT-MessageContainer", target_rat_msg_container.to_string()); if (nas_security_param_from_eutra_present) { j.write_str("nas-SecurityParamFromEUTRA", nas_security_param_from_eutra.to_string()); } if (sys_info_present) { j.write_fieldname("systemInformation"); sys_info.to_json(j); } j.end_obj(); } // HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE SRSASN_CODE ho_from_eutra_prep_request_v890_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_from_eutra_prep_request_v890_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_from_eutra_prep_request_v890_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE SRSASN_CODE logged_meas_cfg_v1080_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_r10_present) { HANDLE_CODE(late_non_crit_ext_r10.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE logged_meas_cfg_v1080_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_r10_present) { HANDLE_CODE(late_non_crit_ext_r10.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void logged_meas_cfg_v1080_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_r10_present) { j.write_str("lateNonCriticalExtension-r10", late_non_crit_ext_r10.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MeasConfig ::= SEQUENCE SRSASN_CODE meas_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_obj_to_rem_list_present, 1)); HANDLE_CODE(bref.pack(meas_obj_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(report_cfg_to_rem_list_present, 1)); HANDLE_CODE(bref.pack(report_cfg_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(meas_id_to_rem_list_present, 1)); HANDLE_CODE(bref.pack(meas_id_to_add_mod_list_present, 1)); HANDLE_CODE(bref.pack(quant_cfg_present, 1)); HANDLE_CODE(bref.pack(meas_gap_cfg_present, 1)); HANDLE_CODE(bref.pack(s_measure_present, 1)); HANDLE_CODE(bref.pack(pre_regist_info_hrpd_present, 1)); HANDLE_CODE(bref.pack(speed_state_pars_present, 1)); if (meas_obj_to_rem_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_obj_to_rem_list, 1, 32, UnalignedIntegerPacker(1, 32))); } if (meas_obj_to_add_mod_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_obj_to_add_mod_list, 1, 32)); } if (report_cfg_to_rem_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, report_cfg_to_rem_list, 1, 32, UnalignedIntegerPacker(1, 32))); } if (report_cfg_to_add_mod_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, report_cfg_to_add_mod_list, 1, 32)); } if (meas_id_to_rem_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_to_rem_list, 1, 32, UnalignedIntegerPacker(1, 32))); } if (meas_id_to_add_mod_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_to_add_mod_list, 1, 32)); } if (quant_cfg_present) { HANDLE_CODE(quant_cfg.pack(bref)); } if (meas_gap_cfg_present) { HANDLE_CODE(meas_gap_cfg.pack(bref)); } if (s_measure_present) { HANDLE_CODE(pack_unalign_integer(bref, s_measure, (uint8_t)0, (uint8_t)97)); } if (pre_regist_info_hrpd_present) { HANDLE_CODE(pre_regist_info_hrpd.pack(bref)); } if (speed_state_pars_present) { HANDLE_CODE(speed_state_pars.pack(bref)); } if (ext) { ext_groups_header group_flags(7); rrc_asn1_warn_assert(meas_obj_to_add_mod_list_v9e0_present != (meas_obj_to_add_mod_list_v9e0.get() != NULL), __FILE__, __LINE__); group_flags[0] |= meas_obj_to_add_mod_list_v9e0_present; group_flags[1] |= allow_interruptions_r11_present; rrc_asn1_warn_assert(meas_scale_factor_r12_present != (meas_scale_factor_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= meas_scale_factor_r12_present; rrc_asn1_warn_assert(meas_id_to_rem_list_ext_r12_present != (meas_id_to_rem_list_ext_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= meas_id_to_rem_list_ext_r12_present; rrc_asn1_warn_assert(meas_id_to_add_mod_list_ext_r12_present != (meas_id_to_add_mod_list_ext_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= meas_id_to_add_mod_list_ext_r12_present; group_flags[2] |= meas_rsrq_on_all_symbols_r12_present; rrc_asn1_warn_assert(meas_obj_to_rem_list_ext_r13_present != (meas_obj_to_rem_list_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_obj_to_rem_list_ext_r13_present; rrc_asn1_warn_assert(meas_obj_to_add_mod_list_ext_r13_present != (meas_obj_to_add_mod_list_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_obj_to_add_mod_list_ext_r13_present; rrc_asn1_warn_assert(meas_id_to_add_mod_list_v1310_present != (meas_id_to_add_mod_list_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_id_to_add_mod_list_v1310_present; rrc_asn1_warn_assert(meas_id_to_add_mod_list_ext_v1310_present != (meas_id_to_add_mod_list_ext_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_id_to_add_mod_list_ext_v1310_present; rrc_asn1_warn_assert(meas_gap_cfg_per_cc_list_r14_present != (meas_gap_cfg_per_cc_list_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= meas_gap_cfg_per_cc_list_r14_present; rrc_asn1_warn_assert(meas_gap_sharing_cfg_r14_present != (meas_gap_sharing_cfg_r14.get() != NULL), __FILE__, __LINE__); group_flags[4] |= meas_gap_sharing_cfg_r14_present; group_flags[5] |= fr1_gap_r15_present; group_flags[5] |= mgta_r15_present; rrc_asn1_warn_assert(meas_gap_cfg_dense_prs_r15_present != (meas_gap_cfg_dense_prs_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= meas_gap_cfg_dense_prs_r15_present; rrc_asn1_warn_assert(height_thresh_ref_r15_present != (height_thresh_ref_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= height_thresh_ref_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_obj_to_add_mod_list_v9e0_present, 1)); if (meas_obj_to_add_mod_list_v9e0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_obj_to_add_mod_list_v9e0, 1, 32)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(allow_interruptions_r11_present, 1)); if (allow_interruptions_r11_present) { HANDLE_CODE(bref.pack(allow_interruptions_r11, 1)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_scale_factor_r12_present, 1)); HANDLE_CODE(bref.pack(meas_id_to_rem_list_ext_r12_present, 1)); HANDLE_CODE(bref.pack(meas_id_to_add_mod_list_ext_r12_present, 1)); HANDLE_CODE(bref.pack(meas_rsrq_on_all_symbols_r12_present, 1)); if (meas_scale_factor_r12_present) { HANDLE_CODE(meas_scale_factor_r12->pack(bref)); } if (meas_id_to_rem_list_ext_r12_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *meas_id_to_rem_list_ext_r12, 1, 32, UnalignedIntegerPacker(33, 64))); } if (meas_id_to_add_mod_list_ext_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_id_to_add_mod_list_ext_r12, 1, 32)); } if (meas_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(bref.pack(meas_rsrq_on_all_symbols_r12, 1)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_obj_to_rem_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(meas_obj_to_add_mod_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(meas_id_to_add_mod_list_v1310_present, 1)); HANDLE_CODE(bref.pack(meas_id_to_add_mod_list_ext_v1310_present, 1)); if (meas_obj_to_rem_list_ext_r13_present) { HANDLE_CODE( pack_dyn_seq_of(bref, *meas_obj_to_rem_list_ext_r13, 1, 32, UnalignedIntegerPacker(33, 64))); } if (meas_obj_to_add_mod_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_obj_to_add_mod_list_ext_r13, 1, 32)); } if (meas_id_to_add_mod_list_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_id_to_add_mod_list_v1310, 1, 32)); } if (meas_id_to_add_mod_list_ext_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_id_to_add_mod_list_ext_v1310, 1, 32)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_gap_cfg_per_cc_list_r14_present, 1)); HANDLE_CODE(bref.pack(meas_gap_sharing_cfg_r14_present, 1)); if (meas_gap_cfg_per_cc_list_r14_present) { HANDLE_CODE(meas_gap_cfg_per_cc_list_r14->pack(bref)); } if (meas_gap_sharing_cfg_r14_present) { HANDLE_CODE(meas_gap_sharing_cfg_r14->pack(bref)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(fr1_gap_r15_present, 1)); HANDLE_CODE(bref.pack(mgta_r15_present, 1)); if (fr1_gap_r15_present) { HANDLE_CODE(bref.pack(fr1_gap_r15, 1)); } if (mgta_r15_present) { HANDLE_CODE(bref.pack(mgta_r15, 1)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_gap_cfg_dense_prs_r15_present, 1)); HANDLE_CODE(bref.pack(height_thresh_ref_r15_present, 1)); if (meas_gap_cfg_dense_prs_r15_present) { HANDLE_CODE(meas_gap_cfg_dense_prs_r15->pack(bref)); } if (height_thresh_ref_r15_present) { HANDLE_CODE(height_thresh_ref_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_cfg_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_obj_to_rem_list_present, 1)); HANDLE_CODE(bref.unpack(meas_obj_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(report_cfg_to_rem_list_present, 1)); HANDLE_CODE(bref.unpack(report_cfg_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(meas_id_to_rem_list_present, 1)); HANDLE_CODE(bref.unpack(meas_id_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(quant_cfg_present, 1)); HANDLE_CODE(bref.unpack(meas_gap_cfg_present, 1)); HANDLE_CODE(bref.unpack(s_measure_present, 1)); HANDLE_CODE(bref.unpack(pre_regist_info_hrpd_present, 1)); HANDLE_CODE(bref.unpack(speed_state_pars_present, 1)); if (meas_obj_to_rem_list_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_obj_to_rem_list, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (meas_obj_to_add_mod_list_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_obj_to_add_mod_list, bref, 1, 32)); } if (report_cfg_to_rem_list_present) { HANDLE_CODE(unpack_dyn_seq_of(report_cfg_to_rem_list, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (report_cfg_to_add_mod_list_present) { HANDLE_CODE(unpack_dyn_seq_of(report_cfg_to_add_mod_list, bref, 1, 32)); } if (meas_id_to_rem_list_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_id_to_rem_list, bref, 1, 32, UnalignedIntegerPacker(1, 32))); } if (meas_id_to_add_mod_list_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_id_to_add_mod_list, bref, 1, 32)); } if (quant_cfg_present) { HANDLE_CODE(quant_cfg.unpack(bref)); } if (meas_gap_cfg_present) { HANDLE_CODE(meas_gap_cfg.unpack(bref)); } if (s_measure_present) { HANDLE_CODE(unpack_unalign_integer(s_measure, bref, (uint8_t)0, (uint8_t)97)); } if (pre_regist_info_hrpd_present) { HANDLE_CODE(pre_regist_info_hrpd.unpack(bref)); } if (speed_state_pars_present) { HANDLE_CODE(speed_state_pars.unpack(bref)); } if (ext) { ext_groups_header group_flags(7); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_obj_to_add_mod_list_v9e0_present, 1)); if (meas_obj_to_add_mod_list_v9e0_present) { meas_obj_to_add_mod_list_v9e0 = make_copy_ptr(meas_obj_to_add_mod_list_v9e0_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_obj_to_add_mod_list_v9e0, bref, 1, 32)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(allow_interruptions_r11_present, 1)); if (allow_interruptions_r11_present) { HANDLE_CODE(bref.unpack(allow_interruptions_r11, 1)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_scale_factor_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_id_to_rem_list_ext_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_id_to_add_mod_list_ext_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_rsrq_on_all_symbols_r12_present, 1)); if (meas_scale_factor_r12_present) { meas_scale_factor_r12 = make_copy_ptr(meas_scale_factor_r12_c_()); HANDLE_CODE(meas_scale_factor_r12->unpack(bref)); } if (meas_id_to_rem_list_ext_r12_present) { meas_id_to_rem_list_ext_r12 = make_copy_ptr(meas_id_to_rem_list_ext_r12_l()); HANDLE_CODE( unpack_dyn_seq_of(*meas_id_to_rem_list_ext_r12, bref, 1, 32, UnalignedIntegerPacker(33, 64))); } if (meas_id_to_add_mod_list_ext_r12_present) { meas_id_to_add_mod_list_ext_r12 = make_copy_ptr(meas_id_to_add_mod_list_ext_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_id_to_add_mod_list_ext_r12, bref, 1, 32)); } if (meas_rsrq_on_all_symbols_r12_present) { HANDLE_CODE(bref.unpack(meas_rsrq_on_all_symbols_r12, 1)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_obj_to_rem_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_obj_to_add_mod_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_id_to_add_mod_list_v1310_present, 1)); HANDLE_CODE(bref.unpack(meas_id_to_add_mod_list_ext_v1310_present, 1)); if (meas_obj_to_rem_list_ext_r13_present) { meas_obj_to_rem_list_ext_r13 = make_copy_ptr(meas_obj_to_rem_list_ext_r13_l()); HANDLE_CODE( unpack_dyn_seq_of(*meas_obj_to_rem_list_ext_r13, bref, 1, 32, UnalignedIntegerPacker(33, 64))); } if (meas_obj_to_add_mod_list_ext_r13_present) { meas_obj_to_add_mod_list_ext_r13 = make_copy_ptr(meas_obj_to_add_mod_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_obj_to_add_mod_list_ext_r13, bref, 1, 32)); } if (meas_id_to_add_mod_list_v1310_present) { meas_id_to_add_mod_list_v1310 = make_copy_ptr(meas_id_to_add_mod_list_v1310_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_id_to_add_mod_list_v1310, bref, 1, 32)); } if (meas_id_to_add_mod_list_ext_v1310_present) { meas_id_to_add_mod_list_ext_v1310 = make_copy_ptr(meas_id_to_add_mod_list_ext_v1310_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_id_to_add_mod_list_ext_v1310, bref, 1, 32)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_gap_cfg_per_cc_list_r14_present, 1)); HANDLE_CODE(bref.unpack(meas_gap_sharing_cfg_r14_present, 1)); if (meas_gap_cfg_per_cc_list_r14_present) { meas_gap_cfg_per_cc_list_r14 = make_copy_ptr(meas_gap_cfg_per_cc_list_r14_c()); HANDLE_CODE(meas_gap_cfg_per_cc_list_r14->unpack(bref)); } if (meas_gap_sharing_cfg_r14_present) { meas_gap_sharing_cfg_r14 = make_copy_ptr(meas_gap_sharing_cfg_r14_c()); HANDLE_CODE(meas_gap_sharing_cfg_r14->unpack(bref)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(fr1_gap_r15_present, 1)); HANDLE_CODE(bref.unpack(mgta_r15_present, 1)); if (fr1_gap_r15_present) { HANDLE_CODE(bref.unpack(fr1_gap_r15, 1)); } if (mgta_r15_present) { HANDLE_CODE(bref.unpack(mgta_r15, 1)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_gap_cfg_dense_prs_r15_present, 1)); HANDLE_CODE(bref.unpack(height_thresh_ref_r15_present, 1)); if (meas_gap_cfg_dense_prs_r15_present) { meas_gap_cfg_dense_prs_r15 = make_copy_ptr(meas_gap_cfg_dense_prs_r15_c()); HANDLE_CODE(meas_gap_cfg_dense_prs_r15->unpack(bref)); } if (height_thresh_ref_r15_present) { height_thresh_ref_r15 = make_copy_ptr(height_thresh_ref_r15_c_()); HANDLE_CODE(height_thresh_ref_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void meas_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (meas_obj_to_rem_list_present) { j.start_array("measObjectToRemoveList"); for (uint32_t i1 = 0; i1 < meas_obj_to_rem_list.size(); ++i1) { j.write_int(meas_obj_to_rem_list[i1]); } j.end_array(); } if (meas_obj_to_add_mod_list_present) { j.start_array("measObjectToAddModList"); for (uint32_t i1 = 0; i1 < meas_obj_to_add_mod_list.size(); ++i1) { meas_obj_to_add_mod_list[i1].to_json(j); } j.end_array(); } if (report_cfg_to_rem_list_present) { j.start_array("reportConfigToRemoveList"); for (uint32_t i1 = 0; i1 < report_cfg_to_rem_list.size(); ++i1) { j.write_int(report_cfg_to_rem_list[i1]); } j.end_array(); } if (report_cfg_to_add_mod_list_present) { j.start_array("reportConfigToAddModList"); for (uint32_t i1 = 0; i1 < report_cfg_to_add_mod_list.size(); ++i1) { report_cfg_to_add_mod_list[i1].to_json(j); } j.end_array(); } if (meas_id_to_rem_list_present) { j.start_array("measIdToRemoveList"); for (uint32_t i1 = 0; i1 < meas_id_to_rem_list.size(); ++i1) { j.write_int(meas_id_to_rem_list[i1]); } j.end_array(); } if (meas_id_to_add_mod_list_present) { j.start_array("measIdToAddModList"); for (uint32_t i1 = 0; i1 < meas_id_to_add_mod_list.size(); ++i1) { meas_id_to_add_mod_list[i1].to_json(j); } j.end_array(); } if (quant_cfg_present) { j.write_fieldname("quantityConfig"); quant_cfg.to_json(j); } if (meas_gap_cfg_present) { j.write_fieldname("measGapConfig"); meas_gap_cfg.to_json(j); } if (s_measure_present) { j.write_int("s-Measure", s_measure); } if (pre_regist_info_hrpd_present) { j.write_fieldname("preRegistrationInfoHRPD"); pre_regist_info_hrpd.to_json(j); } if (speed_state_pars_present) { j.write_fieldname("speedStatePars"); speed_state_pars.to_json(j); } if (ext) { rrc_asn1_warn_assert(meas_obj_to_add_mod_list_v9e0_present != (meas_obj_to_add_mod_list_v9e0.get() != NULL), __FILE__, __LINE__); if (meas_obj_to_add_mod_list_v9e0_present) { j.start_array("measObjectToAddModList-v9e0"); for (uint32_t i1 = 0; i1 < meas_obj_to_add_mod_list_v9e0->size(); ++i1) { ((*meas_obj_to_add_mod_list_v9e0)[i1]).to_json(j); } j.end_array(); } if (allow_interruptions_r11_present) { j.write_bool("allowInterruptions-r11", allow_interruptions_r11); } rrc_asn1_warn_assert(meas_scale_factor_r12_present != (meas_scale_factor_r12.get() != NULL), __FILE__, __LINE__); if (meas_scale_factor_r12_present) { j.write_fieldname("measScaleFactor-r12"); meas_scale_factor_r12->to_json(j); } rrc_asn1_warn_assert(meas_id_to_rem_list_ext_r12_present != (meas_id_to_rem_list_ext_r12.get() != NULL), __FILE__, __LINE__); if (meas_id_to_rem_list_ext_r12_present) { j.start_array("measIdToRemoveListExt-r12"); for (uint32_t i1 = 0; i1 < meas_id_to_rem_list_ext_r12->size(); ++i1) { j.write_int(((*meas_id_to_rem_list_ext_r12)[i1])); } j.end_array(); } rrc_asn1_warn_assert(meas_id_to_add_mod_list_ext_r12_present != (meas_id_to_add_mod_list_ext_r12.get() != NULL), __FILE__, __LINE__); if (meas_id_to_add_mod_list_ext_r12_present) { j.start_array("measIdToAddModListExt-r12"); for (uint32_t i1 = 0; i1 < meas_id_to_add_mod_list_ext_r12->size(); ++i1) { ((*meas_id_to_add_mod_list_ext_r12)[i1]).to_json(j); } j.end_array(); } if (meas_rsrq_on_all_symbols_r12_present) { j.write_bool("measRSRQ-OnAllSymbols-r12", meas_rsrq_on_all_symbols_r12); } rrc_asn1_warn_assert(meas_obj_to_rem_list_ext_r13_present != (meas_obj_to_rem_list_ext_r13.get() != NULL), __FILE__, __LINE__); if (meas_obj_to_rem_list_ext_r13_present) { j.start_array("measObjectToRemoveListExt-r13"); for (uint32_t i1 = 0; i1 < meas_obj_to_rem_list_ext_r13->size(); ++i1) { j.write_int(((*meas_obj_to_rem_list_ext_r13)[i1])); } j.end_array(); } rrc_asn1_warn_assert(meas_obj_to_add_mod_list_ext_r13_present != (meas_obj_to_add_mod_list_ext_r13.get() != NULL), __FILE__, __LINE__); if (meas_obj_to_add_mod_list_ext_r13_present) { j.start_array("measObjectToAddModListExt-r13"); for (uint32_t i1 = 0; i1 < meas_obj_to_add_mod_list_ext_r13->size(); ++i1) { ((*meas_obj_to_add_mod_list_ext_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_id_to_add_mod_list_v1310_present != (meas_id_to_add_mod_list_v1310.get() != NULL), __FILE__, __LINE__); if (meas_id_to_add_mod_list_v1310_present) { j.start_array("measIdToAddModList-v1310"); for (uint32_t i1 = 0; i1 < meas_id_to_add_mod_list_v1310->size(); ++i1) { ((*meas_id_to_add_mod_list_v1310)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_id_to_add_mod_list_ext_v1310_present != (meas_id_to_add_mod_list_ext_v1310.get() != NULL), __FILE__, __LINE__); if (meas_id_to_add_mod_list_ext_v1310_present) { j.start_array("measIdToAddModListExt-v1310"); for (uint32_t i1 = 0; i1 < meas_id_to_add_mod_list_ext_v1310->size(); ++i1) { ((*meas_id_to_add_mod_list_ext_v1310)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_gap_cfg_per_cc_list_r14_present != (meas_gap_cfg_per_cc_list_r14.get() != NULL), __FILE__, __LINE__); if (meas_gap_cfg_per_cc_list_r14_present) { j.write_fieldname("measGapConfigPerCC-List-r14"); meas_gap_cfg_per_cc_list_r14->to_json(j); } rrc_asn1_warn_assert(meas_gap_sharing_cfg_r14_present != (meas_gap_sharing_cfg_r14.get() != NULL), __FILE__, __LINE__); if (meas_gap_sharing_cfg_r14_present) { j.write_fieldname("measGapSharingConfig-r14"); meas_gap_sharing_cfg_r14->to_json(j); } if (fr1_gap_r15_present) { j.write_bool("fr1-Gap-r15", fr1_gap_r15); } if (mgta_r15_present) { j.write_bool("mgta-r15", mgta_r15); } rrc_asn1_warn_assert(meas_gap_cfg_dense_prs_r15_present != (meas_gap_cfg_dense_prs_r15.get() != NULL), __FILE__, __LINE__); if (meas_gap_cfg_dense_prs_r15_present) { j.write_fieldname("measGapConfigDensePRS-r15"); meas_gap_cfg_dense_prs_r15->to_json(j); } rrc_asn1_warn_assert(height_thresh_ref_r15_present != (height_thresh_ref_r15.get() != NULL), __FILE__, __LINE__); if (height_thresh_ref_r15_present) { j.write_fieldname("heightThreshRef-r15"); height_thresh_ref_r15->to_json(j); } } j.end_obj(); } void meas_cfg_s::speed_state_pars_c_::set(types::options e) { type_ = e; } void meas_cfg_s::speed_state_pars_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("mobilityStateParameters"); c.mob_state_params.to_json(j); j.write_fieldname("timeToTrigger-SF"); c.time_to_trigger_sf.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "meas_cfg_s::speed_state_pars_c_"); } j.end_obj(); } SRSASN_CODE meas_cfg_s::speed_state_pars_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.mob_state_params.pack(bref)); HANDLE_CODE(c.time_to_trigger_sf.pack(bref)); break; default: log_invalid_choice_id(type_, "meas_cfg_s::speed_state_pars_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_cfg_s::speed_state_pars_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.mob_state_params.unpack(bref)); HANDLE_CODE(c.time_to_trigger_sf.unpack(bref)); break; default: log_invalid_choice_id(type_, "meas_cfg_s::speed_state_pars_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_cfg_s::meas_scale_factor_r12_c_::set(types::options e) { type_ = e; } void meas_cfg_s::meas_scale_factor_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_str("setup", c.to_string()); break; default: log_invalid_choice_id(type_, "meas_cfg_s::meas_scale_factor_r12_c_"); } j.end_obj(); } SRSASN_CODE meas_cfg_s::meas_scale_factor_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_enum(bref, c)); break; default: log_invalid_choice_id(type_, "meas_cfg_s::meas_scale_factor_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_cfg_s::meas_scale_factor_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_enum(c, bref)); break; default: log_invalid_choice_id(type_, "meas_cfg_s::meas_scale_factor_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_cfg_s::height_thresh_ref_r15_c_::set(types::options e) { type_ = e; } void meas_cfg_s::height_thresh_ref_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_int("setup", c); break; default: log_invalid_choice_id(type_, "meas_cfg_s::height_thresh_ref_r15_c_"); } j.end_obj(); } SRSASN_CODE meas_cfg_s::height_thresh_ref_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_unalign_integer(bref, c, (uint8_t)0, (uint8_t)31)); break; default: log_invalid_choice_id(type_, "meas_cfg_s::height_thresh_ref_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_cfg_s::height_thresh_ref_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_unalign_integer(c, bref, (uint8_t)0, (uint8_t)31)); break; default: log_invalid_choice_id(type_, "meas_cfg_s::height_thresh_ref_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MobilityControlInfo ::= SEQUENCE SRSASN_CODE mob_ctrl_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(carrier_freq_present, 1)); HANDLE_CODE(bref.pack(carrier_bw_present, 1)); HANDLE_CODE(bref.pack(add_spec_emission_present, 1)); HANDLE_CODE(bref.pack(rach_cfg_ded_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, target_pci, (uint16_t)0, (uint16_t)503)); if (carrier_freq_present) { HANDLE_CODE(carrier_freq.pack(bref)); } if (carrier_bw_present) { HANDLE_CODE(carrier_bw.pack(bref)); } if (add_spec_emission_present) { HANDLE_CODE(pack_unalign_integer(bref, add_spec_emission, (uint8_t)1, (uint8_t)32)); } HANDLE_CODE(pack_enum(bref, t304)); HANDLE_CODE(new_ue_id.pack(bref)); HANDLE_CODE(rr_cfg_common.pack(bref)); if (rach_cfg_ded_present) { HANDLE_CODE(rach_cfg_ded.pack(bref)); } if (ext) { ext_groups_header group_flags(4); rrc_asn1_warn_assert(carrier_freq_v9e0_present != (carrier_freq_v9e0.get() != NULL), __FILE__, __LINE__); group_flags[0] |= carrier_freq_v9e0_present; group_flags[1] |= drb_continue_rohc_r11_present; rrc_asn1_warn_assert(mob_ctrl_info_v2x_r14_present != (mob_ctrl_info_v2x_r14.get() != NULL), __FILE__, __LINE__); group_flags[2] |= mob_ctrl_info_v2x_r14_present; group_flags[2] |= ho_without_wt_change_r14_present; group_flags[2] |= make_before_break_r14_present; rrc_asn1_warn_assert(rach_skip_r14_present != (rach_skip_r14.get() != NULL), __FILE__, __LINE__); group_flags[2] |= rach_skip_r14_present; group_flags[2] |= same_sfn_ind_r14_present; group_flags[3] |= mib_repeat_status_r14_present; group_flags[3] |= sched_info_sib1_br_r14_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(carrier_freq_v9e0_present, 1)); if (carrier_freq_v9e0_present) { HANDLE_CODE(carrier_freq_v9e0->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(drb_continue_rohc_r11_present, 1)); } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mob_ctrl_info_v2x_r14_present, 1)); HANDLE_CODE(bref.pack(ho_without_wt_change_r14_present, 1)); HANDLE_CODE(bref.pack(make_before_break_r14_present, 1)); HANDLE_CODE(bref.pack(rach_skip_r14_present, 1)); HANDLE_CODE(bref.pack(same_sfn_ind_r14_present, 1)); if (mob_ctrl_info_v2x_r14_present) { HANDLE_CODE(mob_ctrl_info_v2x_r14->pack(bref)); } if (ho_without_wt_change_r14_present) { HANDLE_CODE(pack_enum(bref, ho_without_wt_change_r14)); } if (rach_skip_r14_present) { HANDLE_CODE(rach_skip_r14->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mib_repeat_status_r14_present, 1)); HANDLE_CODE(bref.pack(sched_info_sib1_br_r14_present, 1)); if (mib_repeat_status_r14_present) { HANDLE_CODE(bref.pack(mib_repeat_status_r14, 1)); } if (sched_info_sib1_br_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, sched_info_sib1_br_r14, (uint8_t)0, (uint8_t)31)); } } } return SRSASN_SUCCESS; } SRSASN_CODE mob_ctrl_info_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(carrier_freq_present, 1)); HANDLE_CODE(bref.unpack(carrier_bw_present, 1)); HANDLE_CODE(bref.unpack(add_spec_emission_present, 1)); HANDLE_CODE(bref.unpack(rach_cfg_ded_present, 1)); HANDLE_CODE(unpack_unalign_integer(target_pci, bref, (uint16_t)0, (uint16_t)503)); if (carrier_freq_present) { HANDLE_CODE(carrier_freq.unpack(bref)); } if (carrier_bw_present) { HANDLE_CODE(carrier_bw.unpack(bref)); } if (add_spec_emission_present) { HANDLE_CODE(unpack_unalign_integer(add_spec_emission, bref, (uint8_t)1, (uint8_t)32)); } HANDLE_CODE(unpack_enum(t304, bref)); HANDLE_CODE(new_ue_id.unpack(bref)); HANDLE_CODE(rr_cfg_common.unpack(bref)); if (rach_cfg_ded_present) { HANDLE_CODE(rach_cfg_ded.unpack(bref)); } if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(carrier_freq_v9e0_present, 1)); if (carrier_freq_v9e0_present) { carrier_freq_v9e0 = make_copy_ptr(carrier_freq_eutra_v9e0_s()); HANDLE_CODE(carrier_freq_v9e0->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(drb_continue_rohc_r11_present, 1)); } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mob_ctrl_info_v2x_r14_present, 1)); HANDLE_CODE(bref.unpack(ho_without_wt_change_r14_present, 1)); HANDLE_CODE(bref.unpack(make_before_break_r14_present, 1)); HANDLE_CODE(bref.unpack(rach_skip_r14_present, 1)); HANDLE_CODE(bref.unpack(same_sfn_ind_r14_present, 1)); if (mob_ctrl_info_v2x_r14_present) { mob_ctrl_info_v2x_r14 = make_copy_ptr(mob_ctrl_info_v2x_r14_s()); HANDLE_CODE(mob_ctrl_info_v2x_r14->unpack(bref)); } if (ho_without_wt_change_r14_present) { HANDLE_CODE(unpack_enum(ho_without_wt_change_r14, bref)); } if (rach_skip_r14_present) { rach_skip_r14 = make_copy_ptr(rach_skip_r14_s()); HANDLE_CODE(rach_skip_r14->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mib_repeat_status_r14_present, 1)); HANDLE_CODE(bref.unpack(sched_info_sib1_br_r14_present, 1)); if (mib_repeat_status_r14_present) { HANDLE_CODE(bref.unpack(mib_repeat_status_r14, 1)); } if (sched_info_sib1_br_r14_present) { HANDLE_CODE(unpack_unalign_integer(sched_info_sib1_br_r14, bref, (uint8_t)0, (uint8_t)31)); } } } return SRSASN_SUCCESS; } void mob_ctrl_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("targetPhysCellId", target_pci); if (carrier_freq_present) { j.write_fieldname("carrierFreq"); carrier_freq.to_json(j); } if (carrier_bw_present) { j.write_fieldname("carrierBandwidth"); carrier_bw.to_json(j); } if (add_spec_emission_present) { j.write_int("additionalSpectrumEmission", add_spec_emission); } j.write_str("t304", t304.to_string()); j.write_str("newUE-Identity", new_ue_id.to_string()); j.write_fieldname("radioResourceConfigCommon"); rr_cfg_common.to_json(j); if (rach_cfg_ded_present) { j.write_fieldname("rach-ConfigDedicated"); rach_cfg_ded.to_json(j); } if (ext) { rrc_asn1_warn_assert(carrier_freq_v9e0_present != (carrier_freq_v9e0.get() != NULL), __FILE__, __LINE__); if (carrier_freq_v9e0_present) { j.write_fieldname("carrierFreq-v9e0"); carrier_freq_v9e0->to_json(j); } if (drb_continue_rohc_r11_present) { j.write_str("drb-ContinueROHC-r11", "true"); } rrc_asn1_warn_assert(mob_ctrl_info_v2x_r14_present != (mob_ctrl_info_v2x_r14.get() != NULL), __FILE__, __LINE__); if (mob_ctrl_info_v2x_r14_present) { j.write_fieldname("mobilityControlInfoV2X-r14"); mob_ctrl_info_v2x_r14->to_json(j); } if (ho_without_wt_change_r14_present) { j.write_str("handoverWithoutWT-Change-r14", ho_without_wt_change_r14.to_string()); } if (make_before_break_r14_present) { j.write_str("makeBeforeBreak-r14", "true"); } rrc_asn1_warn_assert(rach_skip_r14_present != (rach_skip_r14.get() != NULL), __FILE__, __LINE__); if (rach_skip_r14_present) { j.write_fieldname("rach-Skip-r14"); rach_skip_r14->to_json(j); } if (same_sfn_ind_r14_present) { j.write_str("sameSFN-Indication-r14", "true"); } if (mib_repeat_status_r14_present) { j.write_bool("mib-RepetitionStatus-r14", mib_repeat_status_r14); } if (sched_info_sib1_br_r14_present) { j.write_int("schedulingInfoSIB1-BR-r14", sched_info_sib1_br_r14); } } j.end_obj(); } // MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE SRSASN_CODE mob_from_eutra_cmd_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mob_from_eutra_cmd_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE SRSASN_CODE mob_from_eutra_cmd_v930_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_v930_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mob_from_eutra_cmd_v930_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RN-SubframeConfig-r10 ::= SEQUENCE SRSASN_CODE rn_sf_cfg_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sf_cfg_pattern_r10_present, 1)); HANDLE_CODE(bref.pack(rpdcch_cfg_r10_present, 1)); if (sf_cfg_pattern_r10_present) { HANDLE_CODE(sf_cfg_pattern_r10.pack(bref)); } if (rpdcch_cfg_r10_present) { bref.pack(rpdcch_cfg_r10.ext, 1); HANDLE_CODE(pack_enum(bref, rpdcch_cfg_r10.res_alloc_type_r10)); HANDLE_CODE(rpdcch_cfg_r10.res_block_assign_r10.pack(bref)); HANDLE_CODE(rpdcch_cfg_r10.demod_rs_r10.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, rpdcch_cfg_r10.pdsch_start_r10, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(rpdcch_cfg_r10.pucch_cfg_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rn_sf_cfg_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sf_cfg_pattern_r10_present, 1)); HANDLE_CODE(bref.unpack(rpdcch_cfg_r10_present, 1)); if (sf_cfg_pattern_r10_present) { HANDLE_CODE(sf_cfg_pattern_r10.unpack(bref)); } if (rpdcch_cfg_r10_present) { bref.unpack(rpdcch_cfg_r10.ext, 1); HANDLE_CODE(unpack_enum(rpdcch_cfg_r10.res_alloc_type_r10, bref)); HANDLE_CODE(rpdcch_cfg_r10.res_block_assign_r10.unpack(bref)); HANDLE_CODE(rpdcch_cfg_r10.demod_rs_r10.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(rpdcch_cfg_r10.pdsch_start_r10, bref, (uint8_t)1, (uint8_t)3)); HANDLE_CODE(rpdcch_cfg_r10.pucch_cfg_r10.unpack(bref)); } return SRSASN_SUCCESS; } void rn_sf_cfg_r10_s::to_json(json_writer& j) const { j.start_obj(); if (sf_cfg_pattern_r10_present) { j.write_fieldname("subframeConfigPattern-r10"); sf_cfg_pattern_r10.to_json(j); } if (rpdcch_cfg_r10_present) { j.write_fieldname("rpdcch-Config-r10"); j.start_obj(); j.write_str("resourceAllocationType-r10", rpdcch_cfg_r10.res_alloc_type_r10.to_string()); j.write_fieldname("resourceBlockAssignment-r10"); rpdcch_cfg_r10.res_block_assign_r10.to_json(j); j.write_fieldname("demodulationRS-r10"); rpdcch_cfg_r10.demod_rs_r10.to_json(j); j.write_int("pdsch-Start-r10", rpdcch_cfg_r10.pdsch_start_r10); j.write_fieldname("pucch-Config-r10"); rpdcch_cfg_r10.pucch_cfg_r10.to_json(j); j.end_obj(); } j.end_obj(); } void rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::destroy_() { switch (type_) { case types::sf_cfg_pattern_fdd_r10: c.destroy >(); break; default: break; } } void rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sf_cfg_pattern_fdd_r10: c.init >(); break; case types::sf_cfg_pattern_tdd_r10: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_"); } } rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::sf_cfg_pattern_r10_c_(const rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_& other) { type_ = other.type(); switch (type_) { case types::sf_cfg_pattern_fdd_r10: c.init(other.c.get >()); break; case types::sf_cfg_pattern_tdd_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_"); } } rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_& rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_:: operator=(const rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf_cfg_pattern_fdd_r10: c.set(other.c.get >()); break; case types::sf_cfg_pattern_tdd_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_"); } return *this; } void rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf_cfg_pattern_fdd_r10: j.write_str("subframeConfigPatternFDD-r10", c.get >().to_string()); break; case types::sf_cfg_pattern_tdd_r10: j.write_int("subframeConfigPatternTDD-r10", c.get()); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_"); } j.end_obj(); } SRSASN_CODE rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf_cfg_pattern_fdd_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::sf_cfg_pattern_tdd_r10: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)31)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf_cfg_pattern_fdd_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sf_cfg_pattern_tdd_r10: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)31)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::destroy_() { switch (type_) { case types::type01_r10: c.destroy(); break; case types::type2_r10: c.destroy(); break; default: break; } } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::type01_r10: c.init(); break; case types::type2_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::res_block_assign_r10_c_( const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_& other) { type_ = other.type(); switch (type_) { case types::type01_r10: c.init(other.c.get()); break; case types::type2_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_:: operator=(const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::type01_r10: c.set(other.c.get()); break; case types::type2_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_"); } return *this; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::type01_r10: j.write_fieldname("type01-r10"); c.get().to_json(j); break; case types::type2_r10: j.write_fieldname("type2-r10"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_"); } j.end_obj(); } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::type01_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::type2_r10: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::type01_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::type2_r10: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::destroy_() { switch (type_) { case types::nrb6_r10: c.destroy >(); break; case types::nrb15_r10: c.destroy >(); break; case types::nrb25_r10: c.destroy >(); break; case types::nrb50_r10: c.destroy >(); break; case types::nrb75_r10: c.destroy >(); break; case types::nrb100_r10: c.destroy >(); break; default: break; } } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::nrb6_r10: c.init >(); break; case types::nrb15_r10: c.init >(); break; case types::nrb25_r10: c.init >(); break; case types::nrb50_r10: c.init >(); break; case types::nrb75_r10: c.init >(); break; case types::nrb100_r10: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::type01_r10_c_( const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_& other) { type_ = other.type(); switch (type_) { case types::nrb6_r10: c.init(other.c.get >()); break; case types::nrb15_r10: c.init(other.c.get >()); break; case types::nrb25_r10: c.init(other.c.get >()); break; case types::nrb50_r10: c.init(other.c.get >()); break; case types::nrb75_r10: c.init(other.c.get >()); break; case types::nrb100_r10: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_:: operator=(const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::nrb6_r10: c.set(other.c.get >()); break; case types::nrb15_r10: c.set(other.c.get >()); break; case types::nrb25_r10: c.set(other.c.get >()); break; case types::nrb50_r10: c.set(other.c.get >()); break; case types::nrb75_r10: c.set(other.c.get >()); break; case types::nrb100_r10: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_"); } return *this; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::nrb6_r10: j.write_str("nrb6-r10", c.get >().to_string()); break; case types::nrb15_r10: j.write_str("nrb15-r10", c.get >().to_string()); break; case types::nrb25_r10: j.write_str("nrb25-r10", c.get >().to_string()); break; case types::nrb50_r10: j.write_str("nrb50-r10", c.get >().to_string()); break; case types::nrb75_r10: j.write_str("nrb75-r10", c.get >().to_string()); break; case types::nrb100_r10: j.write_str("nrb100-r10", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_"); } j.end_obj(); } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::nrb6_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb15_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb25_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb50_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb75_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb100_r10: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::nrb6_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb15_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb25_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb50_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb75_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb100_r10: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::destroy_() { switch (type_) { case types::nrb6_r10: c.destroy >(); break; case types::nrb15_r10: c.destroy >(); break; case types::nrb25_r10: c.destroy >(); break; case types::nrb50_r10: c.destroy >(); break; case types::nrb75_r10: c.destroy >(); break; case types::nrb100_r10: c.destroy >(); break; default: break; } } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::nrb6_r10: c.init >(); break; case types::nrb15_r10: c.init >(); break; case types::nrb25_r10: c.init >(); break; case types::nrb50_r10: c.init >(); break; case types::nrb75_r10: c.init >(); break; case types::nrb100_r10: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::type2_r10_c_( const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_& other) { type_ = other.type(); switch (type_) { case types::nrb6_r10: c.init(other.c.get >()); break; case types::nrb15_r10: c.init(other.c.get >()); break; case types::nrb25_r10: c.init(other.c.get >()); break; case types::nrb50_r10: c.init(other.c.get >()); break; case types::nrb75_r10: c.init(other.c.get >()); break; case types::nrb100_r10: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_:: operator=(const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::nrb6_r10: c.set(other.c.get >()); break; case types::nrb15_r10: c.set(other.c.get >()); break; case types::nrb25_r10: c.set(other.c.get >()); break; case types::nrb50_r10: c.set(other.c.get >()); break; case types::nrb75_r10: c.set(other.c.get >()); break; case types::nrb100_r10: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_"); } return *this; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::nrb6_r10: j.write_str("nrb6-r10", c.get >().to_string()); break; case types::nrb15_r10: j.write_str("nrb15-r10", c.get >().to_string()); break; case types::nrb25_r10: j.write_str("nrb25-r10", c.get >().to_string()); break; case types::nrb50_r10: j.write_str("nrb50-r10", c.get >().to_string()); break; case types::nrb75_r10: j.write_str("nrb75-r10", c.get >().to_string()); break; case types::nrb100_r10: j.write_str("nrb100-r10", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_"); } j.end_obj(); } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::nrb6_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb15_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb25_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb50_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb75_r10: HANDLE_CODE(c.get >().pack(bref)); break; case types::nrb100_r10: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::nrb6_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb15_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb25_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb50_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb75_r10: HANDLE_CODE(c.get >().unpack(bref)); break; case types::nrb100_r10: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::destroy_() {} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::set(types::options e) { destroy_(); type_ = e; } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::demod_rs_r10_c_( const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_& other) { type_ = other.type(); switch (type_) { case types::interleaving_r10: break; case types::no_interleaving_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_:: operator=(const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::interleaving_r10: break; case types::no_interleaving_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); } return *this; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::interleaving_r10: break; case types::no_interleaving_r10: j.write_str("noInterleaving-r10", c.get().to_string()); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); } j.end_obj(); } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interleaving_r10: break; case types::no_interleaving_r10: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interleaving_r10: break; case types::no_interleaving_r10: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::destroy_() { switch (type_) { case types::tdd: c.destroy(); break; case types::fdd: c.destroy(); break; default: break; } } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::tdd: c.init(); break; case types::fdd: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::pucch_cfg_r10_c_( const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_& other) { type_ = other.type(); switch (type_) { case types::tdd: c.init(other.c.get()); break; case types::fdd: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_:: operator=(const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::tdd: c.set(other.c.get()); break; case types::fdd: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_"); } return *this; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::tdd: j.write_fieldname("tdd"); c.get().to_json(j); break; case types::fdd: j.write_fieldname("fdd"); j.start_obj(); j.write_int("n1PUCCH-AN-P0-r10", c.get().n1_pucch_an_p0_r10); if (c.get().n1_pucch_an_p1_r10_present) { j.write_int("n1PUCCH-AN-P1-r10", c.get().n1_pucch_an_p1_r10); } j.end_obj(); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_"); } j.end_obj(); } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::tdd: HANDLE_CODE(c.get().pack(bref)); break; case types::fdd: HANDLE_CODE(bref.pack(c.get().n1_pucch_an_p1_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.get().n1_pucch_an_p0_r10, (uint16_t)0, (uint16_t)2047)); if (c.get().n1_pucch_an_p1_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, c.get().n1_pucch_an_p1_r10, (uint16_t)0, (uint16_t)2047)); } break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::tdd: HANDLE_CODE(c.get().unpack(bref)); break; case types::fdd: HANDLE_CODE(bref.unpack(c.get().n1_pucch_an_p1_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.get().n1_pucch_an_p0_r10, bref, (uint16_t)0, (uint16_t)2047)); if (c.get().n1_pucch_an_p1_r10_present) { HANDLE_CODE(unpack_unalign_integer(c.get().n1_pucch_an_p1_r10, bref, (uint16_t)0, (uint16_t)2047)); } break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::destroy_() { switch (type_) { case types::ch_sel_mux_bundling: c.destroy(); break; case types::fallback_for_format3: c.destroy(); break; default: break; } } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ch_sel_mux_bundling: c.init(); break; case types::fallback_for_format3: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::tdd_c_( const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_& other) { type_ = other.type(); switch (type_) { case types::ch_sel_mux_bundling: c.init(other.c.get()); break; case types::fallback_for_format3: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_"); } } rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_:: operator=(const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ch_sel_mux_bundling: c.set(other.c.get()); break; case types::fallback_for_format3: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_"); } return *this; } void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ch_sel_mux_bundling: j.write_fieldname("channelSelectionMultiplexingBundling"); j.start_obj(); j.start_array("n1PUCCH-AN-List-r10"); for (uint32_t i1 = 0; i1 < c.get().n1_pucch_an_list_r10.size(); ++i1) { j.write_int(c.get().n1_pucch_an_list_r10[i1]); } j.end_array(); j.end_obj(); break; case types::fallback_for_format3: j.write_fieldname("fallbackForFormat3"); j.start_obj(); j.write_int("n1PUCCH-AN-P0-r10", c.get().n1_pucch_an_p0_r10); if (c.get().n1_pucch_an_p1_r10_present) { j.write_int("n1PUCCH-AN-P1-r10", c.get().n1_pucch_an_p1_r10); } j.end_obj(); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_"); } j.end_obj(); } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ch_sel_mux_bundling: HANDLE_CODE(pack_dyn_seq_of(bref, c.get().n1_pucch_an_list_r10, 1, 4, UnalignedIntegerPacker(0, 2047))); break; case types::fallback_for_format3: HANDLE_CODE(bref.pack(c.get().n1_pucch_an_p1_r10_present, 1)); HANDLE_CODE( pack_unalign_integer(bref, c.get().n1_pucch_an_p0_r10, (uint16_t)0, (uint16_t)2047)); if (c.get().n1_pucch_an_p1_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, c.get().n1_pucch_an_p1_r10, (uint16_t)0, (uint16_t)2047)); } break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ch_sel_mux_bundling: HANDLE_CODE(unpack_dyn_seq_of(c.get().n1_pucch_an_list_r10, bref, 1, 4, UnalignedIntegerPacker(0, 2047))); break; case types::fallback_for_format3: HANDLE_CODE(bref.unpack(c.get().n1_pucch_an_p1_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.get().n1_pucch_an_p0_r10, bref, (uint16_t)0, (uint16_t)2047)); if (c.get().n1_pucch_an_p1_r10_present) { HANDLE_CODE(unpack_unalign_integer(c.get().n1_pucch_an_p1_r10, bref, (uint16_t)0, (uint16_t)2047)); } break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RN-SystemInfo-r10 ::= SEQUENCE SRSASN_CODE rn_sys_info_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sib_type1_r10_present, 1)); HANDLE_CODE(bref.pack(sib_type2_r10_present, 1)); if (sib_type1_r10_present) { HANDLE_CODE(sib_type1_r10.pack(bref)); } if (sib_type2_r10_present) { HANDLE_CODE(sib_type2_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rn_sys_info_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sib_type1_r10_present, 1)); HANDLE_CODE(bref.unpack(sib_type2_r10_present, 1)); if (sib_type1_r10_present) { HANDLE_CODE(sib_type1_r10.unpack(bref)); } if (sib_type2_r10_present) { HANDLE_CODE(sib_type2_r10.unpack(bref)); } return SRSASN_SUCCESS; } void rn_sys_info_r10_s::to_json(json_writer& j) const { j.start_obj(); if (sib_type1_r10_present) { j.write_str("systemInformationBlockType1-r10", sib_type1_r10.to_string()); } if (sib_type2_r10_present) { j.write_fieldname("systemInformationBlockType2-r10"); sib_type2_r10.to_json(j); } j.end_obj(); } // RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v890_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_v890_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_v890_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionRelease-v890-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_v890_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_v890_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_release_v890_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionResume-v1430-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_resume_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(other_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(rrc_conn_resume_v1510_ies_present, 1)); if (other_cfg_r14_present) { HANDLE_CODE(other_cfg_r14.pack(bref)); } if (rrc_conn_resume_v1510_ies_present) { HANDLE_CODE(rrc_conn_resume_v1510_ies.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(other_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(rrc_conn_resume_v1510_ies_present, 1)); if (other_cfg_r14_present) { HANDLE_CODE(other_cfg_r14.unpack(bref)); } if (rrc_conn_resume_v1510_ies_present) { HANDLE_CODE(rrc_conn_resume_v1510_ies.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_resume_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (other_cfg_r14_present) { j.write_fieldname("otherConfig-r14"); other_cfg_r14.to_json(j); } if (rrc_conn_resume_v1510_ies_present) { j.write_fieldname("rrcConnectionResume-v1510-IEs"); rrc_conn_resume_v1510_ies.to_json(j); } j.end_obj(); } // RedirectedCarrierInfo ::= CHOICE void redirected_carrier_info_c::destroy_() { switch (type_) { case types::geran: c.destroy(); break; case types::cdma2000_hrpd: c.destroy(); break; case types::cdma2000_minus1x_rtt: c.destroy(); break; case types::utra_tdd_r10: c.destroy(); break; case types::nr_r15: c.destroy(); break; default: break; } } void redirected_carrier_info_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::eutra: break; case types::geran: c.init(); break; case types::utra_fdd: break; case types::utra_tdd: break; case types::cdma2000_hrpd: c.init(); break; case types::cdma2000_minus1x_rtt: c.init(); break; case types::utra_tdd_r10: c.init(); break; case types::nr_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "redirected_carrier_info_c"); } } redirected_carrier_info_c::redirected_carrier_info_c(const redirected_carrier_info_c& other) { type_ = other.type(); switch (type_) { case types::eutra: c.init(other.c.get()); break; case types::geran: c.init(other.c.get()); break; case types::utra_fdd: c.init(other.c.get()); break; case types::utra_tdd: c.init(other.c.get()); break; case types::cdma2000_hrpd: c.init(other.c.get()); break; case types::cdma2000_minus1x_rtt: c.init(other.c.get()); break; case types::utra_tdd_r10: c.init(other.c.get()); break; case types::nr_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "redirected_carrier_info_c"); } } redirected_carrier_info_c& redirected_carrier_info_c::operator=(const redirected_carrier_info_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::eutra: c.set(other.c.get()); break; case types::geran: c.set(other.c.get()); break; case types::utra_fdd: c.set(other.c.get()); break; case types::utra_tdd: c.set(other.c.get()); break; case types::cdma2000_hrpd: c.set(other.c.get()); break; case types::cdma2000_minus1x_rtt: c.set(other.c.get()); break; case types::utra_tdd_r10: c.set(other.c.get()); break; case types::nr_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "redirected_carrier_info_c"); } return *this; } void redirected_carrier_info_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::eutra: j.write_int("eutra", c.get()); break; case types::geran: j.write_fieldname("geran"); c.get().to_json(j); break; case types::utra_fdd: j.write_int("utra-FDD", c.get()); break; case types::utra_tdd: j.write_int("utra-TDD", c.get()); break; case types::cdma2000_hrpd: j.write_fieldname("cdma2000-HRPD"); c.get().to_json(j); break; case types::cdma2000_minus1x_rtt: j.write_fieldname("cdma2000-1xRTT"); c.get().to_json(j); break; case types::utra_tdd_r10: j.start_array("utra-TDD-r10"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_int(c.get()[i1]); } j.end_array(); break; case types::nr_r15: j.write_fieldname("nr-r15"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "redirected_carrier_info_c"); } j.end_obj(); } SRSASN_CODE redirected_carrier_info_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::eutra: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)65535)); break; case types::geran: HANDLE_CODE(c.get().pack(bref)); break; case types::utra_fdd: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)16383)); break; case types::utra_tdd: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)16383)); break; case types::cdma2000_hrpd: HANDLE_CODE(c.get().pack(bref)); break; case types::cdma2000_minus1x_rtt: HANDLE_CODE(c.get().pack(bref)); break; case types::utra_tdd_r10: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 6, UnalignedIntegerPacker(0, 16383))); } break; case types::nr_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; default: log_invalid_choice_id(type_, "redirected_carrier_info_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE redirected_carrier_info_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::eutra: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)65535)); break; case types::geran: HANDLE_CODE(c.get().unpack(bref)); break; case types::utra_fdd: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)16383)); break; case types::utra_tdd: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)16383)); break; case types::cdma2000_hrpd: HANDLE_CODE(c.get().unpack(bref)); break; case types::cdma2000_minus1x_rtt: HANDLE_CODE(c.get().unpack(bref)); break; case types::utra_tdd_r10: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 6, UnalignedIntegerPacker(0, 16383))); } break; case types::nr_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; default: log_invalid_choice_id(type_, "redirected_carrier_info_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SecurityConfigHO ::= SEQUENCE SRSASN_CODE security_cfg_ho_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(ho_type.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE security_cfg_ho_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(ho_type.unpack(bref)); return SRSASN_SUCCESS; } void security_cfg_ho_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("handoverType"); ho_type.to_json(j); j.end_obj(); } void security_cfg_ho_s::ho_type_c_::destroy_() { switch (type_) { case types::intra_lte: c.destroy(); break; case types::inter_rat: c.destroy(); break; default: break; } } void security_cfg_ho_s::ho_type_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::intra_lte: c.init(); break; case types::inter_rat: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_cfg_ho_s::ho_type_c_"); } } security_cfg_ho_s::ho_type_c_::ho_type_c_(const security_cfg_ho_s::ho_type_c_& other) { type_ = other.type(); switch (type_) { case types::intra_lte: c.init(other.c.get()); break; case types::inter_rat: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_cfg_ho_s::ho_type_c_"); } } security_cfg_ho_s::ho_type_c_& security_cfg_ho_s::ho_type_c_::operator=(const security_cfg_ho_s::ho_type_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::intra_lte: c.set(other.c.get()); break; case types::inter_rat: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_cfg_ho_s::ho_type_c_"); } return *this; } void security_cfg_ho_s::ho_type_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::intra_lte: j.write_fieldname("intraLTE"); j.start_obj(); if (c.get().security_algorithm_cfg_present) { j.write_fieldname("securityAlgorithmConfig"); c.get().security_algorithm_cfg.to_json(j); } j.write_bool("keyChangeIndicator", c.get().key_change_ind); j.write_int("nextHopChainingCount", c.get().next_hop_chaining_count); j.end_obj(); break; case types::inter_rat: j.write_fieldname("interRAT"); j.start_obj(); j.write_fieldname("securityAlgorithmConfig"); c.get().security_algorithm_cfg.to_json(j); j.write_str("nas-SecurityParamToEUTRA", c.get().nas_security_param_to_eutra.to_string()); j.end_obj(); break; default: log_invalid_choice_id(type_, "security_cfg_ho_s::ho_type_c_"); } j.end_obj(); } SRSASN_CODE security_cfg_ho_s::ho_type_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::intra_lte: HANDLE_CODE(bref.pack(c.get().security_algorithm_cfg_present, 1)); if (c.get().security_algorithm_cfg_present) { HANDLE_CODE(c.get().security_algorithm_cfg.pack(bref)); } HANDLE_CODE(bref.pack(c.get().key_change_ind, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.get().next_hop_chaining_count, (uint8_t)0, (uint8_t)7)); break; case types::inter_rat: HANDLE_CODE(c.get().security_algorithm_cfg.pack(bref)); HANDLE_CODE(c.get().nas_security_param_to_eutra.pack(bref)); break; default: log_invalid_choice_id(type_, "security_cfg_ho_s::ho_type_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE security_cfg_ho_s::ho_type_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::intra_lte: HANDLE_CODE(bref.unpack(c.get().security_algorithm_cfg_present, 1)); if (c.get().security_algorithm_cfg_present) { HANDLE_CODE(c.get().security_algorithm_cfg.unpack(bref)); } HANDLE_CODE(bref.unpack(c.get().key_change_ind, 1)); HANDLE_CODE(unpack_unalign_integer(c.get().next_hop_chaining_count, bref, (uint8_t)0, (uint8_t)7)); break; case types::inter_rat: HANDLE_CODE(c.get().security_algorithm_cfg.unpack(bref)); HANDLE_CODE(c.get().nas_security_param_to_eutra.unpack(bref)); break; default: log_invalid_choice_id(type_, "security_cfg_ho_s::ho_type_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SecurityConfigSMC ::= SEQUENCE SRSASN_CODE security_cfg_smc_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(security_algorithm_cfg.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE security_cfg_smc_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(security_algorithm_cfg.unpack(bref)); return SRSASN_SUCCESS; } void security_cfg_smc_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("securityAlgorithmConfig"); security_algorithm_cfg.to_json(j); j.end_obj(); } // SecurityModeCommand-v8a0-IEs ::= SEQUENCE SRSASN_CODE security_mode_cmd_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_cmd_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void security_mode_cmd_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // TraceReference-r10 ::= SEQUENCE SRSASN_CODE trace_ref_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(plmn_id_r10.pack(bref)); HANDLE_CODE(trace_id_r10.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE trace_ref_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(plmn_id_r10.unpack(bref)); HANDLE_CODE(trace_id_r10.unpack(bref)); return SRSASN_SUCCESS; } void trace_ref_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("plmn-Identity-r10"); plmn_id_r10.to_json(j); j.write_str("traceId-r10", trace_id_r10.to_string()); j.end_obj(); } // UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_enquiry_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationRequest-v930-IEs ::= SEQUENCE SRSASN_CODE ue_info_request_v930_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_v930_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_request_v930_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE SRSASN_CODE csfb_params_resp_cdma2000_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(rand.pack(bref)); HANDLE_CODE(mob_params.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csfb_params_resp_cdma2000_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(rand.unpack(bref)); HANDLE_CODE(mob_params.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void csfb_params_resp_cdma2000_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("rand", rand.to_string()); j.write_str("mobilityParameters", mob_params.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CounterCheck-r8-IEs ::= SEQUENCE SRSASN_CODE counter_check_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, drb_count_msb_info_list, 1, 11)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(drb_count_msb_info_list, bref, 1, 11)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void counter_check_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("drb-CountMSB-InfoList"); for (uint32_t i1 = 0; i1 < drb_count_msb_info_list.size(); ++i1) { drb_count_msb_info_list[i1].to_json(j); } j.end_array(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // DLInformationTransfer-r15-IEs ::= SEQUENCE SRSASN_CODE dl_info_transfer_r15_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ded_info_type_r15_present, 1)); HANDLE_CODE(bref.pack(time_ref_info_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ded_info_type_r15_present) { HANDLE_CODE(ded_info_type_r15.pack(bref)); } if (time_ref_info_r15_present) { HANDLE_CODE(time_ref_info_r15.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE dl_info_transfer_r15_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ded_info_type_r15_present, 1)); HANDLE_CODE(bref.unpack(time_ref_info_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ded_info_type_r15_present) { HANDLE_CODE(ded_info_type_r15.unpack(bref)); } if (time_ref_info_r15_present) { HANDLE_CODE(time_ref_info_r15.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void dl_info_transfer_r15_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ded_info_type_r15_present) { j.write_fieldname("dedicatedInfoType-r15"); ded_info_type_r15.to_json(j); } if (time_ref_info_r15_present) { j.write_fieldname("timeReferenceInfo-r15"); time_ref_info_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::destroy_() { switch (type_) { case types::ded_info_nas_r15: c.destroy(); break; case types::ded_info_cdma2000_minus1_xrtt_r15: c.destroy(); break; case types::ded_info_cdma2000_hrpd_r15: c.destroy(); break; default: break; } } void dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ded_info_nas_r15: c.init(); break; case types::ded_info_cdma2000_minus1_xrtt_r15: c.init(); break; case types::ded_info_cdma2000_hrpd_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_r15_ies_s::ded_info_type_r15_c_"); } } dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::ded_info_type_r15_c_( const dl_info_transfer_r15_ies_s::ded_info_type_r15_c_& other) { type_ = other.type(); switch (type_) { case types::ded_info_nas_r15: c.init(other.c.get()); break; case types::ded_info_cdma2000_minus1_xrtt_r15: c.init(other.c.get()); break; case types::ded_info_cdma2000_hrpd_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_r15_ies_s::ded_info_type_r15_c_"); } } dl_info_transfer_r15_ies_s::ded_info_type_r15_c_& dl_info_transfer_r15_ies_s::ded_info_type_r15_c_:: operator=(const dl_info_transfer_r15_ies_s::ded_info_type_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ded_info_nas_r15: c.set(other.c.get()); break; case types::ded_info_cdma2000_minus1_xrtt_r15: c.set(other.c.get()); break; case types::ded_info_cdma2000_hrpd_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_r15_ies_s::ded_info_type_r15_c_"); } return *this; } void dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ded_info_nas_r15: j.write_str("dedicatedInfoNAS-r15", c.get().to_string()); break; case types::ded_info_cdma2000_minus1_xrtt_r15: j.write_str("dedicatedInfoCDMA2000-1XRTT-r15", c.get().to_string()); break; case types::ded_info_cdma2000_hrpd_r15: j.write_str("dedicatedInfoCDMA2000-HRPD-r15", c.get().to_string()); break; default: log_invalid_choice_id(type_, "dl_info_transfer_r15_ies_s::ded_info_type_r15_c_"); } j.end_obj(); } SRSASN_CODE dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ded_info_nas_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::ded_info_cdma2000_minus1_xrtt_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::ded_info_cdma2000_hrpd_r15: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "dl_info_transfer_r15_ies_s::ded_info_type_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ded_info_nas_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::ded_info_cdma2000_minus1_xrtt_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::ded_info_cdma2000_hrpd_r15: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "dl_info_transfer_r15_ies_s::ded_info_type_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DLInformationTransfer-r8-IEs ::= SEQUENCE SRSASN_CODE dl_info_transfer_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(ded_info_type.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE dl_info_transfer_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(ded_info_type.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void dl_info_transfer_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("dedicatedInfoType"); ded_info_type.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void dl_info_transfer_r8_ies_s::ded_info_type_c_::destroy_() { switch (type_) { case types::ded_info_nas: c.destroy(); break; case types::ded_info_cdma2000_minus1_xrtt: c.destroy(); break; case types::ded_info_cdma2000_hrpd: c.destroy(); break; default: break; } } void dl_info_transfer_r8_ies_s::ded_info_type_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ded_info_nas: c.init(); break; case types::ded_info_cdma2000_minus1_xrtt: c.init(); break; case types::ded_info_cdma2000_hrpd: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_r8_ies_s::ded_info_type_c_"); } } dl_info_transfer_r8_ies_s::ded_info_type_c_::ded_info_type_c_(const dl_info_transfer_r8_ies_s::ded_info_type_c_& other) { type_ = other.type(); switch (type_) { case types::ded_info_nas: c.init(other.c.get()); break; case types::ded_info_cdma2000_minus1_xrtt: c.init(other.c.get()); break; case types::ded_info_cdma2000_hrpd: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_r8_ies_s::ded_info_type_c_"); } } dl_info_transfer_r8_ies_s::ded_info_type_c_& dl_info_transfer_r8_ies_s::ded_info_type_c_:: operator=(const dl_info_transfer_r8_ies_s::ded_info_type_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ded_info_nas: c.set(other.c.get()); break; case types::ded_info_cdma2000_minus1_xrtt: c.set(other.c.get()); break; case types::ded_info_cdma2000_hrpd: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_r8_ies_s::ded_info_type_c_"); } return *this; } void dl_info_transfer_r8_ies_s::ded_info_type_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ded_info_nas: j.write_str("dedicatedInfoNAS", c.get().to_string()); break; case types::ded_info_cdma2000_minus1_xrtt: j.write_str("dedicatedInfoCDMA2000-1XRTT", c.get().to_string()); break; case types::ded_info_cdma2000_hrpd: j.write_str("dedicatedInfoCDMA2000-HRPD", c.get().to_string()); break; default: log_invalid_choice_id(type_, "dl_info_transfer_r8_ies_s::ded_info_type_c_"); } j.end_obj(); } SRSASN_CODE dl_info_transfer_r8_ies_s::ded_info_type_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ded_info_nas: HANDLE_CODE(c.get().pack(bref)); break; case types::ded_info_cdma2000_minus1_xrtt: HANDLE_CODE(c.get().pack(bref)); break; case types::ded_info_cdma2000_hrpd: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "dl_info_transfer_r8_ies_s::ded_info_type_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_info_transfer_r8_ies_s::ded_info_type_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ded_info_nas: HANDLE_CODE(c.get().unpack(bref)); break; case types::ded_info_cdma2000_minus1_xrtt: HANDLE_CODE(c.get().unpack(bref)); break; case types::ded_info_cdma2000_hrpd: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "dl_info_transfer_r8_ies_s::ded_info_type_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE SRSASN_CODE ho_from_eutra_prep_request_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rand_present, 1)); HANDLE_CODE(bref.pack(mob_params_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_enum(bref, cdma2000_type)); if (rand_present) { HANDLE_CODE(rand.pack(bref)); } if (mob_params_present) { HANDLE_CODE(mob_params.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_from_eutra_prep_request_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rand_present, 1)); HANDLE_CODE(bref.unpack(mob_params_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_enum(cdma2000_type, bref)); if (rand_present) { HANDLE_CODE(rand.unpack(bref)); } if (mob_params_present) { HANDLE_CODE(mob_params.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_from_eutra_prep_request_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cdma2000-Type", cdma2000_type.to_string()); if (rand_present) { j.write_str("rand", rand.to_string()); } if (mob_params_present) { j.write_str("mobilityParameters", mob_params.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE SRSASN_CODE logged_meas_cfg_r10_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(area_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(trace_ref_r10.pack(bref)); HANDLE_CODE(trace_recording_session_ref_r10.pack(bref)); HANDLE_CODE(tce_id_r10.pack(bref)); HANDLE_CODE(absolute_time_info_r10.pack(bref)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.pack(bref)); } HANDLE_CODE(pack_enum(bref, logging_dur_r10)); HANDLE_CODE(pack_enum(bref, logging_interv_r10)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE logged_meas_cfg_r10_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(area_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(trace_ref_r10.unpack(bref)); HANDLE_CODE(trace_recording_session_ref_r10.unpack(bref)); HANDLE_CODE(tce_id_r10.unpack(bref)); HANDLE_CODE(absolute_time_info_r10.unpack(bref)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.unpack(bref)); } HANDLE_CODE(unpack_enum(logging_dur_r10, bref)); HANDLE_CODE(unpack_enum(logging_interv_r10, bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void logged_meas_cfg_r10_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("traceReference-r10"); trace_ref_r10.to_json(j); j.write_str("traceRecordingSessionRef-r10", trace_recording_session_ref_r10.to_string()); j.write_str("tce-Id-r10", tce_id_r10.to_string()); j.write_str("absoluteTimeInfo-r10", absolute_time_info_r10.to_string()); if (area_cfg_r10_present) { j.write_fieldname("areaConfiguration-r10"); area_cfg_r10.to_json(j); } j.write_str("loggingDuration-r10", logging_dur_r10.to_string()); j.write_str("loggingInterval-r10", logging_interv_r10.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE SRSASN_CODE mob_from_eutra_cmd_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(cs_fallback_ind, 1)); HANDLE_CODE(purpose.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(cs_fallback_ind, 1)); HANDLE_CODE(purpose.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mob_from_eutra_cmd_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("cs-FallbackIndicator", cs_fallback_ind); j.write_fieldname("purpose"); purpose.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void mob_from_eutra_cmd_r8_ies_s::purpose_c_::destroy_() { switch (type_) { case types::ho: c.destroy(); break; case types::cell_change_order: c.destroy(); break; default: break; } } void mob_from_eutra_cmd_r8_ies_s::purpose_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ho: c.init(); break; case types::cell_change_order: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r8_ies_s::purpose_c_"); } } mob_from_eutra_cmd_r8_ies_s::purpose_c_::purpose_c_(const mob_from_eutra_cmd_r8_ies_s::purpose_c_& other) { type_ = other.type(); switch (type_) { case types::ho: c.init(other.c.get()); break; case types::cell_change_order: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r8_ies_s::purpose_c_"); } } mob_from_eutra_cmd_r8_ies_s::purpose_c_& mob_from_eutra_cmd_r8_ies_s::purpose_c_:: operator=(const mob_from_eutra_cmd_r8_ies_s::purpose_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ho: c.set(other.c.get()); break; case types::cell_change_order: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r8_ies_s::purpose_c_"); } return *this; } void mob_from_eutra_cmd_r8_ies_s::purpose_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ho: j.write_fieldname("handover"); c.get().to_json(j); break; case types::cell_change_order: j.write_fieldname("cellChangeOrder"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r8_ies_s::purpose_c_"); } j.end_obj(); } SRSASN_CODE mob_from_eutra_cmd_r8_ies_s::purpose_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ho: HANDLE_CODE(c.get().pack(bref)); break; case types::cell_change_order: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r8_ies_s::purpose_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_r8_ies_s::purpose_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ho: HANDLE_CODE(c.get().unpack(bref)); break; case types::cell_change_order: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r8_ies_s::purpose_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE SRSASN_CODE mob_from_eutra_cmd_r9_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(cs_fallback_ind, 1)); HANDLE_CODE(purpose.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_r9_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(cs_fallback_ind, 1)); HANDLE_CODE(purpose.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mob_from_eutra_cmd_r9_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("cs-FallbackIndicator", cs_fallback_ind); j.write_fieldname("purpose"); purpose.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void mob_from_eutra_cmd_r9_ies_s::purpose_c_::destroy_() { switch (type_) { case types::ho: c.destroy(); break; case types::cell_change_order: c.destroy(); break; case types::e_csfb_r9: c.destroy(); break; default: break; } } void mob_from_eutra_cmd_r9_ies_s::purpose_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ho: c.init(); break; case types::cell_change_order: c.init(); break; case types::e_csfb_r9: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r9_ies_s::purpose_c_"); } } mob_from_eutra_cmd_r9_ies_s::purpose_c_::purpose_c_(const mob_from_eutra_cmd_r9_ies_s::purpose_c_& other) { type_ = other.type(); switch (type_) { case types::ho: c.init(other.c.get()); break; case types::cell_change_order: c.init(other.c.get()); break; case types::e_csfb_r9: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r9_ies_s::purpose_c_"); } } mob_from_eutra_cmd_r9_ies_s::purpose_c_& mob_from_eutra_cmd_r9_ies_s::purpose_c_:: operator=(const mob_from_eutra_cmd_r9_ies_s::purpose_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ho: c.set(other.c.get()); break; case types::cell_change_order: c.set(other.c.get()); break; case types::e_csfb_r9: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r9_ies_s::purpose_c_"); } return *this; } void mob_from_eutra_cmd_r9_ies_s::purpose_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ho: j.write_fieldname("handover"); c.get().to_json(j); break; case types::cell_change_order: j.write_fieldname("cellChangeOrder"); c.get().to_json(j); break; case types::e_csfb_r9: j.write_fieldname("e-CSFB-r9"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r9_ies_s::purpose_c_"); } j.end_obj(); } SRSASN_CODE mob_from_eutra_cmd_r9_ies_s::purpose_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ho: HANDLE_CODE(c.get().pack(bref)); break; case types::cell_change_order: HANDLE_CODE(c.get().pack(bref)); break; case types::e_csfb_r9: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r9_ies_s::purpose_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_r9_ies_s::purpose_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ho: HANDLE_CODE(c.get().unpack(bref)); break; case types::cell_change_order: HANDLE_CODE(c.get().unpack(bref)); break; case types::e_csfb_r9: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_r9_ies_s::purpose_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RNReconfiguration-r10-IEs ::= SEQUENCE SRSASN_CODE rn_recfg_r10_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rn_sys_info_r10_present, 1)); HANDLE_CODE(bref.pack(rn_sf_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rn_sys_info_r10_present) { HANDLE_CODE(rn_sys_info_r10.pack(bref)); } if (rn_sf_cfg_r10_present) { HANDLE_CODE(rn_sf_cfg_r10.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rn_recfg_r10_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rn_sys_info_r10_present, 1)); HANDLE_CODE(bref.unpack(rn_sf_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rn_sys_info_r10_present) { HANDLE_CODE(rn_sys_info_r10.unpack(bref)); } if (rn_sf_cfg_r10_present) { HANDLE_CODE(rn_sf_cfg_r10.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rn_recfg_r10_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rn_sys_info_r10_present) { j.write_fieldname("rn-SystemInfo-r10"); rn_sys_info_r10.to_json(j); } if (rn_sf_cfg_r10_present) { j.write_fieldname("rn-SubframeConfig-r10"); rn_sf_cfg_r10.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_cfg_present, 1)); HANDLE_CODE(bref.pack(mob_ctrl_info_present, 1)); HANDLE_CODE(bref.pack(ded_info_nas_list_present, 1)); HANDLE_CODE(bref.pack(rr_cfg_ded_present, 1)); HANDLE_CODE(bref.pack(security_cfg_ho_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (meas_cfg_present) { HANDLE_CODE(meas_cfg.pack(bref)); } if (mob_ctrl_info_present) { HANDLE_CODE(mob_ctrl_info.pack(bref)); } if (ded_info_nas_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ded_info_nas_list, 1, 11)); } if (rr_cfg_ded_present) { HANDLE_CODE(rr_cfg_ded.pack(bref)); } if (security_cfg_ho_present) { HANDLE_CODE(security_cfg_ho.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_cfg_present, 1)); HANDLE_CODE(bref.unpack(mob_ctrl_info_present, 1)); HANDLE_CODE(bref.unpack(ded_info_nas_list_present, 1)); HANDLE_CODE(bref.unpack(rr_cfg_ded_present, 1)); HANDLE_CODE(bref.unpack(security_cfg_ho_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (meas_cfg_present) { HANDLE_CODE(meas_cfg.unpack(bref)); } if (mob_ctrl_info_present) { HANDLE_CODE(mob_ctrl_info.unpack(bref)); } if (ded_info_nas_list_present) { HANDLE_CODE(unpack_dyn_seq_of(ded_info_nas_list, bref, 1, 11)); } if (rr_cfg_ded_present) { HANDLE_CODE(rr_cfg_ded.unpack(bref)); } if (security_cfg_ho_present) { HANDLE_CODE(security_cfg_ho.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); if (meas_cfg_present) { j.write_fieldname("measConfig"); meas_cfg.to_json(j); } if (mob_ctrl_info_present) { j.write_fieldname("mobilityControlInfo"); mob_ctrl_info.to_json(j); } if (ded_info_nas_list_present) { j.start_array("dedicatedInfoNASList"); for (uint32_t i1 = 0; i1 < ded_info_nas_list.size(); ++i1) { j.write_str(ded_info_nas_list[i1].to_string()); } j.end_array(); } if (rr_cfg_ded_present) { j.write_fieldname("radioResourceConfigDedicated"); rr_cfg_ded.to_json(j); } if (security_cfg_ho_present) { j.write_fieldname("securityConfigHO"); security_cfg_ho.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionRelease-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(redirected_carrier_info_present, 1)); HANDLE_CODE(bref.pack(idle_mode_mob_ctrl_info_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_enum(bref, release_cause)); if (redirected_carrier_info_present) { HANDLE_CODE(redirected_carrier_info.pack(bref)); } if (idle_mode_mob_ctrl_info_present) { HANDLE_CODE(idle_mode_mob_ctrl_info.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(redirected_carrier_info_present, 1)); HANDLE_CODE(bref.unpack(idle_mode_mob_ctrl_info_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_enum(release_cause, bref)); if (redirected_carrier_info_present) { HANDLE_CODE(redirected_carrier_info.unpack(bref)); } if (idle_mode_mob_ctrl_info_present) { HANDLE_CODE(idle_mode_mob_ctrl_info.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_release_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("releaseCause", release_cause.to_string()); if (redirected_carrier_info_present) { j.write_fieldname("redirectedCarrierInfo"); redirected_carrier_info.to_json(j); } if (idle_mode_mob_ctrl_info_present) { j.write_fieldname("idleModeMobilityControlInfo"); idle_mode_mob_ctrl_info.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionResume-r13-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_resume_r13_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rr_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.pack(meas_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(ant_info_ded_pcell_r13_present, 1)); HANDLE_CODE(bref.pack(drb_continue_rohc_r13_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(rrc_conn_resume_v1430_ies_present, 1)); if (rr_cfg_ded_r13_present) { HANDLE_CODE(rr_cfg_ded_r13.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, next_hop_chaining_count_r13, (uint8_t)0, (uint8_t)7)); if (meas_cfg_r13_present) { HANDLE_CODE(meas_cfg_r13.pack(bref)); } if (ant_info_ded_pcell_r13_present) { HANDLE_CODE(ant_info_ded_pcell_r13.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (rrc_conn_resume_v1430_ies_present) { HANDLE_CODE(rrc_conn_resume_v1430_ies.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_r13_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rr_cfg_ded_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(ant_info_ded_pcell_r13_present, 1)); HANDLE_CODE(bref.unpack(drb_continue_rohc_r13_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(rrc_conn_resume_v1430_ies_present, 1)); if (rr_cfg_ded_r13_present) { HANDLE_CODE(rr_cfg_ded_r13.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(next_hop_chaining_count_r13, bref, (uint8_t)0, (uint8_t)7)); if (meas_cfg_r13_present) { HANDLE_CODE(meas_cfg_r13.unpack(bref)); } if (ant_info_ded_pcell_r13_present) { HANDLE_CODE(ant_info_ded_pcell_r13.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (rrc_conn_resume_v1430_ies_present) { HANDLE_CODE(rrc_conn_resume_v1430_ies.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_resume_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_ded_r13_present) { j.write_fieldname("radioResourceConfigDedicated-r13"); rr_cfg_ded_r13.to_json(j); } j.write_int("nextHopChainingCount-r13", next_hop_chaining_count_r13); if (meas_cfg_r13_present) { j.write_fieldname("measConfig-r13"); meas_cfg_r13.to_json(j); } if (ant_info_ded_pcell_r13_present) { j.write_fieldname("antennaInfoDedicatedPCell-r13"); ant_info_ded_pcell_r13.to_json(j); } if (drb_continue_rohc_r13_present) { j.write_str("drb-ContinueROHC-r13", "true"); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (rrc_conn_resume_v1430_ies_present) { j.write_fieldname("rrcConnectionResume-v1430-IEs"); rrc_conn_resume_v1430_ies.to_json(j); } j.end_obj(); } // SecurityModeCommand-r8-IEs ::= SEQUENCE SRSASN_CODE security_mode_cmd_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(security_cfg_smc.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_cmd_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(security_cfg_smc.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void security_mode_cmd_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("securityConfigSMC"); security_cfg_smc.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UECapabilityEnquiry-r8-IEs ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, ue_cap_request, 1, 8, EnumPacker())); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(ue_cap_request, bref, 1, 8, EnumPacker())); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_enquiry_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("ue-CapabilityRequest"); for (uint32_t i1 = 0; i1 < ue_cap_request.size(); ++i1) { j.write_str(ue_cap_request[i1].to_string()); } j.end_array(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationRequest-r9-IEs ::= SEQUENCE SRSASN_CODE ue_info_request_r9_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(rach_report_req_r9, 1)); HANDLE_CODE(bref.pack(rlf_report_req_r9, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_r9_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(rach_report_req_r9, 1)); HANDLE_CODE(bref.unpack(rlf_report_req_r9, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_request_r9_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("rach-ReportReq-r9", rach_report_req_r9); j.write_bool("rlf-ReportReq-r9", rlf_report_req_r9); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CSFBParametersResponseCDMA2000 ::= SEQUENCE SRSASN_CODE csfb_params_resp_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE csfb_params_resp_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void csfb_params_resp_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void csfb_params_resp_cdma2000_s::crit_exts_c_::destroy_() { switch (type_) { case types::csfb_params_resp_cdma2000_r8: c.destroy(); break; default: break; } } void csfb_params_resp_cdma2000_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::csfb_params_resp_cdma2000_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); } } csfb_params_resp_cdma2000_s::crit_exts_c_::crit_exts_c_(const csfb_params_resp_cdma2000_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::csfb_params_resp_cdma2000_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); } } csfb_params_resp_cdma2000_s::crit_exts_c_& csfb_params_resp_cdma2000_s::crit_exts_c_:: operator=(const csfb_params_resp_cdma2000_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::csfb_params_resp_cdma2000_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); } return *this; } void csfb_params_resp_cdma2000_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::csfb_params_resp_cdma2000_r8: j.write_fieldname("csfbParametersResponseCDMA2000-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE csfb_params_resp_cdma2000_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::csfb_params_resp_cdma2000_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csfb_params_resp_cdma2000_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::csfb_params_resp_cdma2000_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CounterCheck ::= SEQUENCE SRSASN_CODE counter_check_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE counter_check_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void counter_check_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void counter_check_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void counter_check_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); } } counter_check_s::crit_exts_c_::crit_exts_c_(const counter_check_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); } } counter_check_s::crit_exts_c_& counter_check_s::crit_exts_c_::operator=(const counter_check_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); } return *this; } void counter_check_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE counter_check_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void counter_check_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void counter_check_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::counter_check_r8: j.write_fieldname("counterCheck-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE counter_check_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::counter_check_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::counter_check_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DLInformationTransfer ::= SEQUENCE SRSASN_CODE dl_info_transfer_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE dl_info_transfer_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void dl_info_transfer_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void dl_info_transfer_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void dl_info_transfer_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); } } dl_info_transfer_s::crit_exts_c_::crit_exts_c_(const dl_info_transfer_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); } } dl_info_transfer_s::crit_exts_c_& dl_info_transfer_s::crit_exts_c_:: operator=(const dl_info_transfer_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); } return *this; } void dl_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE dl_info_transfer_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_info_transfer_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void dl_info_transfer_s::crit_exts_c_::c1_c_::destroy_() { switch (type_) { case types::dl_info_transfer_r8: c.destroy(); break; case types::dl_info_transfer_r15: c.destroy(); break; default: break; } } void dl_info_transfer_s::crit_exts_c_::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::dl_info_transfer_r8: c.init(); break; case types::dl_info_transfer_r15: c.init(); break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_::c1_c_"); } } dl_info_transfer_s::crit_exts_c_::c1_c_::c1_c_(const dl_info_transfer_s::crit_exts_c_::c1_c_& other) { type_ = other.type(); switch (type_) { case types::dl_info_transfer_r8: c.init(other.c.get()); break; case types::dl_info_transfer_r15: c.init(other.c.get()); break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_::c1_c_"); } } dl_info_transfer_s::crit_exts_c_::c1_c_& dl_info_transfer_s::crit_exts_c_::c1_c_:: operator=(const dl_info_transfer_s::crit_exts_c_::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::dl_info_transfer_r8: c.set(other.c.get()); break; case types::dl_info_transfer_r15: c.set(other.c.get()); break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_::c1_c_"); } return *this; } void dl_info_transfer_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::dl_info_transfer_r8: j.write_fieldname("dlInformationTransfer-r8"); c.get().to_json(j); break; case types::dl_info_transfer_r15: j.write_fieldname("dlInformationTransfer-r15"); c.get().to_json(j); break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE dl_info_transfer_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::dl_info_transfer_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::dl_info_transfer_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_info_transfer_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::dl_info_transfer_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::dl_info_transfer_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // HandoverFromEUTRAPreparationRequest ::= SEQUENCE SRSASN_CODE ho_from_eutra_prep_request_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ho_from_eutra_prep_request_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ho_from_eutra_prep_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ho_from_eutra_prep_request_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ho_from_eutra_prep_request_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); } } ho_from_eutra_prep_request_s::crit_exts_c_::crit_exts_c_(const ho_from_eutra_prep_request_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); } } ho_from_eutra_prep_request_s::crit_exts_c_& ho_from_eutra_prep_request_s::crit_exts_c_:: operator=(const ho_from_eutra_prep_request_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); } return *this; } void ho_from_eutra_prep_request_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ho_from_eutra_prep_request_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ho_from_eutra_prep_request_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ho_from_eutra_prep_request_r8: j.write_fieldname("handoverFromEUTRAPreparationRequest-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ho_from_eutra_prep_request_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ho_from_eutra_prep_request_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // LoggedMeasurementConfiguration-r10 ::= SEQUENCE SRSASN_CODE logged_meas_cfg_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE logged_meas_cfg_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void logged_meas_cfg_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void logged_meas_cfg_r10_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void logged_meas_cfg_r10_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); } } logged_meas_cfg_r10_s::crit_exts_c_::crit_exts_c_(const logged_meas_cfg_r10_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); } } logged_meas_cfg_r10_s::crit_exts_c_& logged_meas_cfg_r10_s::crit_exts_c_:: operator=(const logged_meas_cfg_r10_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); } return *this; } void logged_meas_cfg_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE logged_meas_cfg_r10_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE logged_meas_cfg_r10_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::logged_meas_cfg_r10: j.write_fieldname("loggedMeasurementConfiguration-r10"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::logged_meas_cfg_r10: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::logged_meas_cfg_r10: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MobilityFromEUTRACommand ::= SEQUENCE SRSASN_CODE mob_from_eutra_cmd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void mob_from_eutra_cmd_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void mob_from_eutra_cmd_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void mob_from_eutra_cmd_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); } } mob_from_eutra_cmd_s::crit_exts_c_::crit_exts_c_(const mob_from_eutra_cmd_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); } } mob_from_eutra_cmd_s::crit_exts_c_& mob_from_eutra_cmd_s::crit_exts_c_:: operator=(const mob_from_eutra_cmd_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); } return *this; } void mob_from_eutra_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE mob_from_eutra_cmd_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::destroy_() { switch (type_) { case types::mob_from_eutra_cmd_r8: c.destroy(); break; case types::mob_from_eutra_cmd_r9: c.destroy(); break; default: break; } } void mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::mob_from_eutra_cmd_r8: c.init(); break; case types::mob_from_eutra_cmd_r9: c.init(); break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_::c1_c_"); } } mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::c1_c_(const mob_from_eutra_cmd_s::crit_exts_c_::c1_c_& other) { type_ = other.type(); switch (type_) { case types::mob_from_eutra_cmd_r8: c.init(other.c.get()); break; case types::mob_from_eutra_cmd_r9: c.init(other.c.get()); break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_::c1_c_"); } } mob_from_eutra_cmd_s::crit_exts_c_::c1_c_& mob_from_eutra_cmd_s::crit_exts_c_::c1_c_:: operator=(const mob_from_eutra_cmd_s::crit_exts_c_::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::mob_from_eutra_cmd_r8: c.set(other.c.get()); break; case types::mob_from_eutra_cmd_r9: c.set(other.c.get()); break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_::c1_c_"); } return *this; } void mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::mob_from_eutra_cmd_r8: j.write_fieldname("mobilityFromEUTRACommand-r8"); c.get().to_json(j); break; case types::mob_from_eutra_cmd_r9: j.write_fieldname("mobilityFromEUTRACommand-r9"); c.get().to_json(j); break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::mob_from_eutra_cmd_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::mob_from_eutra_cmd_r9: HANDLE_CODE(c.get().pack(bref)); break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::mob_from_eutra_cmd_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::mob_from_eutra_cmd_r9: HANDLE_CODE(c.get().unpack(bref)); break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RNReconfiguration-r10 ::= SEQUENCE SRSASN_CODE rn_recfg_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rn_recfg_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rn_recfg_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rn_recfg_r10_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rn_recfg_r10_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); } } rn_recfg_r10_s::crit_exts_c_::crit_exts_c_(const rn_recfg_r10_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); } } rn_recfg_r10_s::crit_exts_c_& rn_recfg_r10_s::crit_exts_c_::operator=(const rn_recfg_r10_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); } return *this; } void rn_recfg_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rn_recfg_r10_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_recfg_r10_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rn_recfg_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rn_recfg_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rn_recfg_r10: j.write_fieldname("rnReconfiguration-r10"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rn_recfg_r10_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rn_recfg_r10: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_recfg_r10_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rn_recfg_r10: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReconfiguration ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_recfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_recfg_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rrc_conn_recfg_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); } } rrc_conn_recfg_s::crit_exts_c_::crit_exts_c_(const rrc_conn_recfg_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); } } rrc_conn_recfg_s::crit_exts_c_& rrc_conn_recfg_s::crit_exts_c_::operator=(const rrc_conn_recfg_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); } return *this; } void rrc_conn_recfg_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_recfg_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rrc_conn_recfg_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_recfg_r8: j.write_fieldname("rrcConnectionReconfiguration-r8"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_recfg_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_recfg_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_recfg_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionRelease ::= SEQUENCE SRSASN_CODE rrc_conn_release_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_release_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_release_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rrc_conn_release_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); } } rrc_conn_release_s::crit_exts_c_::crit_exts_c_(const rrc_conn_release_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); } } rrc_conn_release_s::crit_exts_c_& rrc_conn_release_s::crit_exts_c_:: operator=(const rrc_conn_release_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); } return *this; } void rrc_conn_release_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_release_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rrc_conn_release_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rrc_conn_release_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_release_r8: j.write_fieldname("rrcConnectionRelease-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_release_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_release_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_release_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_release_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionResume-r13 ::= SEQUENCE SRSASN_CODE rrc_conn_resume_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_resume_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_resume_r13_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rrc_conn_resume_r13_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); } } rrc_conn_resume_r13_s::crit_exts_c_::crit_exts_c_(const rrc_conn_resume_r13_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); } } rrc_conn_resume_r13_s::crit_exts_c_& rrc_conn_resume_r13_s::crit_exts_c_:: operator=(const rrc_conn_resume_r13_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); } return *this; } void rrc_conn_resume_r13_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_resume_r13_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_r13_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_resume_r13: j.write_fieldname("rrcConnectionResume-r13"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_resume_r13: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_resume_r13: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SecurityModeCommand ::= SEQUENCE SRSASN_CODE security_mode_cmd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE security_mode_cmd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void security_mode_cmd_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void security_mode_cmd_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void security_mode_cmd_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); } } security_mode_cmd_s::crit_exts_c_::crit_exts_c_(const security_mode_cmd_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); } } security_mode_cmd_s::crit_exts_c_& security_mode_cmd_s::crit_exts_c_:: operator=(const security_mode_cmd_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); } return *this; } void security_mode_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE security_mode_cmd_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_cmd_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void security_mode_cmd_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void security_mode_cmd_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::security_mode_cmd_r8: j.write_fieldname("securityModeCommand-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE security_mode_cmd_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::security_mode_cmd_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_cmd_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::security_mode_cmd_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UECapabilityEnquiry ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ue_cap_enquiry_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ue_cap_enquiry_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ue_cap_enquiry_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); } } ue_cap_enquiry_s::crit_exts_c_::crit_exts_c_(const ue_cap_enquiry_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); } } ue_cap_enquiry_s::crit_exts_c_& ue_cap_enquiry_s::crit_exts_c_::operator=(const ue_cap_enquiry_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); } return *this; } void ue_cap_enquiry_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ue_cap_enquiry_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ue_cap_enquiry_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_cap_enquiry_r8: j.write_fieldname("ueCapabilityEnquiry-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_cap_enquiry_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_cap_enquiry_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UEInformationRequest-r9 ::= SEQUENCE SRSASN_CODE ue_info_request_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ue_info_request_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ue_info_request_r9_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ue_info_request_r9_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); } } ue_info_request_r9_s::crit_exts_c_::crit_exts_c_(const ue_info_request_r9_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); } } ue_info_request_r9_s::crit_exts_c_& ue_info_request_r9_s::crit_exts_c_:: operator=(const ue_info_request_r9_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); } return *this; } void ue_info_request_r9_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ue_info_request_r9_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_r9_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ue_info_request_r9_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ue_info_request_r9_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_info_request_r9: j.write_fieldname("ueInformationRequest-r9"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ue_info_request_r9_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_info_request_r9: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_request_r9_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_info_request_r9: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DL-DCCH-MessageType ::= CHOICE void dl_dcch_msg_type_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void dl_dcch_msg_type_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); } } dl_dcch_msg_type_c::dl_dcch_msg_type_c(const dl_dcch_msg_type_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); } } dl_dcch_msg_type_c& dl_dcch_msg_type_c::operator=(const dl_dcch_msg_type_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); } return *this; } void dl_dcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); } j.end_obj(); } SRSASN_CODE dl_dcch_msg_type_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_dcch_msg_type_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void dl_dcch_msg_type_c::c1_c_::destroy_() { switch (type_) { case types::csfb_params_resp_cdma2000: c.destroy(); break; case types::dl_info_transfer: c.destroy(); break; case types::ho_from_eutra_prep_request: c.destroy(); break; case types::mob_from_eutra_cmd: c.destroy(); break; case types::rrc_conn_recfg: c.destroy(); break; case types::rrc_conn_release: c.destroy(); break; case types::security_mode_cmd: c.destroy(); break; case types::ue_cap_enquiry: c.destroy(); break; case types::counter_check: c.destroy(); break; case types::ue_info_request_r9: c.destroy(); break; case types::logged_meas_cfg_r10: c.destroy(); break; case types::rn_recfg_r10: c.destroy(); break; case types::rrc_conn_resume_r13: c.destroy(); break; default: break; } } void dl_dcch_msg_type_c::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::csfb_params_resp_cdma2000: c.init(); break; case types::dl_info_transfer: c.init(); break; case types::ho_from_eutra_prep_request: c.init(); break; case types::mob_from_eutra_cmd: c.init(); break; case types::rrc_conn_recfg: c.init(); break; case types::rrc_conn_release: c.init(); break; case types::security_mode_cmd: c.init(); break; case types::ue_cap_enquiry: c.init(); break; case types::counter_check: c.init(); break; case types::ue_info_request_r9: c.init(); break; case types::logged_meas_cfg_r10: c.init(); break; case types::rn_recfg_r10: c.init(); break; case types::rrc_conn_resume_r13: c.init(); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c::c1_c_"); } } dl_dcch_msg_type_c::c1_c_::c1_c_(const dl_dcch_msg_type_c::c1_c_& other) { type_ = other.type(); switch (type_) { case types::csfb_params_resp_cdma2000: c.init(other.c.get()); break; case types::dl_info_transfer: c.init(other.c.get()); break; case types::ho_from_eutra_prep_request: c.init(other.c.get()); break; case types::mob_from_eutra_cmd: c.init(other.c.get()); break; case types::rrc_conn_recfg: c.init(other.c.get()); break; case types::rrc_conn_release: c.init(other.c.get()); break; case types::security_mode_cmd: c.init(other.c.get()); break; case types::ue_cap_enquiry: c.init(other.c.get()); break; case types::counter_check: c.init(other.c.get()); break; case types::ue_info_request_r9: c.init(other.c.get()); break; case types::logged_meas_cfg_r10: c.init(other.c.get()); break; case types::rn_recfg_r10: c.init(other.c.get()); break; case types::rrc_conn_resume_r13: c.init(other.c.get()); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c::c1_c_"); } } dl_dcch_msg_type_c::c1_c_& dl_dcch_msg_type_c::c1_c_::operator=(const dl_dcch_msg_type_c::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::csfb_params_resp_cdma2000: c.set(other.c.get()); break; case types::dl_info_transfer: c.set(other.c.get()); break; case types::ho_from_eutra_prep_request: c.set(other.c.get()); break; case types::mob_from_eutra_cmd: c.set(other.c.get()); break; case types::rrc_conn_recfg: c.set(other.c.get()); break; case types::rrc_conn_release: c.set(other.c.get()); break; case types::security_mode_cmd: c.set(other.c.get()); break; case types::ue_cap_enquiry: c.set(other.c.get()); break; case types::counter_check: c.set(other.c.get()); break; case types::ue_info_request_r9: c.set(other.c.get()); break; case types::logged_meas_cfg_r10: c.set(other.c.get()); break; case types::rn_recfg_r10: c.set(other.c.get()); break; case types::rrc_conn_resume_r13: c.set(other.c.get()); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c::c1_c_"); } return *this; } void dl_dcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::csfb_params_resp_cdma2000: j.write_fieldname("csfbParametersResponseCDMA2000"); c.get().to_json(j); break; case types::dl_info_transfer: j.write_fieldname("dlInformationTransfer"); c.get().to_json(j); break; case types::ho_from_eutra_prep_request: j.write_fieldname("handoverFromEUTRAPreparationRequest"); c.get().to_json(j); break; case types::mob_from_eutra_cmd: j.write_fieldname("mobilityFromEUTRACommand"); c.get().to_json(j); break; case types::rrc_conn_recfg: j.write_fieldname("rrcConnectionReconfiguration"); c.get().to_json(j); break; case types::rrc_conn_release: j.write_fieldname("rrcConnectionRelease"); c.get().to_json(j); break; case types::security_mode_cmd: j.write_fieldname("securityModeCommand"); c.get().to_json(j); break; case types::ue_cap_enquiry: j.write_fieldname("ueCapabilityEnquiry"); c.get().to_json(j); break; case types::counter_check: j.write_fieldname("counterCheck"); c.get().to_json(j); break; case types::ue_info_request_r9: j.write_fieldname("ueInformationRequest-r9"); c.get().to_json(j); break; case types::logged_meas_cfg_r10: j.write_fieldname("loggedMeasurementConfiguration-r10"); c.get().to_json(j); break; case types::rn_recfg_r10: j.write_fieldname("rnReconfiguration-r10"); c.get().to_json(j); break; case types::rrc_conn_resume_r13: j.write_fieldname("rrcConnectionResume-r13"); c.get().to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c::c1_c_"); } j.end_obj(); } SRSASN_CODE dl_dcch_msg_type_c::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::csfb_params_resp_cdma2000: HANDLE_CODE(c.get().pack(bref)); break; case types::dl_info_transfer: HANDLE_CODE(c.get().pack(bref)); break; case types::ho_from_eutra_prep_request: HANDLE_CODE(c.get().pack(bref)); break; case types::mob_from_eutra_cmd: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_recfg: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_release: HANDLE_CODE(c.get().pack(bref)); break; case types::security_mode_cmd: HANDLE_CODE(c.get().pack(bref)); break; case types::ue_cap_enquiry: HANDLE_CODE(c.get().pack(bref)); break; case types::counter_check: HANDLE_CODE(c.get().pack(bref)); break; case types::ue_info_request_r9: HANDLE_CODE(c.get().pack(bref)); break; case types::logged_meas_cfg_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::rn_recfg_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_resume_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE dl_dcch_msg_type_c::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::csfb_params_resp_cdma2000: HANDLE_CODE(c.get().unpack(bref)); break; case types::dl_info_transfer: HANDLE_CODE(c.get().unpack(bref)); break; case types::ho_from_eutra_prep_request: HANDLE_CODE(c.get().unpack(bref)); break; case types::mob_from_eutra_cmd: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_recfg: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_release: HANDLE_CODE(c.get().unpack(bref)); break; case types::security_mode_cmd: HANDLE_CODE(c.get().unpack(bref)); break; case types::ue_cap_enquiry: HANDLE_CODE(c.get().unpack(bref)); break; case types::counter_check: HANDLE_CODE(c.get().unpack(bref)); break; case types::ue_info_request_r9: HANDLE_CODE(c.get().unpack(bref)); break; case types::logged_meas_cfg_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::rn_recfg_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_resume_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DL-DCCH-Message ::= SEQUENCE SRSASN_CODE dl_dcch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE dl_dcch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void dl_dcch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("DL-DCCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // TMGI-r9 ::= SEQUENCE SRSASN_CODE tmgi_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(plmn_id_r9.pack(bref)); HANDLE_CODE(service_id_r9.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE tmgi_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(plmn_id_r9.unpack(bref)); HANDLE_CODE(service_id_r9.unpack(bref)); return SRSASN_SUCCESS; } void tmgi_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("plmn-Id-r9"); plmn_id_r9.to_json(j); j.write_str("serviceId-r9", service_id_r9.to_string()); j.end_obj(); } void tmgi_r9_s::plmn_id_r9_c_::destroy_() { switch (type_) { case types::explicit_value_r9: c.destroy(); break; default: break; } } void tmgi_r9_s::plmn_id_r9_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::plmn_idx_r9: break; case types::explicit_value_r9: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "tmgi_r9_s::plmn_id_r9_c_"); } } tmgi_r9_s::plmn_id_r9_c_::plmn_id_r9_c_(const tmgi_r9_s::plmn_id_r9_c_& other) { type_ = other.type(); switch (type_) { case types::plmn_idx_r9: c.init(other.c.get()); break; case types::explicit_value_r9: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "tmgi_r9_s::plmn_id_r9_c_"); } } tmgi_r9_s::plmn_id_r9_c_& tmgi_r9_s::plmn_id_r9_c_::operator=(const tmgi_r9_s::plmn_id_r9_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::plmn_idx_r9: c.set(other.c.get()); break; case types::explicit_value_r9: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "tmgi_r9_s::plmn_id_r9_c_"); } return *this; } void tmgi_r9_s::plmn_id_r9_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::plmn_idx_r9: j.write_int("plmn-Index-r9", c.get()); break; case types::explicit_value_r9: j.write_fieldname("explicitValue-r9"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "tmgi_r9_s::plmn_id_r9_c_"); } j.end_obj(); } SRSASN_CODE tmgi_r9_s::plmn_id_r9_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::plmn_idx_r9: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)1, (uint8_t)6)); break; case types::explicit_value_r9: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "tmgi_r9_s::plmn_id_r9_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE tmgi_r9_s::plmn_id_r9_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::plmn_idx_r9: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)1, (uint8_t)6)); break; case types::explicit_value_r9: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "tmgi_r9_s::plmn_id_r9_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MBMS-SessionInfo-r9 ::= SEQUENCE SRSASN_CODE mbms_session_info_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(session_id_r9_present, 1)); HANDLE_CODE(tmgi_r9.pack(bref)); if (session_id_r9_present) { HANDLE_CODE(session_id_r9.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, lc_ch_id_r9, (uint8_t)0, (uint8_t)28)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_session_info_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(session_id_r9_present, 1)); HANDLE_CODE(tmgi_r9.unpack(bref)); if (session_id_r9_present) { HANDLE_CODE(session_id_r9.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(lc_ch_id_r9, bref, (uint8_t)0, (uint8_t)28)); return SRSASN_SUCCESS; } void mbms_session_info_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("tmgi-r9"); tmgi_r9.to_json(j); if (session_id_r9_present) { j.write_str("sessionId-r9", session_id_r9.to_string()); } j.write_int("logicalChannelIdentity-r9", lc_ch_id_r9); j.end_obj(); } // PMCH-Config-r12 ::= SEQUENCE SRSASN_CODE pmch_cfg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, sf_alloc_end_r12, (uint16_t)0, (uint16_t)1535)); HANDLE_CODE(data_mcs_r12.pack(bref)); HANDLE_CODE(pack_enum(bref, mch_sched_period_r12)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= mch_sched_period_v1430_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(mch_sched_period_v1430_present, 1)); if (mch_sched_period_v1430_present) { HANDLE_CODE(pack_enum(bref, mch_sched_period_v1430)); } } } return SRSASN_SUCCESS; } SRSASN_CODE pmch_cfg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(sf_alloc_end_r12, bref, (uint16_t)0, (uint16_t)1535)); HANDLE_CODE(data_mcs_r12.unpack(bref)); HANDLE_CODE(unpack_enum(mch_sched_period_r12, bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(mch_sched_period_v1430_present, 1)); if (mch_sched_period_v1430_present) { HANDLE_CODE(unpack_enum(mch_sched_period_v1430, bref)); } } } return SRSASN_SUCCESS; } void pmch_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sf-AllocEnd-r12", sf_alloc_end_r12); j.write_fieldname("dataMCS-r12"); data_mcs_r12.to_json(j); j.write_str("mch-SchedulingPeriod-r12", mch_sched_period_r12.to_string()); if (ext) { if (mch_sched_period_v1430_present) { j.write_str("mch-SchedulingPeriod-v1430", mch_sched_period_v1430.to_string()); } } j.end_obj(); } void pmch_cfg_r12_s::data_mcs_r12_c_::destroy_() {} void pmch_cfg_r12_s::data_mcs_r12_c_::set(types::options e) { destroy_(); type_ = e; } pmch_cfg_r12_s::data_mcs_r12_c_::data_mcs_r12_c_(const pmch_cfg_r12_s::data_mcs_r12_c_& other) { type_ = other.type(); switch (type_) { case types::normal_r12: c.init(other.c.get()); break; case types::higer_order_r12: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pmch_cfg_r12_s::data_mcs_r12_c_"); } } pmch_cfg_r12_s::data_mcs_r12_c_& pmch_cfg_r12_s::data_mcs_r12_c_:: operator=(const pmch_cfg_r12_s::data_mcs_r12_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::normal_r12: c.set(other.c.get()); break; case types::higer_order_r12: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pmch_cfg_r12_s::data_mcs_r12_c_"); } return *this; } void pmch_cfg_r12_s::data_mcs_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::normal_r12: j.write_int("normal-r12", c.get()); break; case types::higer_order_r12: j.write_int("higerOrder-r12", c.get()); break; default: log_invalid_choice_id(type_, "pmch_cfg_r12_s::data_mcs_r12_c_"); } j.end_obj(); } SRSASN_CODE pmch_cfg_r12_s::data_mcs_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::normal_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)28)); break; case types::higer_order_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)27)); break; default: log_invalid_choice_id(type_, "pmch_cfg_r12_s::data_mcs_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pmch_cfg_r12_s::data_mcs_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::normal_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)28)); break; case types::higer_order_r12: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)27)); break; default: log_invalid_choice_id(type_, "pmch_cfg_r12_s::data_mcs_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PMCH-InfoExt-r12 ::= SEQUENCE SRSASN_CODE pmch_info_ext_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pmch_cfg_r12.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, mbms_session_info_list_r12, 0, 29)); return SRSASN_SUCCESS; } SRSASN_CODE pmch_info_ext_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(pmch_cfg_r12.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(mbms_session_info_list_r12, bref, 0, 29)); return SRSASN_SUCCESS; } void pmch_info_ext_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("pmch-Config-r12"); pmch_cfg_r12.to_json(j); j.start_array("mbms-SessionInfoList-r12"); for (uint32_t i1 = 0; i1 < mbms_session_info_list_r12.size(); ++i1) { mbms_session_info_list_r12[i1].to_json(j); } j.end_array(); j.end_obj(); } // MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE SRSASN_CODE mbsfn_area_cfg_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, common_sf_alloc_r14, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_area_cfg_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(common_sf_alloc_r14, bref, 1, 8)); return SRSASN_SUCCESS; } void mbsfn_area_cfg_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("commonSF-Alloc-r14"); for (uint32_t i1 = 0; i1 < common_sf_alloc_r14.size(); ++i1) { common_sf_alloc_r14[i1].to_json(j); } j.end_array(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // PMCH-Config-r9 ::= SEQUENCE SRSASN_CODE pmch_cfg_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, sf_alloc_end_r9, (uint16_t)0, (uint16_t)1535)); HANDLE_CODE(pack_unalign_integer(bref, data_mcs_r9, (uint8_t)0, (uint8_t)28)); HANDLE_CODE(pack_enum(bref, mch_sched_period_r9)); return SRSASN_SUCCESS; } SRSASN_CODE pmch_cfg_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(sf_alloc_end_r9, bref, (uint16_t)0, (uint16_t)1535)); HANDLE_CODE(unpack_unalign_integer(data_mcs_r9, bref, (uint8_t)0, (uint8_t)28)); HANDLE_CODE(unpack_enum(mch_sched_period_r9, bref)); return SRSASN_SUCCESS; } void pmch_cfg_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sf-AllocEnd-r9", sf_alloc_end_r9); j.write_int("dataMCS-r9", data_mcs_r9); j.write_str("mch-SchedulingPeriod-r9", mch_sched_period_r9.to_string()); j.end_obj(); } // CountingRequestInfo-r10 ::= SEQUENCE SRSASN_CODE count_request_info_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(tmgi_r10.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE count_request_info_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(tmgi_r10.unpack(bref)); return SRSASN_SUCCESS; } void count_request_info_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("tmgi-r10"); tmgi_r10.to_json(j); j.end_obj(); } // MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE SRSASN_CODE mbsfn_area_cfg_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pmch_info_list_ext_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (pmch_info_list_ext_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, pmch_info_list_ext_r12, 0, 15)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_area_cfg_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pmch_info_list_ext_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (pmch_info_list_ext_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(pmch_info_list_ext_r12, bref, 0, 15)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mbsfn_area_cfg_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (pmch_info_list_ext_r12_present) { j.start_array("pmch-InfoListExt-r12"); for (uint32_t i1 = 0; i1 < pmch_info_list_ext_r12.size(); ++i1) { pmch_info_list_ext_r12[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // PMCH-Info-r9 ::= SEQUENCE SRSASN_CODE pmch_info_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pmch_cfg_r9.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, mbms_session_info_list_r9, 0, 29)); return SRSASN_SUCCESS; } SRSASN_CODE pmch_info_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(pmch_cfg_r9.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(mbms_session_info_list_r9, bref, 0, 29)); return SRSASN_SUCCESS; } void pmch_info_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("pmch-Config-r9"); pmch_cfg_r9.to_json(j); j.start_array("mbms-SessionInfoList-r9"); for (uint32_t i1 = 0; i1 < mbms_session_info_list_r9.size(); ++i1) { mbms_session_info_list_r9[i1].to_json(j); } j.end_array(); j.end_obj(); } // MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE SRSASN_CODE mbsfn_area_cfg_v930_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_area_cfg_v930_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mbsfn_area_cfg_v930_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MBMSCountingRequest-r10 ::= SEQUENCE SRSASN_CODE mbms_count_request_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, count_request_list_r10, 1, 16)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mbms_count_request_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(count_request_list_r10, bref, 1, 16)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mbms_count_request_r10_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("countingRequestList-r10"); for (uint32_t i1 = 0; i1 < count_request_list_r10.size(); ++i1) { count_request_list_r10[i1].to_json(j); } j.end_array(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // MBSFNAreaConfiguration-r9 ::= SEQUENCE SRSASN_CODE mbsfn_area_cfg_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, common_sf_alloc_r9, 1, 8)); HANDLE_CODE(pack_enum(bref, common_sf_alloc_period_r9)); HANDLE_CODE(pack_dyn_seq_of(bref, pmch_info_list_r9, 0, 15)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mbsfn_area_cfg_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(common_sf_alloc_r9, bref, 1, 8)); HANDLE_CODE(unpack_enum(common_sf_alloc_period_r9, bref)); HANDLE_CODE(unpack_dyn_seq_of(pmch_info_list_r9, bref, 0, 15)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mbsfn_area_cfg_r9_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("commonSF-Alloc-r9"); for (uint32_t i1 = 0; i1 < common_sf_alloc_r9.size(); ++i1) { common_sf_alloc_r9[i1].to_json(j); } j.end_array(); j.write_str("commonSF-AllocPeriod-r9", common_sf_alloc_period_r9.to_string()); j.start_array("pmch-InfoList-r9"); for (uint32_t i1 = 0; i1 < pmch_info_list_r9.size(); ++i1) { pmch_info_list_r9[i1].to_json(j); } j.end_array(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MCCH-MessageType ::= CHOICE void mcch_msg_type_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; case types::later: c.destroy(); break; default: break; } } void mcch_msg_type_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::later: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c"); } } mcch_msg_type_c::mcch_msg_type_c(const mcch_msg_type_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::later: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c"); } } mcch_msg_type_c& mcch_msg_type_c::operator=(const mcch_msg_type_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::later: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c"); } return *this; } void mcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::later: j.write_fieldname("later"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "mcch_msg_type_c"); } j.end_obj(); } SRSASN_CODE mcch_msg_type_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::later: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "mcch_msg_type_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mcch_msg_type_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::later: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "mcch_msg_type_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("mbsfnAreaConfiguration-r9"); c.to_json(j); j.end_obj(); } SRSASN_CODE mcch_msg_type_c::c1_c_::pack(bit_ref& bref) const { HANDLE_CODE(c.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mcch_msg_type_c::c1_c_::unpack(bit_ref& bref) { HANDLE_CODE(c.unpack(bref)); return SRSASN_SUCCESS; } void mcch_msg_type_c::later_c_::destroy_() { switch (type_) { case types::c2: c.destroy(); break; default: break; } } void mcch_msg_type_c::later_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c2: c.init(); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); } } mcch_msg_type_c::later_c_::later_c_(const mcch_msg_type_c::later_c_& other) { type_ = other.type(); switch (type_) { case types::c2: c.init(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); } } mcch_msg_type_c::later_c_& mcch_msg_type_c::later_c_::operator=(const mcch_msg_type_c::later_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c2: c.set(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); } return *this; } void mcch_msg_type_c::later_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c2: j.write_fieldname("c2"); c.get().to_json(j); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); } j.end_obj(); } SRSASN_CODE mcch_msg_type_c::later_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c2: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mcch_msg_type_c::later_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c2: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mcch_msg_type_c::later_c_::c2_c_::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("mbmsCountingRequest-r10"); c.to_json(j); j.end_obj(); } SRSASN_CODE mcch_msg_type_c::later_c_::c2_c_::pack(bit_ref& bref) const { HANDLE_CODE(c.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mcch_msg_type_c::later_c_::c2_c_::unpack(bit_ref& bref) { HANDLE_CODE(c.unpack(bref)); return SRSASN_SUCCESS; } // MCCH-Message ::= SEQUENCE SRSASN_CODE mcch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE mcch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void mcch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("MCCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // Paging-v1530-IEs ::= SEQUENCE SRSASN_CODE paging_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(access_type_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE paging_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(access_type_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } void paging_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (access_type_present) { j.write_str("accessType", "non3GPP"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // Paging-v1310-IEs ::= SEQUENCE SRSASN_CODE paging_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(redist_ind_r13_present, 1)); HANDLE_CODE(bref.pack(sys_info_mod_e_drx_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE paging_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(redist_ind_r13_present, 1)); HANDLE_CODE(bref.unpack(sys_info_mod_e_drx_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void paging_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (redist_ind_r13_present) { j.write_str("redistributionIndication-r13", "true"); } if (sys_info_mod_e_drx_r13_present) { j.write_str("systemInfoModification-eDRX-r13", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // S-TMSI ::= SEQUENCE SRSASN_CODE s_tmsi_s::pack(bit_ref& bref) const { HANDLE_CODE(mmec.pack(bref)); HANDLE_CODE(m_tmsi.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE s_tmsi_s::unpack(bit_ref& bref) { HANDLE_CODE(mmec.unpack(bref)); HANDLE_CODE(m_tmsi.unpack(bref)); return SRSASN_SUCCESS; } void s_tmsi_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("mmec", mmec.to_string()); j.write_str("m-TMSI", m_tmsi.to_string()); j.end_obj(); } // Paging-v1130-IEs ::= SEQUENCE SRSASN_CODE paging_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(eab_param_mod_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE paging_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(eab_param_mod_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void paging_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (eab_param_mod_r11_present) { j.write_str("eab-ParamModification-r11", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // PagingUE-Identity ::= CHOICE void paging_ue_id_c::destroy_() { switch (type_) { case types::s_tmsi: c.destroy(); break; case types::imsi: c.destroy(); break; case types::ng_minus5_g_s_tmsi_r15: c.destroy >(); break; case types::i_rnti_r15: c.destroy >(); break; default: break; } } void paging_ue_id_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::s_tmsi: c.init(); break; case types::imsi: c.init(); break; case types::ng_minus5_g_s_tmsi_r15: c.init >(); break; case types::i_rnti_r15: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "paging_ue_id_c"); } } paging_ue_id_c::paging_ue_id_c(const paging_ue_id_c& other) { type_ = other.type(); switch (type_) { case types::s_tmsi: c.init(other.c.get()); break; case types::imsi: c.init(other.c.get()); break; case types::ng_minus5_g_s_tmsi_r15: c.init(other.c.get >()); break; case types::i_rnti_r15: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "paging_ue_id_c"); } } paging_ue_id_c& paging_ue_id_c::operator=(const paging_ue_id_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::s_tmsi: c.set(other.c.get()); break; case types::imsi: c.set(other.c.get()); break; case types::ng_minus5_g_s_tmsi_r15: c.set(other.c.get >()); break; case types::i_rnti_r15: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "paging_ue_id_c"); } return *this; } void paging_ue_id_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::s_tmsi: j.write_fieldname("s-TMSI"); c.get().to_json(j); break; case types::imsi: j.start_array("imsi"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { j.write_int(c.get()[i1]); } j.end_array(); break; case types::ng_minus5_g_s_tmsi_r15: j.write_str("ng-5G-S-TMSI-r15", c.get >().to_string()); break; case types::i_rnti_r15: j.write_str("i-RNTI-r15", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "paging_ue_id_c"); } j.end_obj(); } SRSASN_CODE paging_ue_id_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::s_tmsi: HANDLE_CODE(c.get().pack(bref)); break; case types::imsi: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 6, 21, UnalignedIntegerPacker(0, 9))); break; case types::ng_minus5_g_s_tmsi_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get >().pack(bref)); } break; case types::i_rnti_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get >().pack(bref)); } break; default: log_invalid_choice_id(type_, "paging_ue_id_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE paging_ue_id_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::s_tmsi: HANDLE_CODE(c.get().unpack(bref)); break; case types::imsi: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 6, 21, UnalignedIntegerPacker(0, 9))); break; case types::ng_minus5_g_s_tmsi_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get >().unpack(bref)); } break; case types::i_rnti_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get >().unpack(bref)); } break; default: log_invalid_choice_id(type_, "paging_ue_id_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // Paging-v920-IEs ::= SEQUENCE SRSASN_CODE paging_v920_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cmas_ind_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE paging_v920_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cmas_ind_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void paging_v920_ies_s::to_json(json_writer& j) const { j.start_obj(); if (cmas_ind_r9_present) { j.write_str("cmas-Indication-r9", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // PagingRecord ::= SEQUENCE SRSASN_CODE paging_record_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(ue_id.pack(bref)); HANDLE_CODE(pack_enum(bref, cn_domain)); return SRSASN_SUCCESS; } SRSASN_CODE paging_record_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(ue_id.unpack(bref)); HANDLE_CODE(unpack_enum(cn_domain, bref)); return SRSASN_SUCCESS; } void paging_record_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ue-Identity"); ue_id.to_json(j); j.write_str("cn-Domain", cn_domain.to_string()); j.end_obj(); } // Paging-v890-IEs ::= SEQUENCE SRSASN_CODE paging_v890_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE paging_v890_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void paging_v890_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // Paging ::= SEQUENCE SRSASN_CODE paging_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(paging_record_list_present, 1)); HANDLE_CODE(bref.pack(sys_info_mod_present, 1)); HANDLE_CODE(bref.pack(etws_ind_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (paging_record_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, paging_record_list, 1, 16)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE paging_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(paging_record_list_present, 1)); HANDLE_CODE(bref.unpack(sys_info_mod_present, 1)); HANDLE_CODE(bref.unpack(etws_ind_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (paging_record_list_present) { HANDLE_CODE(unpack_dyn_seq_of(paging_record_list, bref, 1, 16)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void paging_s::to_json(json_writer& j) const { j.start_obj(); if (paging_record_list_present) { j.start_array("pagingRecordList"); for (uint32_t i1 = 0; i1 < paging_record_list.size(); ++i1) { paging_record_list[i1].to_json(j); } j.end_array(); } if (sys_info_mod_present) { j.write_str("systemInfoModification", "true"); } if (etws_ind_present) { j.write_str("etws-Indication", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // PCCH-MessageType ::= CHOICE void pcch_msg_type_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void pcch_msg_type_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pcch_msg_type_c"); } } pcch_msg_type_c::pcch_msg_type_c(const pcch_msg_type_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pcch_msg_type_c"); } } pcch_msg_type_c& pcch_msg_type_c::operator=(const pcch_msg_type_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "pcch_msg_type_c"); } return *this; } void pcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "pcch_msg_type_c"); } j.end_obj(); } SRSASN_CODE pcch_msg_type_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "pcch_msg_type_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE pcch_msg_type_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: break; default: log_invalid_choice_id(type_, "pcch_msg_type_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void pcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("paging"); c.to_json(j); j.end_obj(); } SRSASN_CODE pcch_msg_type_c::c1_c_::pack(bit_ref& bref) const { HANDLE_CODE(c.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE pcch_msg_type_c::c1_c_::unpack(bit_ref& bref) { HANDLE_CODE(c.unpack(bref)); return SRSASN_SUCCESS; } // PCCH-Message ::= SEQUENCE SRSASN_CODE pcch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE pcch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void pcch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("PCCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // MBMSSessionInfo-r13 ::= SEQUENCE SRSASN_CODE mbms_session_info_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(session_id_r13_present, 1)); HANDLE_CODE(tmgi_r13.pack(bref)); if (session_id_r13_present) { HANDLE_CODE(session_id_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mbms_session_info_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(session_id_r13_present, 1)); HANDLE_CODE(tmgi_r13.unpack(bref)); if (session_id_r13_present) { HANDLE_CODE(session_id_r13.unpack(bref)); } return SRSASN_SUCCESS; } void mbms_session_info_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("tmgi-r13"); tmgi_r13.to_json(j); if (session_id_r13_present) { j.write_str("sessionId-r13", session_id_r13.to_string()); } j.end_obj(); } // SC-MTCH-SchedulingInfo-BR-r14 ::= SEQUENCE SRSASN_CODE sc_mtch_sched_info_br_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, on_dur_timer_scptm_r14)); HANDLE_CODE(pack_enum(bref, drx_inactivity_timer_scptm_r14)); HANDLE_CODE(sched_period_start_offset_scptm_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sc_mtch_sched_info_br_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(on_dur_timer_scptm_r14, bref)); HANDLE_CODE(unpack_enum(drx_inactivity_timer_scptm_r14, bref)); HANDLE_CODE(sched_period_start_offset_scptm_r14.unpack(bref)); return SRSASN_SUCCESS; } void sc_mtch_sched_info_br_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("onDurationTimerSCPTM-r14", on_dur_timer_scptm_r14.to_string()); j.write_str("drx-InactivityTimerSCPTM-r14", drx_inactivity_timer_scptm_r14.to_string()); j.write_fieldname("schedulingPeriodStartOffsetSCPTM-r14"); sched_period_start_offset_scptm_r14.to_json(j); j.end_obj(); } void sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::destroy_() {} void sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set(types::options e) { destroy_(); type_ = e; } sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::sched_period_start_offset_scptm_r14_c_( const sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_& other) { type_ = other.type(); switch (type_) { case types::sf10: c.init(other.c.get()); break; case types::sf20: c.init(other.c.get()); break; case types::sf32: c.init(other.c.get()); break; case types::sf40: c.init(other.c.get()); break; case types::sf64: c.init(other.c.get()); break; case types::sf80: c.init(other.c.get()); break; case types::sf128: c.init(other.c.get()); break; case types::sf160: c.init(other.c.get()); break; case types::sf256: c.init(other.c.get()); break; case types::sf320: c.init(other.c.get()); break; case types::sf512: c.init(other.c.get()); break; case types::sf640: c.init(other.c.get()); break; case types::sf1024: c.init(other.c.get()); break; case types::sf2048: c.init(other.c.get()); break; case types::sf4096: c.init(other.c.get()); break; case types::sf8192: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_"); } } sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_:: operator=(const sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf10: c.set(other.c.get()); break; case types::sf20: c.set(other.c.get()); break; case types::sf32: c.set(other.c.get()); break; case types::sf40: c.set(other.c.get()); break; case types::sf64: c.set(other.c.get()); break; case types::sf80: c.set(other.c.get()); break; case types::sf128: c.set(other.c.get()); break; case types::sf160: c.set(other.c.get()); break; case types::sf256: c.set(other.c.get()); break; case types::sf320: c.set(other.c.get()); break; case types::sf512: c.set(other.c.get()); break; case types::sf640: c.set(other.c.get()); break; case types::sf1024: c.set(other.c.get()); break; case types::sf2048: c.set(other.c.get()); break; case types::sf4096: c.set(other.c.get()); break; case types::sf8192: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_"); } return *this; } void sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf10: j.write_int("sf10", c.get()); break; case types::sf20: j.write_int("sf20", c.get()); break; case types::sf32: j.write_int("sf32", c.get()); break; case types::sf40: j.write_int("sf40", c.get()); break; case types::sf64: j.write_int("sf64", c.get()); break; case types::sf80: j.write_int("sf80", c.get()); break; case types::sf128: j.write_int("sf128", c.get()); break; case types::sf160: j.write_int("sf160", c.get()); break; case types::sf256: j.write_int("sf256", c.get()); break; case types::sf320: j.write_int("sf320", c.get()); break; case types::sf512: j.write_int("sf512", c.get()); break; case types::sf640: j.write_int("sf640", c.get()); break; case types::sf1024: j.write_int("sf1024", c.get()); break; case types::sf2048: j.write_int("sf2048", c.get()); break; case types::sf4096: j.write_int("sf4096", c.get()); break; case types::sf8192: j.write_int("sf8192", c.get()); break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_"); } j.end_obj(); } SRSASN_CODE sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf10: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)9)); break; case types::sf20: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)19)); break; case types::sf32: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)31)); break; case types::sf40: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); break; case types::sf64: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)63)); break; case types::sf80: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::sf128: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; case types::sf160: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; case types::sf256: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)255)); break; case types::sf320: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::sf512: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::sf640: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::sf1024: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1023)); break; case types::sf2048: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)2047)); break; case types::sf4096: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)4095)); break; case types::sf8192: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)8191)); break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf10: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)9)); break; case types::sf20: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)19)); break; case types::sf32: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)31)); break; case types::sf40: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); break; case types::sf64: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)63)); break; case types::sf80: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::sf128: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; case types::sf160: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; case types::sf256: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)255)); break; case types::sf320: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::sf512: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::sf640: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::sf1024: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1023)); break; case types::sf2048: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)2047)); break; case types::sf4096: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)4095)); break; case types::sf8192: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)8191)); break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SC-MTCH-SchedulingInfo-r13 ::= SEQUENCE SRSASN_CODE sc_mtch_sched_info_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, on_dur_timer_scptm_r13)); HANDLE_CODE(pack_enum(bref, drx_inactivity_timer_scptm_r13)); HANDLE_CODE(sched_period_start_offset_scptm_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sc_mtch_sched_info_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(on_dur_timer_scptm_r13, bref)); HANDLE_CODE(unpack_enum(drx_inactivity_timer_scptm_r13, bref)); HANDLE_CODE(sched_period_start_offset_scptm_r13.unpack(bref)); return SRSASN_SUCCESS; } void sc_mtch_sched_info_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("onDurationTimerSCPTM-r13", on_dur_timer_scptm_r13.to_string()); j.write_str("drx-InactivityTimerSCPTM-r13", drx_inactivity_timer_scptm_r13.to_string()); j.write_fieldname("schedulingPeriodStartOffsetSCPTM-r13"); sched_period_start_offset_scptm_r13.to_json(j); j.end_obj(); } void sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::destroy_() {} void sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set(types::options e) { destroy_(); type_ = e; } sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::sched_period_start_offset_scptm_r13_c_( const sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_& other) { type_ = other.type(); switch (type_) { case types::sf10: c.init(other.c.get()); break; case types::sf20: c.init(other.c.get()); break; case types::sf32: c.init(other.c.get()); break; case types::sf40: c.init(other.c.get()); break; case types::sf64: c.init(other.c.get()); break; case types::sf80: c.init(other.c.get()); break; case types::sf128: c.init(other.c.get()); break; case types::sf160: c.init(other.c.get()); break; case types::sf256: c.init(other.c.get()); break; case types::sf320: c.init(other.c.get()); break; case types::sf512: c.init(other.c.get()); break; case types::sf640: c.init(other.c.get()); break; case types::sf1024: c.init(other.c.get()); break; case types::sf2048: c.init(other.c.get()); break; case types::sf4096: c.init(other.c.get()); break; case types::sf8192: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_"); } } sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_:: operator=(const sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf10: c.set(other.c.get()); break; case types::sf20: c.set(other.c.get()); break; case types::sf32: c.set(other.c.get()); break; case types::sf40: c.set(other.c.get()); break; case types::sf64: c.set(other.c.get()); break; case types::sf80: c.set(other.c.get()); break; case types::sf128: c.set(other.c.get()); break; case types::sf160: c.set(other.c.get()); break; case types::sf256: c.set(other.c.get()); break; case types::sf320: c.set(other.c.get()); break; case types::sf512: c.set(other.c.get()); break; case types::sf640: c.set(other.c.get()); break; case types::sf1024: c.set(other.c.get()); break; case types::sf2048: c.set(other.c.get()); break; case types::sf4096: c.set(other.c.get()); break; case types::sf8192: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_"); } return *this; } void sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf10: j.write_int("sf10", c.get()); break; case types::sf20: j.write_int("sf20", c.get()); break; case types::sf32: j.write_int("sf32", c.get()); break; case types::sf40: j.write_int("sf40", c.get()); break; case types::sf64: j.write_int("sf64", c.get()); break; case types::sf80: j.write_int("sf80", c.get()); break; case types::sf128: j.write_int("sf128", c.get()); break; case types::sf160: j.write_int("sf160", c.get()); break; case types::sf256: j.write_int("sf256", c.get()); break; case types::sf320: j.write_int("sf320", c.get()); break; case types::sf512: j.write_int("sf512", c.get()); break; case types::sf640: j.write_int("sf640", c.get()); break; case types::sf1024: j.write_int("sf1024", c.get()); break; case types::sf2048: j.write_int("sf2048", c.get()); break; case types::sf4096: j.write_int("sf4096", c.get()); break; case types::sf8192: j.write_int("sf8192", c.get()); break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_"); } j.end_obj(); } SRSASN_CODE sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf10: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)9)); break; case types::sf20: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)19)); break; case types::sf32: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)31)); break; case types::sf40: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)39)); break; case types::sf64: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)63)); break; case types::sf80: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::sf128: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; case types::sf160: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; case types::sf256: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)255)); break; case types::sf320: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::sf512: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::sf640: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::sf1024: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1023)); break; case types::sf2048: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)2048)); break; case types::sf4096: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)4096)); break; case types::sf8192: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)8192)); break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf10: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)9)); break; case types::sf20: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)19)); break; case types::sf32: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)31)); break; case types::sf40: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)39)); break; case types::sf64: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)63)); break; case types::sf80: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::sf128: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; case types::sf160: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; case types::sf256: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)255)); break; case types::sf320: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::sf512: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::sf640: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::sf1024: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1023)); break; case types::sf2048: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)2048)); break; case types::sf4096: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)4096)); break; case types::sf8192: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)8192)); break; default: log_invalid_choice_id(type_, "sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // PCI-ARFCN-r13 ::= SEQUENCE SRSASN_CODE pci_arfcn_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci_r13, (uint16_t)0, (uint16_t)503)); if (carrier_freq_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r13, (uint32_t)0, (uint32_t)262143)); } return SRSASN_SUCCESS; } SRSASN_CODE pci_arfcn_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci_r13, bref, (uint16_t)0, (uint16_t)503)); if (carrier_freq_r13_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_r13, bref, (uint32_t)0, (uint32_t)262143)); } return SRSASN_SUCCESS; } void pci_arfcn_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r13", pci_r13); if (carrier_freq_r13_present) { j.write_int("carrierFreq-r13", carrier_freq_r13); } j.end_obj(); } // SC-MTCH-Info-BR-r14 ::= SEQUENCE SRSASN_CODE sc_mtch_info_br_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sc_mtch_sched_info_r14_present, 1)); HANDLE_CODE(bref.pack(sc_mtch_neighbour_cell_r14_present, 1)); HANDLE_CODE(bref.pack(p_a_r14_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, sc_mtch_carrier_freq_r14, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(mbms_session_info_r14.pack(bref)); HANDLE_CODE(g_rnti_r14.pack(bref)); if (sc_mtch_sched_info_r14_present) { HANDLE_CODE(sc_mtch_sched_info_r14.pack(bref)); } if (sc_mtch_neighbour_cell_r14_present) { HANDLE_CODE(sc_mtch_neighbour_cell_r14.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, mpdcch_nb_sc_mtch_r14, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(pack_enum(bref, mpdcch_num_repeat_sc_mtch_r14)); HANDLE_CODE(mpdcch_start_sf_sc_mtch_r14.pack(bref)); HANDLE_CODE(pack_enum(bref, mpdcch_pdsch_hop_cfg_sc_mtch_r14)); HANDLE_CODE(pack_enum(bref, mpdcch_pdsch_cemode_cfg_sc_mtch_r14)); HANDLE_CODE(pack_enum(bref, mpdcch_pdsch_max_bw_sc_mtch_r14)); HANDLE_CODE(pack_enum(bref, mpdcch_offset_sc_mtch_r14)); if (p_a_r14_present) { HANDLE_CODE(pack_enum(bref, p_a_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE sc_mtch_info_br_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sc_mtch_sched_info_r14_present, 1)); HANDLE_CODE(bref.unpack(sc_mtch_neighbour_cell_r14_present, 1)); HANDLE_CODE(bref.unpack(p_a_r14_present, 1)); HANDLE_CODE(unpack_unalign_integer(sc_mtch_carrier_freq_r14, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(mbms_session_info_r14.unpack(bref)); HANDLE_CODE(g_rnti_r14.unpack(bref)); if (sc_mtch_sched_info_r14_present) { HANDLE_CODE(sc_mtch_sched_info_r14.unpack(bref)); } if (sc_mtch_neighbour_cell_r14_present) { HANDLE_CODE(sc_mtch_neighbour_cell_r14.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(mpdcch_nb_sc_mtch_r14, bref, (uint8_t)1, (uint8_t)16)); HANDLE_CODE(unpack_enum(mpdcch_num_repeat_sc_mtch_r14, bref)); HANDLE_CODE(mpdcch_start_sf_sc_mtch_r14.unpack(bref)); HANDLE_CODE(unpack_enum(mpdcch_pdsch_hop_cfg_sc_mtch_r14, bref)); HANDLE_CODE(unpack_enum(mpdcch_pdsch_cemode_cfg_sc_mtch_r14, bref)); HANDLE_CODE(unpack_enum(mpdcch_pdsch_max_bw_sc_mtch_r14, bref)); HANDLE_CODE(unpack_enum(mpdcch_offset_sc_mtch_r14, bref)); if (p_a_r14_present) { HANDLE_CODE(unpack_enum(p_a_r14, bref)); } return SRSASN_SUCCESS; } void sc_mtch_info_br_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sc-mtch-CarrierFreq-r14", sc_mtch_carrier_freq_r14); j.write_fieldname("mbmsSessionInfo-r14"); mbms_session_info_r14.to_json(j); j.write_str("g-RNTI-r14", g_rnti_r14.to_string()); if (sc_mtch_sched_info_r14_present) { j.write_fieldname("sc-mtch-schedulingInfo-r14"); sc_mtch_sched_info_r14.to_json(j); } if (sc_mtch_neighbour_cell_r14_present) { j.write_str("sc-mtch-neighbourCell-r14", sc_mtch_neighbour_cell_r14.to_string()); } j.write_int("mpdcch-Narrowband-SC-MTCH-r14", mpdcch_nb_sc_mtch_r14); j.write_str("mpdcch-NumRepetition-SC-MTCH-r14", mpdcch_num_repeat_sc_mtch_r14.to_string()); j.write_fieldname("mpdcch-StartSF-SC-MTCH-r14"); mpdcch_start_sf_sc_mtch_r14.to_json(j); j.write_str("mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14", mpdcch_pdsch_hop_cfg_sc_mtch_r14.to_string()); j.write_str("mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14", mpdcch_pdsch_cemode_cfg_sc_mtch_r14.to_string()); j.write_str("mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14", mpdcch_pdsch_max_bw_sc_mtch_r14.to_string()); j.write_str("mpdcch-Offset-SC-MTCH-r14", mpdcch_offset_sc_mtch_r14.to_string()); if (p_a_r14_present) { j.write_str("p-a-r14", p_a_r14.to_string()); } j.end_obj(); } void sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::destroy_() {} void sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::set(types::options e) { destroy_(); type_ = e; } sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::mpdcch_start_sf_sc_mtch_r14_c_( const sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_& other) { type_ = other.type(); switch (type_) { case types::fdd_r14: c.init(other.c.get()); break; case types::tdd_r14: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_"); } } sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_& sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_:: operator=(const sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd_r14: c.set(other.c.get()); break; case types::tdd_r14: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_"); } return *this; } void sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd_r14: j.write_str("fdd-r14", c.get().to_string()); break; case types::tdd_r14: j.write_str("tdd-r14", c.get().to_string()); break; default: log_invalid_choice_id(type_, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_"); } j.end_obj(); } SRSASN_CODE sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd_r14: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::tdd_r14: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd_r14: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::tdd_r14: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SC-MTCH-Info-r13 ::= SEQUENCE SRSASN_CODE sc_mtch_info_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sc_mtch_sched_info_r13_present, 1)); HANDLE_CODE(bref.pack(sc_mtch_neighbour_cell_r13_present, 1)); HANDLE_CODE(mbms_session_info_r13.pack(bref)); HANDLE_CODE(g_rnti_r13.pack(bref)); if (sc_mtch_sched_info_r13_present) { HANDLE_CODE(sc_mtch_sched_info_r13.pack(bref)); } if (sc_mtch_neighbour_cell_r13_present) { HANDLE_CODE(sc_mtch_neighbour_cell_r13.pack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= p_a_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(p_a_r13_present, 1)); if (p_a_r13_present) { HANDLE_CODE(pack_enum(bref, p_a_r13)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sc_mtch_info_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sc_mtch_sched_info_r13_present, 1)); HANDLE_CODE(bref.unpack(sc_mtch_neighbour_cell_r13_present, 1)); HANDLE_CODE(mbms_session_info_r13.unpack(bref)); HANDLE_CODE(g_rnti_r13.unpack(bref)); if (sc_mtch_sched_info_r13_present) { HANDLE_CODE(sc_mtch_sched_info_r13.unpack(bref)); } if (sc_mtch_neighbour_cell_r13_present) { HANDLE_CODE(sc_mtch_neighbour_cell_r13.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(p_a_r13_present, 1)); if (p_a_r13_present) { HANDLE_CODE(unpack_enum(p_a_r13, bref)); } } } return SRSASN_SUCCESS; } void sc_mtch_info_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("mbmsSessionInfo-r13"); mbms_session_info_r13.to_json(j); j.write_str("g-RNTI-r13", g_rnti_r13.to_string()); if (sc_mtch_sched_info_r13_present) { j.write_fieldname("sc-mtch-schedulingInfo-r13"); sc_mtch_sched_info_r13.to_json(j); } if (sc_mtch_neighbour_cell_r13_present) { j.write_str("sc-mtch-neighbourCell-r13", sc_mtch_neighbour_cell_r13.to_string()); } if (ext) { if (p_a_r13_present) { j.write_str("p-a-r13", p_a_r13.to_string()); } } j.end_obj(); } // SCPTMConfiguration-v1340 ::= SEQUENCE SRSASN_CODE scptm_cfg_v1340_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(p_b_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (p_b_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, p_b_r13, (uint8_t)0, (uint8_t)3)); } return SRSASN_SUCCESS; } SRSASN_CODE scptm_cfg_v1340_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(p_b_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (p_b_r13_present) { HANDLE_CODE(unpack_unalign_integer(p_b_r13, bref, (uint8_t)0, (uint8_t)3)); } return SRSASN_SUCCESS; } void scptm_cfg_v1340_s::to_json(json_writer& j) const { j.start_obj(); if (p_b_r13_present) { j.write_int("p-b-r13", p_b_r13); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SCPTMConfiguration-BR-r14 ::= SEQUENCE SRSASN_CODE scptm_cfg_br_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(scptm_neighbour_cell_list_r14_present, 1)); HANDLE_CODE(bref.pack(p_b_r14_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, sc_mtch_info_list_r14, 0, 128)); if (scptm_neighbour_cell_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, scptm_neighbour_cell_list_r14, 1, 8)); } if (p_b_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, p_b_r14, (uint8_t)0, (uint8_t)3)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scptm_cfg_br_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(scptm_neighbour_cell_list_r14_present, 1)); HANDLE_CODE(bref.unpack(p_b_r14_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(sc_mtch_info_list_r14, bref, 0, 128)); if (scptm_neighbour_cell_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(scptm_neighbour_cell_list_r14, bref, 1, 8)); } if (p_b_r14_present) { HANDLE_CODE(unpack_unalign_integer(p_b_r14, bref, (uint8_t)0, (uint8_t)3)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void scptm_cfg_br_r14_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("sc-mtch-InfoList-r14"); for (uint32_t i1 = 0; i1 < sc_mtch_info_list_r14.size(); ++i1) { sc_mtch_info_list_r14[i1].to_json(j); } j.end_array(); if (scptm_neighbour_cell_list_r14_present) { j.start_array("scptm-NeighbourCellList-r14"); for (uint32_t i1 = 0; i1 < scptm_neighbour_cell_list_r14.size(); ++i1) { scptm_neighbour_cell_list_r14[i1].to_json(j); } j.end_array(); } if (p_b_r14_present) { j.write_int("p-b-r14", p_b_r14); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SCPTMConfiguration-r13 ::= SEQUENCE SRSASN_CODE scptm_cfg_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(scptm_neighbour_cell_list_r13_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, sc_mtch_info_list_r13, 0, 1023)); if (scptm_neighbour_cell_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, scptm_neighbour_cell_list_r13, 1, 8)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scptm_cfg_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(scptm_neighbour_cell_list_r13_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(sc_mtch_info_list_r13, bref, 0, 1023)); if (scptm_neighbour_cell_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(scptm_neighbour_cell_list_r13, bref, 1, 8)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void scptm_cfg_r13_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("sc-mtch-InfoList-r13"); for (uint32_t i1 = 0; i1 < sc_mtch_info_list_r13.size(); ++i1) { sc_mtch_info_list_r13[i1].to_json(j); } j.end_array(); if (scptm_neighbour_cell_list_r13_present) { j.start_array("scptm-NeighbourCellList-r13"); for (uint32_t i1 = 0; i1 < scptm_neighbour_cell_list_r13.size(); ++i1) { scptm_neighbour_cell_list_r13[i1].to_json(j); } j.end_array(); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SC-MCCH-MessageType-r13 ::= CHOICE void sc_mcch_msg_type_r13_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; case types::msg_class_ext: c.destroy(); break; default: break; } } void sc_mcch_msg_type_r13_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c"); } } sc_mcch_msg_type_r13_c::sc_mcch_msg_type_r13_c(const sc_mcch_msg_type_r13_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c"); } } sc_mcch_msg_type_r13_c& sc_mcch_msg_type_r13_c::operator=(const sc_mcch_msg_type_r13_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c"); } return *this; } void sc_mcch_msg_type_r13_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: j.write_fieldname("messageClassExtension"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c"); } j.end_obj(); } SRSASN_CODE sc_mcch_msg_type_r13_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sc_mcch_msg_type_r13_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sc_mcch_msg_type_r13_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("scptmConfiguration-r13"); c.to_json(j); j.end_obj(); } SRSASN_CODE sc_mcch_msg_type_r13_c::c1_c_::pack(bit_ref& bref) const { HANDLE_CODE(c.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sc_mcch_msg_type_r13_c::c1_c_::unpack(bit_ref& bref) { HANDLE_CODE(c.unpack(bref)); return SRSASN_SUCCESS; } void sc_mcch_msg_type_r13_c::msg_class_ext_c_::destroy_() { switch (type_) { case types::c2: c.destroy(); break; default: break; } } void sc_mcch_msg_type_r13_c::msg_class_ext_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c2: c.init(); break; case types::msg_class_ext_future_r14: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); } } sc_mcch_msg_type_r13_c::msg_class_ext_c_::msg_class_ext_c_(const sc_mcch_msg_type_r13_c::msg_class_ext_c_& other) { type_ = other.type(); switch (type_) { case types::c2: c.init(other.c.get()); break; case types::msg_class_ext_future_r14: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); } } sc_mcch_msg_type_r13_c::msg_class_ext_c_& sc_mcch_msg_type_r13_c::msg_class_ext_c_:: operator=(const sc_mcch_msg_type_r13_c::msg_class_ext_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c2: c.set(other.c.get()); break; case types::msg_class_ext_future_r14: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); } return *this; } void sc_mcch_msg_type_r13_c::msg_class_ext_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c2: j.write_fieldname("c2"); c.get().to_json(j); break; case types::msg_class_ext_future_r14: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); } j.end_obj(); } SRSASN_CODE sc_mcch_msg_type_r13_c::msg_class_ext_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c2: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext_future_r14: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sc_mcch_msg_type_r13_c::msg_class_ext_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c2: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext_future_r14: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::set(types::options e) { type_ = e; } void sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::scptm_cfg_br_r14: j.write_fieldname("scptmConfiguration-BR-r14"); c.to_json(j); break; case types::spare: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_"); } j.end_obj(); } SRSASN_CODE sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::scptm_cfg_br_r14: HANDLE_CODE(c.pack(bref)); break; case types::spare: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::scptm_cfg_br_r14: HANDLE_CODE(c.unpack(bref)); break; case types::spare: break; default: log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SC-MCCH-Message-r13 ::= SEQUENCE SRSASN_CODE sc_mcch_msg_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE sc_mcch_msg_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void sc_mcch_msg_r13_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("SC-MCCH-Message-r13"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // InitialUE-Identity ::= CHOICE void init_ue_id_c::destroy_() { switch (type_) { case types::s_tmsi: c.destroy(); break; case types::random_value: c.destroy >(); break; default: break; } } void init_ue_id_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::s_tmsi: c.init(); break; case types::random_value: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "init_ue_id_c"); } } init_ue_id_c::init_ue_id_c(const init_ue_id_c& other) { type_ = other.type(); switch (type_) { case types::s_tmsi: c.init(other.c.get()); break; case types::random_value: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "init_ue_id_c"); } } init_ue_id_c& init_ue_id_c::operator=(const init_ue_id_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::s_tmsi: c.set(other.c.get()); break; case types::random_value: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "init_ue_id_c"); } return *this; } void init_ue_id_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::s_tmsi: j.write_fieldname("s-TMSI"); c.get().to_json(j); break; case types::random_value: j.write_str("randomValue", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "init_ue_id_c"); } j.end_obj(); } SRSASN_CODE init_ue_id_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::s_tmsi: HANDLE_CODE(c.get().pack(bref)); break; case types::random_value: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "init_ue_id_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE init_ue_id_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::s_tmsi: HANDLE_CODE(c.get().unpack(bref)); break; case types::random_value: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "init_ue_id_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ReestabUE-Identity ::= SEQUENCE SRSASN_CODE reestab_ue_id_s::pack(bit_ref& bref) const { HANDLE_CODE(c_rnti.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(short_mac_i.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE reestab_ue_id_s::unpack(bit_ref& bref) { HANDLE_CODE(c_rnti.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(short_mac_i.unpack(bref)); return SRSASN_SUCCESS; } void reestab_ue_id_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("c-RNTI", c_rnti.to_string()); j.write_int("physCellId", pci); j.write_str("shortMAC-I", short_mac_i.to_string()); j.end_obj(); } // RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_request_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(ue_id.pack(bref)); HANDLE_CODE(pack_enum(bref, reest_cause)); HANDLE_CODE(spare.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_request_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(ue_id.unpack(bref)); HANDLE_CODE(unpack_enum(reest_cause, bref)); HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_reest_request_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ue-Identity"); ue_id.to_json(j); j.write_str("reestablishmentCause", reest_cause.to_string()); j.write_str("spare", spare.to_string()); j.end_obj(); } // RRCConnectionRequest-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_request_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(ue_id.pack(bref)); HANDLE_CODE(pack_enum(bref, establishment_cause)); HANDLE_CODE(spare.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_request_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(ue_id.unpack(bref)); HANDLE_CODE(unpack_enum(establishment_cause, bref)); HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_request_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ue-Identity"); ue_id.to_json(j); j.write_str("establishmentCause", establishment_cause.to_string()); j.write_str("spare", spare.to_string()); j.end_obj(); } // RRCConnectionResumeRequest-5GC-r15-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_resume_request_minus5_gc_r15_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(resume_id_r15.pack(bref)); HANDLE_CODE(short_resume_mac_i_r15.pack(bref)); HANDLE_CODE(pack_enum(bref, resume_cause_r15)); HANDLE_CODE(spare.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_request_minus5_gc_r15_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(resume_id_r15.unpack(bref)); HANDLE_CODE(short_resume_mac_i_r15.unpack(bref)); HANDLE_CODE(unpack_enum(resume_cause_r15, bref)); HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_resume_request_minus5_gc_r15_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("resumeIdentity-r15"); resume_id_r15.to_json(j); j.write_str("shortResumeMAC-I-r15", short_resume_mac_i_r15.to_string()); j.write_str("resumeCause-r15", resume_cause_r15.to_string()); j.write_str("spare", spare.to_string()); j.end_obj(); } void rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::destroy_() { switch (type_) { case types::full_i_rnti_r15: c.destroy >(); break; case types::short_i_rnti_r15: c.destroy >(); break; default: break; } } void rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::full_i_rnti_r15: c.init >(); break; case types::short_i_rnti_r15: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_"); } } rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::resume_id_r15_c_( const rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_& other) { type_ = other.type(); switch (type_) { case types::full_i_rnti_r15: c.init(other.c.get >()); break; case types::short_i_rnti_r15: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_"); } } rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_& rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_:: operator=(const rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::full_i_rnti_r15: c.set(other.c.get >()); break; case types::short_i_rnti_r15: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_"); } return *this; } void rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::full_i_rnti_r15: j.write_str("fullI-RNTI-r15", c.get >().to_string()); break; case types::short_i_rnti_r15: j.write_str("shortI-RNTI-r15", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::full_i_rnti_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::short_i_rnti_r15: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::full_i_rnti_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::short_i_rnti_r15: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_resume_request_r13_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(resume_id_r13.pack(bref)); HANDLE_CODE(short_resume_mac_i_r13.pack(bref)); HANDLE_CODE(pack_enum(bref, resume_cause_r13)); HANDLE_CODE(spare.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_request_r13_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(resume_id_r13.unpack(bref)); HANDLE_CODE(short_resume_mac_i_r13.unpack(bref)); HANDLE_CODE(unpack_enum(resume_cause_r13, bref)); HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_resume_request_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("resumeIdentity-r13"); resume_id_r13.to_json(j); j.write_str("shortResumeMAC-I-r13", short_resume_mac_i_r13.to_string()); j.write_str("resumeCause-r13", resume_cause_r13.to_string()); j.write_str("spare", spare.to_string()); j.end_obj(); } void rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::destroy_() { switch (type_) { case types::resume_id_r13: c.destroy >(); break; case types::truncated_resume_id_r13: c.destroy >(); break; default: break; } } void rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::resume_id_r13: c.init >(); break; case types::truncated_resume_id_r13: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_"); } } rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::resume_id_r13_c_( const rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_& other) { type_ = other.type(); switch (type_) { case types::resume_id_r13: c.init(other.c.get >()); break; case types::truncated_resume_id_r13: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_"); } } rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_& rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_:: operator=(const rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::resume_id_r13: c.set(other.c.get >()); break; case types::truncated_resume_id_r13: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_"); } return *this; } void rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::resume_id_r13: j.write_str("resumeID-r13", c.get >().to_string()); break; case types::truncated_resume_id_r13: j.write_str("truncatedResumeID-r13", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::resume_id_r13: HANDLE_CODE(c.get >().pack(bref)); break; case types::truncated_resume_id_r13: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::resume_id_r13: HANDLE_CODE(c.get >().unpack(bref)); break; case types::truncated_resume_id_r13: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCEarlyDataRequest-r15-IEs ::= SEQUENCE SRSASN_CODE rrc_early_data_request_r15_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(s_tmsi_r15.pack(bref)); HANDLE_CODE(pack_enum(bref, establishment_cause_r15)); HANDLE_CODE(ded_info_nas_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_early_data_request_r15_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(s_tmsi_r15.unpack(bref)); HANDLE_CODE(unpack_enum(establishment_cause_r15, bref)); HANDLE_CODE(ded_info_nas_r15.unpack(bref)); return SRSASN_SUCCESS; } void rrc_early_data_request_r15_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("s-TMSI-r15"); s_tmsi_r15.to_json(j); j.write_str("establishmentCause-r15", establishment_cause_r15.to_string()); j.write_str("dedicatedInfoNAS-r15", ded_info_nas_r15.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReestablishmentRequest ::= SEQUENCE SRSASN_CODE rrc_conn_reest_request_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_request_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_reest_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_reest_request_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_conn_reest_request_r8: c.destroy(); break; default: break; } } void rrc_conn_reest_request_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_reest_request_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); } } rrc_conn_reest_request_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_request_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_reest_request_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); } } rrc_conn_reest_request_s::crit_exts_c_& rrc_conn_reest_request_s::crit_exts_c_:: operator=(const rrc_conn_reest_request_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_reest_request_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); } return *this; } void rrc_conn_reest_request_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_reest_request_r8: j.write_fieldname("rrcConnectionReestablishmentRequest-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_reest_request_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_reest_request_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_request_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_reest_request_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionRequest ::= SEQUENCE SRSASN_CODE rrc_conn_request_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_request_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_request_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_conn_request_r8: c.destroy(); break; default: break; } } void rrc_conn_request_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_request_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_request_s::crit_exts_c_"); } } rrc_conn_request_s::crit_exts_c_::crit_exts_c_(const rrc_conn_request_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_request_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_request_s::crit_exts_c_"); } } rrc_conn_request_s::crit_exts_c_& rrc_conn_request_s::crit_exts_c_:: operator=(const rrc_conn_request_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_request_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_request_s::crit_exts_c_"); } return *this; } void rrc_conn_request_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_request_r8: j.write_fieldname("rrcConnectionRequest-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_request_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_request_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_request_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_request_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_request_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_request_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_request_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionResumeRequest-r13 ::= SEQUENCE SRSASN_CODE rrc_conn_resume_request_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_request_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_resume_request_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_resume_request_r13_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_conn_resume_request_r13: c.destroy(); break; case types::rrc_conn_resume_request_r15: c.destroy(); break; default: break; } } void rrc_conn_resume_request_r13_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_resume_request_r13: c.init(); break; case types::rrc_conn_resume_request_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_s::crit_exts_c_"); } } rrc_conn_resume_request_r13_s::crit_exts_c_::crit_exts_c_(const rrc_conn_resume_request_r13_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_resume_request_r13: c.init(other.c.get()); break; case types::rrc_conn_resume_request_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_s::crit_exts_c_"); } } rrc_conn_resume_request_r13_s::crit_exts_c_& rrc_conn_resume_request_r13_s::crit_exts_c_:: operator=(const rrc_conn_resume_request_r13_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_resume_request_r13: c.set(other.c.get()); break; case types::rrc_conn_resume_request_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_s::crit_exts_c_"); } return *this; } void rrc_conn_resume_request_r13_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_resume_request_r13: j.write_fieldname("rrcConnectionResumeRequest-r13"); c.get().to_json(j); break; case types::rrc_conn_resume_request_r15: j.write_fieldname("rrcConnectionResumeRequest-r15"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_resume_request_r13_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_resume_request_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_resume_request_r15: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_request_r13_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_resume_request_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_resume_request_r15: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "rrc_conn_resume_request_r13_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCEarlyDataRequest-r15 ::= SEQUENCE SRSASN_CODE rrc_early_data_request_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_early_data_request_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_early_data_request_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_early_data_request_r15_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_early_data_request_r15: c.destroy(); break; default: break; } } void rrc_early_data_request_r15_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_early_data_request_r15: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); } } rrc_early_data_request_r15_s::crit_exts_c_::crit_exts_c_(const rrc_early_data_request_r15_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_early_data_request_r15: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); } } rrc_early_data_request_r15_s::crit_exts_c_& rrc_early_data_request_r15_s::crit_exts_c_:: operator=(const rrc_early_data_request_r15_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_early_data_request_r15: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); } return *this; } void rrc_early_data_request_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_early_data_request_r15: j.write_fieldname("rrcEarlyDataRequest-r15"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_early_data_request_r15_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_early_data_request_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_early_data_request_r15_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_early_data_request_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UL-CCCH-MessageType ::= CHOICE void ul_ccch_msg_type_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; case types::msg_class_ext: c.destroy(); break; default: break; } } void ul_ccch_msg_type_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); } } ul_ccch_msg_type_c::ul_ccch_msg_type_c(const ul_ccch_msg_type_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); } } ul_ccch_msg_type_c& ul_ccch_msg_type_c::operator=(const ul_ccch_msg_type_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); } return *this; } void ul_ccch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: j.write_fieldname("messageClassExtension"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); } j.end_obj(); } SRSASN_CODE ul_ccch_msg_type_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_ccch_msg_type_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_ccch_msg_type_c::c1_c_::destroy_() { switch (type_) { case types::rrc_conn_reest_request: c.destroy(); break; case types::rrc_conn_request: c.destroy(); break; default: break; } } void ul_ccch_msg_type_c::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_reest_request: c.init(); break; case types::rrc_conn_request: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::c1_c_"); } } ul_ccch_msg_type_c::c1_c_::c1_c_(const ul_ccch_msg_type_c::c1_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_reest_request: c.init(other.c.get()); break; case types::rrc_conn_request: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::c1_c_"); } } ul_ccch_msg_type_c::c1_c_& ul_ccch_msg_type_c::c1_c_::operator=(const ul_ccch_msg_type_c::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_reest_request: c.set(other.c.get()); break; case types::rrc_conn_request: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::c1_c_"); } return *this; } void ul_ccch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_reest_request: j.write_fieldname("rrcConnectionReestablishmentRequest"); c.get().to_json(j); break; case types::rrc_conn_request: j.write_fieldname("rrcConnectionRequest"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::c1_c_"); } j.end_obj(); } SRSASN_CODE ul_ccch_msg_type_c::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_reest_request: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_request: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_ccch_msg_type_c::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_reest_request: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_request: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_ccch_msg_type_c::msg_class_ext_c_::destroy_() { switch (type_) { case types::c2: c.destroy(); break; case types::msg_class_ext_future_r13: c.destroy(); break; default: break; } } void ul_ccch_msg_type_c::msg_class_ext_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c2: c.init(); break; case types::msg_class_ext_future_r13: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_"); } } ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_c_(const ul_ccch_msg_type_c::msg_class_ext_c_& other) { type_ = other.type(); switch (type_) { case types::c2: c.init(other.c.get()); break; case types::msg_class_ext_future_r13: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_"); } } ul_ccch_msg_type_c::msg_class_ext_c_& ul_ccch_msg_type_c::msg_class_ext_c_:: operator=(const ul_ccch_msg_type_c::msg_class_ext_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c2: c.set(other.c.get()); break; case types::msg_class_ext_future_r13: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_"); } return *this; } void ul_ccch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c2: j.write_fieldname("c2"); c.get().to_json(j); break; case types::msg_class_ext_future_r13: j.write_fieldname("messageClassExtensionFuture-r13"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_"); } j.end_obj(); } SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c2: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext_future_r13: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c2: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext_future_r13: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_ccch_msg_type_c::msg_class_ext_c_::c2_c_::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("rrcConnectionResumeRequest-r13"); c.to_json(j); j.end_obj(); } SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::c2_c_::pack(bit_ref& bref) const { HANDLE_CODE(c.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::c2_c_::unpack(bit_ref& bref) { HANDLE_CODE(c.unpack(bref)); return SRSASN_SUCCESS; } void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::destroy_() { switch (type_) { case types::c3: c.destroy(); break; default: break; } } void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c3: c.init(); break; case types::msg_class_ext_future_r15: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); } } ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::msg_class_ext_future_r13_c_( const ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_& other) { type_ = other.type(); switch (type_) { case types::c3: c.init(other.c.get()); break; case types::msg_class_ext_future_r15: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); } } ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_& ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_:: operator=(const ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c3: c.set(other.c.get()); break; case types::msg_class_ext_future_r15: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); } return *this; } void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c3: j.write_fieldname("c3"); c.get().to_json(j); break; case types::msg_class_ext_future_r15: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); } j.end_obj(); } SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c3: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext_future_r15: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c3: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext_future_r15: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::set(types::options e) { type_ = e; } void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_early_data_request_r15: j.write_fieldname("rrcEarlyDataRequest-r15"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_"); } j.end_obj(); } SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_early_data_request_r15: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_early_data_request_r15: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UL-CCCH-Message ::= SEQUENCE SRSASN_CODE ul_ccch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE ul_ccch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void ul_ccch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("UL-CCCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // CellGlobalIdCDMA2000 ::= CHOICE void cell_global_id_cdma2000_c::destroy_() { switch (type_) { case types::cell_global_id1_xrtt: c.destroy >(); break; case types::cell_global_id_hrpd: c.destroy >(); break; default: break; } } void cell_global_id_cdma2000_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cell_global_id1_xrtt: c.init >(); break; case types::cell_global_id_hrpd: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cell_global_id_cdma2000_c"); } } cell_global_id_cdma2000_c::cell_global_id_cdma2000_c(const cell_global_id_cdma2000_c& other) { type_ = other.type(); switch (type_) { case types::cell_global_id1_xrtt: c.init(other.c.get >()); break; case types::cell_global_id_hrpd: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cell_global_id_cdma2000_c"); } } cell_global_id_cdma2000_c& cell_global_id_cdma2000_c::operator=(const cell_global_id_cdma2000_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cell_global_id1_xrtt: c.set(other.c.get >()); break; case types::cell_global_id_hrpd: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cell_global_id_cdma2000_c"); } return *this; } void cell_global_id_cdma2000_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cell_global_id1_xrtt: j.write_str("cellGlobalId1XRTT", c.get >().to_string()); break; case types::cell_global_id_hrpd: j.write_str("cellGlobalIdHRPD", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "cell_global_id_cdma2000_c"); } j.end_obj(); } SRSASN_CODE cell_global_id_cdma2000_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cell_global_id1_xrtt: HANDLE_CODE(c.get >().pack(bref)); break; case types::cell_global_id_hrpd: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "cell_global_id_cdma2000_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cell_global_id_cdma2000_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cell_global_id1_xrtt: HANDLE_CODE(c.get >().unpack(bref)); break; case types::cell_global_id_hrpd: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "cell_global_id_cdma2000_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // AdditionalSI-Info-r9 ::= SEQUENCE SRSASN_CODE add_si_info_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csg_member_status_r9_present, 1)); HANDLE_CODE(bref.pack(csg_id_r9_present, 1)); if (csg_id_r9_present) { HANDLE_CODE(csg_id_r9.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE add_si_info_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csg_member_status_r9_present, 1)); HANDLE_CODE(bref.unpack(csg_id_r9_present, 1)); if (csg_id_r9_present) { HANDLE_CODE(csg_id_r9.unpack(bref)); } return SRSASN_SUCCESS; } void add_si_info_r9_s::to_json(json_writer& j) const { j.start_obj(); if (csg_member_status_r9_present) { j.write_str("csg-MemberStatus-r9", "member"); } if (csg_id_r9_present) { j.write_str("csg-Identity-r9", csg_id_r9.to_string()); } j.end_obj(); } // BLER-Result-r12 ::= SEQUENCE SRSASN_CODE bler_result_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, bler_r12, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(blocks_rx_r12.n_r12.pack(bref)); HANDLE_CODE(blocks_rx_r12.m_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE bler_result_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(bler_r12, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(blocks_rx_r12.n_r12.unpack(bref)); HANDLE_CODE(blocks_rx_r12.m_r12.unpack(bref)); return SRSASN_SUCCESS; } void bler_result_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("bler-r12", bler_r12); j.write_fieldname("blocksReceived-r12"); j.start_obj(); j.write_str("n-r12", blocks_rx_r12.n_r12.to_string()); j.write_str("m-r12", blocks_rx_r12.m_r12.to_string()); j.end_obj(); j.end_obj(); } // CellGlobalIdUTRA ::= SEQUENCE SRSASN_CODE cell_global_id_utra_s::pack(bit_ref& bref) const { HANDLE_CODE(plmn_id.pack(bref)); HANDLE_CODE(cell_id.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_global_id_utra_s::unpack(bit_ref& bref) { HANDLE_CODE(plmn_id.unpack(bref)); HANDLE_CODE(cell_id.unpack(bref)); return SRSASN_SUCCESS; } void cell_global_id_utra_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("plmn-Identity"); plmn_id.to_json(j); j.write_str("cellIdentity", cell_id.to_string()); j.end_obj(); } // MeasResultCDMA2000 ::= SEQUENCE SRSASN_CODE meas_result_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cgi_info_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)511)); if (cgi_info_present) { HANDLE_CODE(cgi_info.pack(bref)); } bref.pack(meas_result.ext, 1); HANDLE_CODE(bref.pack(meas_result.pilot_pn_phase_present, 1)); if (meas_result.pilot_pn_phase_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result.pilot_pn_phase, (uint16_t)0, (uint16_t)32767)); } HANDLE_CODE(pack_unalign_integer(bref, meas_result.pilot_strength, (uint8_t)0, (uint8_t)63)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cgi_info_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)511)); if (cgi_info_present) { HANDLE_CODE(cgi_info.unpack(bref)); } bref.unpack(meas_result.ext, 1); HANDLE_CODE(bref.unpack(meas_result.pilot_pn_phase_present, 1)); if (meas_result.pilot_pn_phase_present) { HANDLE_CODE(unpack_unalign_integer(meas_result.pilot_pn_phase, bref, (uint16_t)0, (uint16_t)32767)); } HANDLE_CODE(unpack_unalign_integer(meas_result.pilot_strength, bref, (uint8_t)0, (uint8_t)63)); return SRSASN_SUCCESS; } void meas_result_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId", pci); if (cgi_info_present) { j.write_fieldname("cgi-Info"); cgi_info.to_json(j); } j.write_fieldname("measResult"); j.start_obj(); if (meas_result.pilot_pn_phase_present) { j.write_int("pilotPnPhase", meas_result.pilot_pn_phase); } j.write_int("pilotStrength", meas_result.pilot_strength); j.end_obj(); j.end_obj(); } // CellGlobalIdGERAN ::= SEQUENCE SRSASN_CODE cell_global_id_geran_s::pack(bit_ref& bref) const { HANDLE_CODE(plmn_id.pack(bref)); HANDLE_CODE(location_area_code.pack(bref)); HANDLE_CODE(cell_id.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE cell_global_id_geran_s::unpack(bit_ref& bref) { HANDLE_CODE(plmn_id.unpack(bref)); HANDLE_CODE(location_area_code.unpack(bref)); HANDLE_CODE(cell_id.unpack(bref)); return SRSASN_SUCCESS; } void cell_global_id_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("plmn-Identity"); plmn_id.to_json(j); j.write_str("locationAreaCode", location_area_code.to_string()); j.write_str("cellIdentity", cell_id.to_string()); j.end_obj(); } // DataBLER-MCH-Result-r12 ::= SEQUENCE SRSASN_CODE data_bler_mch_result_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, mch_idx_r12, (uint8_t)1, (uint8_t)15)); HANDLE_CODE(data_bler_result_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE data_bler_mch_result_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(mch_idx_r12, bref, (uint8_t)1, (uint8_t)15)); HANDLE_CODE(data_bler_result_r12.unpack(bref)); return SRSASN_SUCCESS; } void data_bler_mch_result_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("mch-Index-r12", mch_idx_r12); j.write_fieldname("dataBLER-Result-r12"); data_bler_result_r12.to_json(j); j.end_obj(); } // MeasResultEUTRA ::= SEQUENCE SRSASN_CODE meas_result_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cgi_info_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)503)); if (cgi_info_present) { HANDLE_CODE(bref.pack(cgi_info.plmn_id_list_present, 1)); HANDLE_CODE(cgi_info.cell_global_id.pack(bref)); HANDLE_CODE(cgi_info.tac.pack(bref)); if (cgi_info.plmn_id_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cgi_info.plmn_id_list, 1, 5)); } } HANDLE_CODE(meas_result.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_eutra_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cgi_info_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)503)); if (cgi_info_present) { HANDLE_CODE(bref.unpack(cgi_info.plmn_id_list_present, 1)); HANDLE_CODE(cgi_info.cell_global_id.unpack(bref)); HANDLE_CODE(cgi_info.tac.unpack(bref)); if (cgi_info.plmn_id_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cgi_info.plmn_id_list, bref, 1, 5)); } } HANDLE_CODE(meas_result.unpack(bref)); return SRSASN_SUCCESS; } void meas_result_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId", pci); if (cgi_info_present) { j.write_fieldname("cgi-Info"); j.start_obj(); j.write_fieldname("cellGlobalId"); cgi_info.cell_global_id.to_json(j); j.write_str("trackingAreaCode", cgi_info.tac.to_string()); if (cgi_info.plmn_id_list_present) { j.start_array("plmn-IdentityList"); for (uint32_t i1 = 0; i1 < cgi_info.plmn_id_list.size(); ++i1) { cgi_info.plmn_id_list[i1].to_json(j); } j.end_array(); } j.end_obj(); } j.write_fieldname("measResult"); meas_result.to_json(j); j.end_obj(); } SRSASN_CODE meas_result_eutra_s::meas_result_s_::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rsrp_result_present, 1)); HANDLE_CODE(bref.pack(rsrq_result_present, 1)); if (rsrp_result_present) { HANDLE_CODE(pack_unalign_integer(bref, rsrp_result, (uint8_t)0, (uint8_t)97)); } if (rsrq_result_present) { HANDLE_CODE(pack_unalign_integer(bref, rsrq_result, (uint8_t)0, (uint8_t)34)); } if (ext) { ext_groups_header group_flags(5); rrc_asn1_warn_assert(add_si_info_r9_present != (add_si_info_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= add_si_info_r9_present; group_flags[1] |= primary_plmn_suitable_r12_present; group_flags[1] |= meas_result_v1250_present; group_flags[2] |= rs_sinr_result_r13_present; rrc_asn1_warn_assert(cgi_info_v1310_present != (cgi_info_v1310.get() != NULL), __FILE__, __LINE__); group_flags[2] |= cgi_info_v1310_present; group_flags[3] |= meas_result_v1360_present; rrc_asn1_warn_assert(cgi_info_minus5_gc_r15_present != (cgi_info_minus5_gc_r15.get() != NULL), __FILE__, __LINE__); group_flags[4] |= cgi_info_minus5_gc_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(add_si_info_r9_present, 1)); if (add_si_info_r9_present) { HANDLE_CODE(add_si_info_r9->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(primary_plmn_suitable_r12_present, 1)); HANDLE_CODE(bref.pack(meas_result_v1250_present, 1)); if (meas_result_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_v1250, (int8_t)-30, (int8_t)46)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rs_sinr_result_r13_present, 1)); HANDLE_CODE(bref.pack(cgi_info_v1310_present, 1)); if (rs_sinr_result_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, rs_sinr_result_r13, (uint8_t)0, (uint8_t)127)); } if (cgi_info_v1310_present) { HANDLE_CODE(bref.pack(cgi_info_v1310->freq_band_ind_r13_present, 1)); HANDLE_CODE(bref.pack(cgi_info_v1310->multi_band_info_list_r13_present, 1)); HANDLE_CODE(bref.pack(cgi_info_v1310->freq_band_ind_prio_r13_present, 1)); if (cgi_info_v1310->freq_band_ind_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, cgi_info_v1310->freq_band_ind_r13, (uint16_t)1, (uint16_t)256)); } if (cgi_info_v1310->multi_band_info_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cgi_info_v1310->multi_band_info_list_r13, 1, 8, UnalignedIntegerPacker(1, 256))); } } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_v1360_present, 1)); if (meas_result_v1360_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_v1360, (int8_t)-17, (int8_t)-1)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cgi_info_minus5_gc_r15_present, 1)); if (cgi_info_minus5_gc_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *cgi_info_minus5_gc_r15, 1, 6)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_eutra_s::meas_result_s_::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rsrp_result_present, 1)); HANDLE_CODE(bref.unpack(rsrq_result_present, 1)); if (rsrp_result_present) { HANDLE_CODE(unpack_unalign_integer(rsrp_result, bref, (uint8_t)0, (uint8_t)97)); } if (rsrq_result_present) { HANDLE_CODE(unpack_unalign_integer(rsrq_result, bref, (uint8_t)0, (uint8_t)34)); } if (ext) { ext_groups_header group_flags(5); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(add_si_info_r9_present, 1)); if (add_si_info_r9_present) { add_si_info_r9 = make_copy_ptr(add_si_info_r9_s()); HANDLE_CODE(add_si_info_r9->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(primary_plmn_suitable_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_result_v1250_present, 1)); if (meas_result_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_v1250, bref, (int8_t)-30, (int8_t)46)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rs_sinr_result_r13_present, 1)); HANDLE_CODE(bref.unpack(cgi_info_v1310_present, 1)); if (rs_sinr_result_r13_present) { HANDLE_CODE(unpack_unalign_integer(rs_sinr_result_r13, bref, (uint8_t)0, (uint8_t)127)); } if (cgi_info_v1310_present) { cgi_info_v1310 = make_copy_ptr(cgi_info_v1310_s_()); HANDLE_CODE(bref.unpack(cgi_info_v1310->freq_band_ind_r13_present, 1)); HANDLE_CODE(bref.unpack(cgi_info_v1310->multi_band_info_list_r13_present, 1)); HANDLE_CODE(bref.unpack(cgi_info_v1310->freq_band_ind_prio_r13_present, 1)); if (cgi_info_v1310->freq_band_ind_r13_present) { HANDLE_CODE(unpack_unalign_integer(cgi_info_v1310->freq_band_ind_r13, bref, (uint16_t)1, (uint16_t)256)); } if (cgi_info_v1310->multi_band_info_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(cgi_info_v1310->multi_band_info_list_r13, bref, 1, 8, UnalignedIntegerPacker(1, 256))); } } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_v1360_present, 1)); if (meas_result_v1360_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_v1360, bref, (int8_t)-17, (int8_t)-1)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cgi_info_minus5_gc_r15_present, 1)); if (cgi_info_minus5_gc_r15_present) { cgi_info_minus5_gc_r15 = make_copy_ptr(cgi_info_minus5_gc_r15_l_()); HANDLE_CODE(unpack_dyn_seq_of(*cgi_info_minus5_gc_r15, bref, 1, 6)); } } } return SRSASN_SUCCESS; } void meas_result_eutra_s::meas_result_s_::to_json(json_writer& j) const { j.start_obj(); if (rsrp_result_present) { j.write_int("rsrpResult", rsrp_result); } if (rsrq_result_present) { j.write_int("rsrqResult", rsrq_result); } if (ext) { rrc_asn1_warn_assert(add_si_info_r9_present != (add_si_info_r9.get() != NULL), __FILE__, __LINE__); if (add_si_info_r9_present) { j.write_fieldname("additionalSI-Info-r9"); add_si_info_r9->to_json(j); } if (primary_plmn_suitable_r12_present) { j.write_str("primaryPLMN-Suitable-r12", "true"); } if (meas_result_v1250_present) { j.write_int("measResult-v1250", meas_result_v1250); } if (rs_sinr_result_r13_present) { j.write_int("rs-sinr-Result-r13", rs_sinr_result_r13); } rrc_asn1_warn_assert(cgi_info_v1310_present != (cgi_info_v1310.get() != NULL), __FILE__, __LINE__); if (cgi_info_v1310_present) { j.write_fieldname("cgi-Info-v1310"); j.start_obj(); if (cgi_info_v1310->freq_band_ind_r13_present) { j.write_int("freqBandIndicator-r13", cgi_info_v1310->freq_band_ind_r13); } if (cgi_info_v1310->multi_band_info_list_r13_present) { j.start_array("multiBandInfoList-r13"); for (uint32_t i1 = 0; i1 < cgi_info_v1310->multi_band_info_list_r13.size(); ++i1) { j.write_int(cgi_info_v1310->multi_band_info_list_r13[i1]); } j.end_array(); } if (cgi_info_v1310->freq_band_ind_prio_r13_present) { j.write_str("freqBandIndicatorPriority-r13", "true"); } j.end_obj(); } if (meas_result_v1360_present) { j.write_int("measResult-v1360", meas_result_v1360); } rrc_asn1_warn_assert(cgi_info_minus5_gc_r15_present != (cgi_info_minus5_gc_r15.get() != NULL), __FILE__, __LINE__); if (cgi_info_minus5_gc_r15_present) { j.start_array("cgi-Info-5GC-r15"); for (uint32_t i1 = 0; i1 < cgi_info_minus5_gc_r15->size(); ++i1) { ((*cgi_info_minus5_gc_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // MeasResultIdleEUTRA-r15 ::= SEQUENCE SRSASN_CODE meas_result_idle_eutra_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r15, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(pack_unalign_integer(bref, pci_r15, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_r15.rsrp_result_r15, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_r15.rsrq_result_r15, (int8_t)-30, (int8_t)46)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_idle_eutra_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r15, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(unpack_unalign_integer(pci_r15, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(meas_result_r15.rsrp_result_r15, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(meas_result_r15.rsrq_result_r15, bref, (int8_t)-30, (int8_t)46)); return SRSASN_SUCCESS; } void meas_result_idle_eutra_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r15", carrier_freq_r15); j.write_int("physCellId-r15", pci_r15); j.write_fieldname("measResult-r15"); j.start_obj(); j.write_int("rsrpResult-r15", meas_result_r15.rsrp_result_r15); j.write_int("rsrqResult-r15", meas_result_r15.rsrq_result_r15); j.end_obj(); j.end_obj(); } // MeasResultUTRA ::= SEQUENCE SRSASN_CODE meas_result_utra_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cgi_info_present, 1)); HANDLE_CODE(pci.pack(bref)); if (cgi_info_present) { HANDLE_CODE(bref.pack(cgi_info.location_area_code_present, 1)); HANDLE_CODE(bref.pack(cgi_info.routing_area_code_present, 1)); HANDLE_CODE(bref.pack(cgi_info.plmn_id_list_present, 1)); HANDLE_CODE(cgi_info.cell_global_id.pack(bref)); if (cgi_info.location_area_code_present) { HANDLE_CODE(cgi_info.location_area_code.pack(bref)); } if (cgi_info.routing_area_code_present) { HANDLE_CODE(cgi_info.routing_area_code.pack(bref)); } if (cgi_info.plmn_id_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cgi_info.plmn_id_list, 1, 5)); } } HANDLE_CODE(meas_result.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_utra_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cgi_info_present, 1)); HANDLE_CODE(pci.unpack(bref)); if (cgi_info_present) { HANDLE_CODE(bref.unpack(cgi_info.location_area_code_present, 1)); HANDLE_CODE(bref.unpack(cgi_info.routing_area_code_present, 1)); HANDLE_CODE(bref.unpack(cgi_info.plmn_id_list_present, 1)); HANDLE_CODE(cgi_info.cell_global_id.unpack(bref)); if (cgi_info.location_area_code_present) { HANDLE_CODE(cgi_info.location_area_code.unpack(bref)); } if (cgi_info.routing_area_code_present) { HANDLE_CODE(cgi_info.routing_area_code.unpack(bref)); } if (cgi_info.plmn_id_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cgi_info.plmn_id_list, bref, 1, 5)); } } HANDLE_CODE(meas_result.unpack(bref)); return SRSASN_SUCCESS; } void meas_result_utra_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("physCellId"); pci.to_json(j); if (cgi_info_present) { j.write_fieldname("cgi-Info"); j.start_obj(); j.write_fieldname("cellGlobalId"); cgi_info.cell_global_id.to_json(j); if (cgi_info.location_area_code_present) { j.write_str("locationAreaCode", cgi_info.location_area_code.to_string()); } if (cgi_info.routing_area_code_present) { j.write_str("routingAreaCode", cgi_info.routing_area_code.to_string()); } if (cgi_info.plmn_id_list_present) { j.start_array("plmn-IdentityList"); for (uint32_t i1 = 0; i1 < cgi_info.plmn_id_list.size(); ++i1) { cgi_info.plmn_id_list[i1].to_json(j); } j.end_array(); } j.end_obj(); } j.write_fieldname("measResult"); meas_result.to_json(j); j.end_obj(); } void meas_result_utra_s::pci_c_::destroy_() {} void meas_result_utra_s::pci_c_::set(types::options e) { destroy_(); type_ = e; } meas_result_utra_s::pci_c_::pci_c_(const meas_result_utra_s::pci_c_& other) { type_ = other.type(); switch (type_) { case types::fdd: c.init(other.c.get()); break; case types::tdd: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_result_utra_s::pci_c_"); } } meas_result_utra_s::pci_c_& meas_result_utra_s::pci_c_::operator=(const meas_result_utra_s::pci_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd: c.set(other.c.get()); break; case types::tdd: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_result_utra_s::pci_c_"); } return *this; } void meas_result_utra_s::pci_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd: j.write_int("fdd", c.get()); break; case types::tdd: j.write_int("tdd", c.get()); break; default: log_invalid_choice_id(type_, "meas_result_utra_s::pci_c_"); } j.end_obj(); } SRSASN_CODE meas_result_utra_s::pci_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::tdd: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "meas_result_utra_s::pci_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_utra_s::pci_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::tdd: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "meas_result_utra_s::pci_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_utra_s::meas_result_s_::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(utra_rscp_present, 1)); HANDLE_CODE(bref.pack(utra_ec_n0_present, 1)); if (utra_rscp_present) { HANDLE_CODE(pack_unalign_integer(bref, utra_rscp, (int8_t)-5, (int8_t)91)); } if (utra_ec_n0_present) { HANDLE_CODE(pack_unalign_integer(bref, utra_ec_n0, (uint8_t)0, (uint8_t)49)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(add_si_info_r9_present != (add_si_info_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= add_si_info_r9_present; group_flags[1] |= primary_plmn_suitable_r12_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(add_si_info_r9_present, 1)); if (add_si_info_r9_present) { HANDLE_CODE(add_si_info_r9->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(primary_plmn_suitable_r12_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_utra_s::meas_result_s_::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(utra_rscp_present, 1)); HANDLE_CODE(bref.unpack(utra_ec_n0_present, 1)); if (utra_rscp_present) { HANDLE_CODE(unpack_unalign_integer(utra_rscp, bref, (int8_t)-5, (int8_t)91)); } if (utra_ec_n0_present) { HANDLE_CODE(unpack_unalign_integer(utra_ec_n0, bref, (uint8_t)0, (uint8_t)49)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(add_si_info_r9_present, 1)); if (add_si_info_r9_present) { add_si_info_r9 = make_copy_ptr(add_si_info_r9_s()); HANDLE_CODE(add_si_info_r9->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(primary_plmn_suitable_r12_present, 1)); } } return SRSASN_SUCCESS; } void meas_result_utra_s::meas_result_s_::to_json(json_writer& j) const { j.start_obj(); if (utra_rscp_present) { j.write_int("utra-RSCP", utra_rscp); } if (utra_ec_n0_present) { j.write_int("utra-EcN0", utra_ec_n0); } if (ext) { rrc_asn1_warn_assert(add_si_info_r9_present != (add_si_info_r9.get() != NULL), __FILE__, __LINE__); if (add_si_info_r9_present) { j.write_fieldname("additionalSI-Info-r9"); add_si_info_r9->to_json(j); } if (primary_plmn_suitable_r12_present) { j.write_str("primaryPLMN-Suitable-r12", "true"); } } j.end_obj(); } // RegisteredAMF-r15 ::= SEQUENCE SRSASN_CODE registered_amf_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(plmn_id_r15_present, 1)); if (plmn_id_r15_present) { HANDLE_CODE(plmn_id_r15.pack(bref)); } HANDLE_CODE(amf_id_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE registered_amf_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(plmn_id_r15_present, 1)); if (plmn_id_r15_present) { HANDLE_CODE(plmn_id_r15.unpack(bref)); } HANDLE_CODE(amf_id_r15.unpack(bref)); return SRSASN_SUCCESS; } void registered_amf_r15_s::to_json(json_writer& j) const { j.start_obj(); if (plmn_id_r15_present) { j.write_fieldname("plmn-Identity-r15"); plmn_id_r15.to_json(j); } j.write_str("amf-Identifier-r15", amf_id_r15.to_string()); j.end_obj(); } // S-NSSAI-r15 ::= CHOICE void s_nssai_r15_c::destroy_() { switch (type_) { case types::sst: c.destroy >(); break; case types::sst_sd: c.destroy >(); break; default: break; } } void s_nssai_r15_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sst: c.init >(); break; case types::sst_sd: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "s_nssai_r15_c"); } } s_nssai_r15_c::s_nssai_r15_c(const s_nssai_r15_c& other) { type_ = other.type(); switch (type_) { case types::sst: c.init(other.c.get >()); break; case types::sst_sd: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "s_nssai_r15_c"); } } s_nssai_r15_c& s_nssai_r15_c::operator=(const s_nssai_r15_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sst: c.set(other.c.get >()); break; case types::sst_sd: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "s_nssai_r15_c"); } return *this; } void s_nssai_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sst: j.write_str("sst", c.get >().to_string()); break; case types::sst_sd: j.write_str("sst-SD", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "s_nssai_r15_c"); } j.end_obj(); } SRSASN_CODE s_nssai_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sst: HANDLE_CODE(c.get >().pack(bref)); break; case types::sst_sd: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "s_nssai_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE s_nssai_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sst: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sst_sd: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "s_nssai_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // LocationInfo-r10 ::= SEQUENCE SRSASN_CODE location_info_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(horizontal_velocity_r10_present, 1)); HANDLE_CODE(bref.pack(gnss_tod_msec_r10_present, 1)); HANDLE_CODE(location_coordinates_r10.pack(bref)); if (horizontal_velocity_r10_present) { HANDLE_CODE(horizontal_velocity_r10.pack(bref)); } if (gnss_tod_msec_r10_present) { HANDLE_CODE(gnss_tod_msec_r10.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(vertical_velocity_info_r15_present != (vertical_velocity_info_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= vertical_velocity_info_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(vertical_velocity_info_r15_present, 1)); if (vertical_velocity_info_r15_present) { HANDLE_CODE(vertical_velocity_info_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE location_info_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(horizontal_velocity_r10_present, 1)); HANDLE_CODE(bref.unpack(gnss_tod_msec_r10_present, 1)); HANDLE_CODE(location_coordinates_r10.unpack(bref)); if (horizontal_velocity_r10_present) { HANDLE_CODE(horizontal_velocity_r10.unpack(bref)); } if (gnss_tod_msec_r10_present) { HANDLE_CODE(gnss_tod_msec_r10.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(vertical_velocity_info_r15_present, 1)); if (vertical_velocity_info_r15_present) { vertical_velocity_info_r15 = make_copy_ptr(vertical_velocity_info_r15_c_()); HANDLE_CODE(vertical_velocity_info_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void location_info_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("locationCoordinates-r10"); location_coordinates_r10.to_json(j); if (horizontal_velocity_r10_present) { j.write_str("horizontalVelocity-r10", horizontal_velocity_r10.to_string()); } if (gnss_tod_msec_r10_present) { j.write_str("gnss-TOD-msec-r10", gnss_tod_msec_r10.to_string()); } if (ext) { rrc_asn1_warn_assert(vertical_velocity_info_r15_present != (vertical_velocity_info_r15.get() != NULL), __FILE__, __LINE__); if (vertical_velocity_info_r15_present) { j.write_fieldname("verticalVelocityInfo-r15"); vertical_velocity_info_r15->to_json(j); } } j.end_obj(); } void location_info_r10_s::location_coordinates_r10_c_::destroy_() { switch (type_) { case types::ellipsoid_point_r10: c.destroy(); break; case types::ellipsoid_point_with_altitude_r10: c.destroy(); break; case types::ellipsoid_point_with_uncertainty_circle_r11: c.destroy(); break; case types::ellipsoid_point_with_uncertainty_ellipse_r11: c.destroy(); break; case types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11: c.destroy(); break; case types::ellipsoid_arc_r11: c.destroy(); break; case types::polygon_r11: c.destroy(); break; default: break; } } void location_info_r10_s::location_coordinates_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ellipsoid_point_r10: c.init(); break; case types::ellipsoid_point_with_altitude_r10: c.init(); break; case types::ellipsoid_point_with_uncertainty_circle_r11: c.init(); break; case types::ellipsoid_point_with_uncertainty_ellipse_r11: c.init(); break; case types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11: c.init(); break; case types::ellipsoid_arc_r11: c.init(); break; case types::polygon_r11: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "location_info_r10_s::location_coordinates_r10_c_"); } } location_info_r10_s::location_coordinates_r10_c_::location_coordinates_r10_c_( const location_info_r10_s::location_coordinates_r10_c_& other) { type_ = other.type(); switch (type_) { case types::ellipsoid_point_r10: c.init(other.c.get()); break; case types::ellipsoid_point_with_altitude_r10: c.init(other.c.get()); break; case types::ellipsoid_point_with_uncertainty_circle_r11: c.init(other.c.get()); break; case types::ellipsoid_point_with_uncertainty_ellipse_r11: c.init(other.c.get()); break; case types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11: c.init(other.c.get()); break; case types::ellipsoid_arc_r11: c.init(other.c.get()); break; case types::polygon_r11: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "location_info_r10_s::location_coordinates_r10_c_"); } } location_info_r10_s::location_coordinates_r10_c_& location_info_r10_s::location_coordinates_r10_c_:: operator=(const location_info_r10_s::location_coordinates_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ellipsoid_point_r10: c.set(other.c.get()); break; case types::ellipsoid_point_with_altitude_r10: c.set(other.c.get()); break; case types::ellipsoid_point_with_uncertainty_circle_r11: c.set(other.c.get()); break; case types::ellipsoid_point_with_uncertainty_ellipse_r11: c.set(other.c.get()); break; case types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11: c.set(other.c.get()); break; case types::ellipsoid_arc_r11: c.set(other.c.get()); break; case types::polygon_r11: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "location_info_r10_s::location_coordinates_r10_c_"); } return *this; } void location_info_r10_s::location_coordinates_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ellipsoid_point_r10: j.write_str("ellipsoid-Point-r10", c.get().to_string()); break; case types::ellipsoid_point_with_altitude_r10: j.write_str("ellipsoidPointWithAltitude-r10", c.get().to_string()); break; case types::ellipsoid_point_with_uncertainty_circle_r11: j.write_str("ellipsoidPointWithUncertaintyCircle-r11", c.get().to_string()); break; case types::ellipsoid_point_with_uncertainty_ellipse_r11: j.write_str("ellipsoidPointWithUncertaintyEllipse-r11", c.get().to_string()); break; case types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11: j.write_str("ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11", c.get().to_string()); break; case types::ellipsoid_arc_r11: j.write_str("ellipsoidArc-r11", c.get().to_string()); break; case types::polygon_r11: j.write_str("polygon-r11", c.get().to_string()); break; default: log_invalid_choice_id(type_, "location_info_r10_s::location_coordinates_r10_c_"); } j.end_obj(); } SRSASN_CODE location_info_r10_s::location_coordinates_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ellipsoid_point_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::ellipsoid_point_with_altitude_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::ellipsoid_point_with_uncertainty_circle_r11: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::ellipsoid_point_with_uncertainty_ellipse_r11: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::ellipsoid_arc_r11: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; case types::polygon_r11: { varlength_field_pack_guard scope(bref); HANDLE_CODE(c.get().pack(bref)); } break; default: log_invalid_choice_id(type_, "location_info_r10_s::location_coordinates_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE location_info_r10_s::location_coordinates_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ellipsoid_point_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::ellipsoid_point_with_altitude_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::ellipsoid_point_with_uncertainty_circle_r11: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::ellipsoid_point_with_uncertainty_ellipse_r11: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::ellipsoid_arc_r11: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; case types::polygon_r11: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(c.get().unpack(bref)); } break; default: log_invalid_choice_id(type_, "location_info_r10_s::location_coordinates_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void location_info_r10_s::vertical_velocity_info_r15_c_::destroy_() { switch (type_) { case types::vertical_velocity_r15: c.destroy(); break; case types::vertical_velocity_and_uncertainty_r15: c.destroy(); break; default: break; } } void location_info_r10_s::vertical_velocity_info_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::vertical_velocity_r15: c.init(); break; case types::vertical_velocity_and_uncertainty_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "location_info_r10_s::vertical_velocity_info_r15_c_"); } } location_info_r10_s::vertical_velocity_info_r15_c_::vertical_velocity_info_r15_c_( const location_info_r10_s::vertical_velocity_info_r15_c_& other) { type_ = other.type(); switch (type_) { case types::vertical_velocity_r15: c.init(other.c.get()); break; case types::vertical_velocity_and_uncertainty_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "location_info_r10_s::vertical_velocity_info_r15_c_"); } } location_info_r10_s::vertical_velocity_info_r15_c_& location_info_r10_s::vertical_velocity_info_r15_c_:: operator=(const location_info_r10_s::vertical_velocity_info_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::vertical_velocity_r15: c.set(other.c.get()); break; case types::vertical_velocity_and_uncertainty_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "location_info_r10_s::vertical_velocity_info_r15_c_"); } return *this; } void location_info_r10_s::vertical_velocity_info_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::vertical_velocity_r15: j.write_str("verticalVelocity-r15", c.get().to_string()); break; case types::vertical_velocity_and_uncertainty_r15: j.write_str("verticalVelocityAndUncertainty-r15", c.get().to_string()); break; default: log_invalid_choice_id(type_, "location_info_r10_s::vertical_velocity_info_r15_c_"); } j.end_obj(); } SRSASN_CODE location_info_r10_s::vertical_velocity_info_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::vertical_velocity_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::vertical_velocity_and_uncertainty_r15: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "location_info_r10_s::vertical_velocity_info_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE location_info_r10_s::vertical_velocity_info_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::vertical_velocity_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::vertical_velocity_and_uncertainty_r15: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "location_info_r10_s::vertical_velocity_info_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasResultGERAN ::= SEQUENCE SRSASN_CODE meas_result_geran_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cgi_info_present, 1)); HANDLE_CODE(carrier_freq.pack(bref)); HANDLE_CODE(pci.pack(bref)); if (cgi_info_present) { HANDLE_CODE(bref.pack(cgi_info.routing_area_code_present, 1)); HANDLE_CODE(cgi_info.cell_global_id.pack(bref)); if (cgi_info.routing_area_code_present) { HANDLE_CODE(cgi_info.routing_area_code.pack(bref)); } } bref.pack(meas_result.ext, 1); HANDLE_CODE(pack_unalign_integer(bref, meas_result.rssi, (uint8_t)0, (uint8_t)63)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_geran_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cgi_info_present, 1)); HANDLE_CODE(carrier_freq.unpack(bref)); HANDLE_CODE(pci.unpack(bref)); if (cgi_info_present) { HANDLE_CODE(bref.unpack(cgi_info.routing_area_code_present, 1)); HANDLE_CODE(cgi_info.cell_global_id.unpack(bref)); if (cgi_info.routing_area_code_present) { HANDLE_CODE(cgi_info.routing_area_code.unpack(bref)); } } bref.unpack(meas_result.ext, 1); HANDLE_CODE(unpack_unalign_integer(meas_result.rssi, bref, (uint8_t)0, (uint8_t)63)); return SRSASN_SUCCESS; } void meas_result_geran_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("carrierFreq"); carrier_freq.to_json(j); j.write_fieldname("physCellId"); pci.to_json(j); if (cgi_info_present) { j.write_fieldname("cgi-Info"); j.start_obj(); j.write_fieldname("cellGlobalId"); cgi_info.cell_global_id.to_json(j); if (cgi_info.routing_area_code_present) { j.write_str("routingAreaCode", cgi_info.routing_area_code.to_string()); } j.end_obj(); } j.write_fieldname("measResult"); j.start_obj(); j.write_int("rssi", meas_result.rssi); j.end_obj(); j.end_obj(); } // MeasResultNR-r15 ::= SEQUENCE SRSASN_CODE meas_result_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rsrp_result_r15_present, 1)); HANDLE_CODE(bref.pack(rsrq_result_r15_present, 1)); HANDLE_CODE(bref.pack(rs_sinr_result_r15_present, 1)); if (rsrp_result_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, rsrp_result_r15, (uint8_t)0, (uint8_t)127)); } if (rsrq_result_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, rsrq_result_r15, (uint8_t)0, (uint8_t)127)); } if (rs_sinr_result_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, rs_sinr_result_r15, (uint8_t)0, (uint8_t)127)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rsrp_result_r15_present, 1)); HANDLE_CODE(bref.unpack(rsrq_result_r15_present, 1)); HANDLE_CODE(bref.unpack(rs_sinr_result_r15_present, 1)); if (rsrp_result_r15_present) { HANDLE_CODE(unpack_unalign_integer(rsrp_result_r15, bref, (uint8_t)0, (uint8_t)127)); } if (rsrq_result_r15_present) { HANDLE_CODE(unpack_unalign_integer(rsrq_result_r15, bref, (uint8_t)0, (uint8_t)127)); } if (rs_sinr_result_r15_present) { HANDLE_CODE(unpack_unalign_integer(rs_sinr_result_r15, bref, (uint8_t)0, (uint8_t)127)); } return SRSASN_SUCCESS; } void meas_result_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); if (rsrp_result_r15_present) { j.write_int("rsrpResult-r15", rsrp_result_r15); } if (rsrq_result_r15_present) { j.write_int("rsrqResult-r15", rsrq_result_r15); } if (rs_sinr_result_r15_present) { j.write_int("rs-sinr-Result-r15", rs_sinr_result_r15); } j.end_obj(); } // MeasResultsCDMA2000 ::= SEQUENCE SRSASN_CODE meas_results_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pre_regist_status_hrpd, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_cdma2000, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE meas_results_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pre_regist_status_hrpd, 1)); HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_cdma2000, bref, 1, 8)); return SRSASN_SUCCESS; } void meas_results_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("preRegistrationStatusHRPD", pre_regist_status_hrpd); j.start_array("measResultListCDMA2000"); for (uint32_t i1 = 0; i1 < meas_result_list_cdma2000.size(); ++i1) { meas_result_list_cdma2000[i1].to_json(j); } j.end_array(); j.end_obj(); } // PLMN-IdentityInfoNR-r15 ::= SEQUENCE SRSASN_CODE plmn_id_info_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tac_r15_present, 1)); HANDLE_CODE(bref.pack(ran_area_code_r15_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r15, 1, 12)); if (tac_r15_present) { HANDLE_CODE(tac_r15.pack(bref)); } if (ran_area_code_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, ran_area_code_r15, (uint8_t)0, (uint8_t)255)); } HANDLE_CODE(cell_id_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE plmn_id_info_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tac_r15_present, 1)); HANDLE_CODE(bref.unpack(ran_area_code_r15_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r15, bref, 1, 12)); if (tac_r15_present) { HANDLE_CODE(tac_r15.unpack(bref)); } if (ran_area_code_r15_present) { HANDLE_CODE(unpack_unalign_integer(ran_area_code_r15, bref, (uint8_t)0, (uint8_t)255)); } HANDLE_CODE(cell_id_r15.unpack(bref)); return SRSASN_SUCCESS; } void plmn_id_info_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("plmn-IdentityList-r15"); for (uint32_t i1 = 0; i1 < plmn_id_list_r15.size(); ++i1) { plmn_id_list_r15[i1].to_json(j); } j.end_array(); if (tac_r15_present) { j.write_str("trackingAreaCode-r15", tac_r15.to_string()); } if (ran_area_code_r15_present) { j.write_int("ran-AreaCode-r15", ran_area_code_r15); } j.write_str("cellIdentity-r15", cell_id_r15.to_string()); j.end_obj(); } // RRCConnectionSetupComplete-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_wlan_r15_present, 1)); HANDLE_CODE(bref.pack(idle_meas_available_r15_present, 1)); HANDLE_CODE(bref.pack(flight_path_info_available_r15_present, 1)); HANDLE_CODE(bref.pack(connect_to5_gc_r15_present, 1)); HANDLE_CODE(bref.pack(registered_amf_r15_present, 1)); HANDLE_CODE(bref.pack(s_nssai_list_r15_present, 1)); HANDLE_CODE(bref.pack(ng_minus5_g_s_tmsi_bits_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (registered_amf_r15_present) { HANDLE_CODE(registered_amf_r15.pack(bref)); } if (s_nssai_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_nssai_list_r15, 1, 8)); } if (ng_minus5_g_s_tmsi_bits_r15_present) { HANDLE_CODE(ng_minus5_g_s_tmsi_bits_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_wlan_r15_present, 1)); HANDLE_CODE(bref.unpack(idle_meas_available_r15_present, 1)); HANDLE_CODE(bref.unpack(flight_path_info_available_r15_present, 1)); HANDLE_CODE(bref.unpack(connect_to5_gc_r15_present, 1)); HANDLE_CODE(bref.unpack(registered_amf_r15_present, 1)); HANDLE_CODE(bref.unpack(s_nssai_list_r15_present, 1)); HANDLE_CODE(bref.unpack(ng_minus5_g_s_tmsi_bits_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (registered_amf_r15_present) { HANDLE_CODE(registered_amf_r15.unpack(bref)); } if (s_nssai_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(s_nssai_list_r15, bref, 1, 8)); } if (ng_minus5_g_s_tmsi_bits_r15_present) { HANDLE_CODE(ng_minus5_g_s_tmsi_bits_r15.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_available_bt_r15_present) { j.write_str("logMeasAvailableBT-r15", "true"); } if (log_meas_available_wlan_r15_present) { j.write_str("logMeasAvailableWLAN-r15", "true"); } if (idle_meas_available_r15_present) { j.write_str("idleMeasAvailable-r15", "true"); } if (flight_path_info_available_r15_present) { j.write_str("flightPathInfoAvailable-r15", "true"); } if (connect_to5_gc_r15_present) { j.write_str("connectTo5GC-r15", "true"); } if (registered_amf_r15_present) { j.write_fieldname("registeredAMF-r15"); registered_amf_r15.to_json(j); } if (s_nssai_list_r15_present) { j.start_array("s-NSSAI-list-r15"); for (uint32_t i1 = 0; i1 < s_nssai_list_r15.size(); ++i1) { s_nssai_list_r15[i1].to_json(j); } j.end_array(); } if (ng_minus5_g_s_tmsi_bits_r15_present) { j.write_fieldname("ng-5G-S-TMSI-Bits-r15"); ng_minus5_g_s_tmsi_bits_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } void rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::destroy_() { switch (type_) { case types::ng_minus5_g_s_tmsi_r15: c.destroy >(); break; case types::ng_minus5_g_s_tmsi_part2_r15: c.destroy >(); break; default: break; } } void rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ng_minus5_g_s_tmsi_r15: c.init >(); break; case types::ng_minus5_g_s_tmsi_part2_r15: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_"); } } rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::ng_minus5_g_s_tmsi_bits_r15_c_( const rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_& other) { type_ = other.type(); switch (type_) { case types::ng_minus5_g_s_tmsi_r15: c.init(other.c.get >()); break; case types::ng_minus5_g_s_tmsi_part2_r15: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_"); } } rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_& rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_:: operator=(const rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ng_minus5_g_s_tmsi_r15: c.set(other.c.get >()); break; case types::ng_minus5_g_s_tmsi_part2_r15: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_"); } return *this; } void rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ng_minus5_g_s_tmsi_r15: j.write_str("ng-5G-S-TMSI-r15", c.get >().to_string()); break; case types::ng_minus5_g_s_tmsi_part2_r15: j.write_str("ng-5G-S-TMSI-Part2-r15", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ng_minus5_g_s_tmsi_r15: HANDLE_CODE(c.get >().pack(bref)); break; case types::ng_minus5_g_s_tmsi_part2_r15: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ng_minus5_g_s_tmsi_r15: HANDLE_CODE(c.get >().unpack(bref)); break; case types::ng_minus5_g_s_tmsi_part2_r15: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RSRQ-Type-r12 ::= SEQUENCE SRSASN_CODE rsrq_type_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(all_symbols_r12, 1)); HANDLE_CODE(bref.pack(wide_band_r12, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rsrq_type_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(all_symbols_r12, 1)); HANDLE_CODE(bref.unpack(wide_band_r12, 1)); return SRSASN_SUCCESS; } void rsrq_type_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("allSymbols-r12", all_symbols_r12); j.write_bool("wideBand-r12", wide_band_r12); j.end_obj(); } // WLAN-RTT-r15 ::= SEQUENCE SRSASN_CODE wlan_rtt_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rtt_accuracy_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, rtt_value_r15, (uint32_t)0, (uint32_t)16777215)); HANDLE_CODE(pack_enum(bref, rtt_units_r15)); if (rtt_accuracy_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, rtt_accuracy_r15, (uint8_t)0, (uint8_t)255)); } return SRSASN_SUCCESS; } SRSASN_CODE wlan_rtt_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rtt_accuracy_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(rtt_value_r15, bref, (uint32_t)0, (uint32_t)16777215)); HANDLE_CODE(unpack_enum(rtt_units_r15, bref)); if (rtt_accuracy_r15_present) { HANDLE_CODE(unpack_unalign_integer(rtt_accuracy_r15, bref, (uint8_t)0, (uint8_t)255)); } return SRSASN_SUCCESS; } void wlan_rtt_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rttValue-r15", rtt_value_r15); j.write_str("rttUnits-r15", rtt_units_r15.to_string()); if (rtt_accuracy_r15_present) { j.write_int("rttAccuracy-r15", rtt_accuracy_r15); } j.end_obj(); } // LogMeasResultBT-r15 ::= SEQUENCE SRSASN_CODE log_meas_result_bt_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rssi_bt_r15_present, 1)); HANDLE_CODE(bt_addr_r15.pack(bref)); if (rssi_bt_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, rssi_bt_r15, (int8_t)-128, (int8_t)127)); } return SRSASN_SUCCESS; } SRSASN_CODE log_meas_result_bt_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rssi_bt_r15_present, 1)); HANDLE_CODE(bt_addr_r15.unpack(bref)); if (rssi_bt_r15_present) { HANDLE_CODE(unpack_unalign_integer(rssi_bt_r15, bref, (int8_t)-128, (int8_t)127)); } return SRSASN_SUCCESS; } void log_meas_result_bt_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("bt-Addr-r15", bt_addr_r15.to_string()); if (rssi_bt_r15_present) { j.write_int("rssi-BT-r15", rssi_bt_r15); } j.end_obj(); } // LogMeasResultWLAN-r15 ::= SEQUENCE SRSASN_CODE log_meas_result_wlan_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rssi_wlan_r15_present, 1)); HANDLE_CODE(bref.pack(rtt_wlan_r15_present, 1)); HANDLE_CODE(wlan_ids_r15.pack(bref)); if (rssi_wlan_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, rssi_wlan_r15, (uint8_t)0, (uint8_t)141)); } if (rtt_wlan_r15_present) { HANDLE_CODE(rtt_wlan_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE log_meas_result_wlan_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rssi_wlan_r15_present, 1)); HANDLE_CODE(bref.unpack(rtt_wlan_r15_present, 1)); HANDLE_CODE(wlan_ids_r15.unpack(bref)); if (rssi_wlan_r15_present) { HANDLE_CODE(unpack_unalign_integer(rssi_wlan_r15, bref, (uint8_t)0, (uint8_t)141)); } if (rtt_wlan_r15_present) { HANDLE_CODE(rtt_wlan_r15.unpack(bref)); } return SRSASN_SUCCESS; } void log_meas_result_wlan_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("wlan-Identifiers-r15"); wlan_ids_r15.to_json(j); if (rssi_wlan_r15_present) { j.write_int("rssiWLAN-r15", rssi_wlan_r15); } if (rtt_wlan_r15_present) { j.write_fieldname("rtt-WLAN-r15"); rtt_wlan_r15.to_json(j); } j.end_obj(); } // MeasResult2CDMA2000-r9 ::= SEQUENCE SRSASN_CODE meas_result2_cdma2000_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(carrier_freq_r9.pack(bref)); HANDLE_CODE(meas_result_list_r9.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result2_cdma2000_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(carrier_freq_r9.unpack(bref)); HANDLE_CODE(meas_result_list_r9.unpack(bref)); return SRSASN_SUCCESS; } void meas_result2_cdma2000_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("carrierFreq-r9"); carrier_freq_r9.to_json(j); j.write_fieldname("measResultList-r9"); meas_result_list_r9.to_json(j); j.end_obj(); } // MeasResult2EUTRA-r9 ::= SEQUENCE SRSASN_CODE meas_result2_eutra_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r9, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_r9, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result2_eutra_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_r9, bref, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_r9, bref, 1, 8)); return SRSASN_SUCCESS; } void meas_result2_eutra_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r9", carrier_freq_r9); j.start_array("measResultList-r9"); for (uint32_t i1 = 0; i1 < meas_result_list_r9.size(); ++i1) { meas_result_list_r9[i1].to_json(j); } j.end_array(); j.end_obj(); } // MeasResult2EUTRA-v1250 ::= SEQUENCE SRSASN_CODE meas_result2_eutra_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rsrq_type_r12_present, 1)); if (rsrq_type_r12_present) { HANDLE_CODE(rsrq_type_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result2_eutra_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rsrq_type_r12_present, 1)); if (rsrq_type_r12_present) { HANDLE_CODE(rsrq_type_r12.unpack(bref)); } return SRSASN_SUCCESS; } void meas_result2_eutra_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (rsrq_type_r12_present) { j.write_fieldname("rsrq-Type-r12"); rsrq_type_r12.to_json(j); } j.end_obj(); } // MeasResult2EUTRA-v9e0 ::= SEQUENCE SRSASN_CODE meas_result2_eutra_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_v9e0_present, 1)); if (carrier_freq_v9e0_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_v9e0, (uint32_t)65536, (uint32_t)262143)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result2_eutra_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_v9e0_present, 1)); if (carrier_freq_v9e0_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_v9e0, bref, (uint32_t)65536, (uint32_t)262143)); } return SRSASN_SUCCESS; } void meas_result2_eutra_v9e0_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_v9e0_present) { j.write_int("carrierFreq-v9e0", carrier_freq_v9e0); } j.end_obj(); } // MeasResult2UTRA-r9 ::= SEQUENCE SRSASN_CODE meas_result2_utra_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r9, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_r9, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result2_utra_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_r9, bref, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_r9, bref, 1, 8)); return SRSASN_SUCCESS; } void meas_result2_utra_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r9", carrier_freq_r9); j.start_array("measResultList-r9"); for (uint32_t i1 = 0; i1 < meas_result_list_r9.size(); ++i1) { meas_result_list_r9[i1].to_json(j); } j.end_array(); j.end_obj(); } // MeasResultIdle-r15 ::= SEQUENCE SRSASN_CODE meas_result_idle_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_serving_cell_r15.rsrp_result_r15, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_serving_cell_r15.rsrq_result_r15, (int8_t)-30, (int8_t)46)); if (meas_result_neigh_cells_r15_present) { HANDLE_CODE(meas_result_neigh_cells_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_idle_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(meas_result_serving_cell_r15.rsrp_result_r15, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(meas_result_serving_cell_r15.rsrq_result_r15, bref, (int8_t)-30, (int8_t)46)); if (meas_result_neigh_cells_r15_present) { HANDLE_CODE(meas_result_neigh_cells_r15.unpack(bref)); } return SRSASN_SUCCESS; } void meas_result_idle_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("measResultServingCell-r15"); j.start_obj(); j.write_int("rsrpResult-r15", meas_result_serving_cell_r15.rsrp_result_r15); j.write_int("rsrqResult-r15", meas_result_serving_cell_r15.rsrq_result_r15); j.end_obj(); if (meas_result_neigh_cells_r15_present) { j.write_fieldname("measResultNeighCells-r15"); meas_result_neigh_cells_r15.to_json(j); } j.end_obj(); } void meas_result_idle_r15_s::meas_result_neigh_cells_r15_c_::to_json(json_writer& j) const { j.start_obj(); j.start_array("measResultIdleListEUTRA-r15"); for (uint32_t i1 = 0; i1 < c.size(); ++i1) { c[i1].to_json(j); } j.end_array(); j.end_obj(); } SRSASN_CODE meas_result_idle_r15_s::meas_result_neigh_cells_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type()); HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_idle_r15_s::meas_result_neigh_cells_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); if (e != type()) { log_invalid_choice_id(e, "meas_result_idle_r15_s::meas_result_neigh_cells_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 8)); return SRSASN_SUCCESS; } // MeasResultMBSFN-r12 ::= SEQUENCE SRSASN_CODE meas_result_mbsfn_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sig_bler_result_r12_present, 1)); HANDLE_CODE(bref.pack(data_bler_mch_result_list_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, mbsfn_area_r12.mbsfn_area_id_r12, (uint8_t)0, (uint8_t)255)); HANDLE_CODE(pack_unalign_integer(bref, mbsfn_area_r12.carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(pack_unalign_integer(bref, rsrp_result_mbsfn_r12, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, rsrq_result_mbsfn_r12, (uint8_t)0, (uint8_t)31)); if (sig_bler_result_r12_present) { HANDLE_CODE(sig_bler_result_r12.pack(bref)); } if (data_bler_mch_result_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, data_bler_mch_result_list_r12, 1, 15)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_mbsfn_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sig_bler_result_r12_present, 1)); HANDLE_CODE(bref.unpack(data_bler_mch_result_list_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(mbsfn_area_r12.mbsfn_area_id_r12, bref, (uint8_t)0, (uint8_t)255)); HANDLE_CODE(unpack_unalign_integer(mbsfn_area_r12.carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(unpack_unalign_integer(rsrp_result_mbsfn_r12, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(rsrq_result_mbsfn_r12, bref, (uint8_t)0, (uint8_t)31)); if (sig_bler_result_r12_present) { HANDLE_CODE(sig_bler_result_r12.unpack(bref)); } if (data_bler_mch_result_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(data_bler_mch_result_list_r12, bref, 1, 15)); } return SRSASN_SUCCESS; } void meas_result_mbsfn_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("mbsfn-Area-r12"); j.start_obj(); j.write_int("mbsfn-AreaId-r12", mbsfn_area_r12.mbsfn_area_id_r12); j.write_int("carrierFreq-r12", mbsfn_area_r12.carrier_freq_r12); j.end_obj(); j.write_int("rsrpResultMBSFN-r12", rsrp_result_mbsfn_r12); j.write_int("rsrqResultMBSFN-r12", rsrq_result_mbsfn_r12); if (sig_bler_result_r12_present) { j.write_fieldname("signallingBLER-Result-r12"); sig_bler_result_r12.to_json(j); } if (data_bler_mch_result_list_r12_present) { j.start_array("dataBLER-MCH-ResultList-r12"); for (uint32_t i1 = 0; i1 < data_bler_mch_result_list_r12.size(); ++i1) { data_bler_mch_result_list_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); } // MeasResultSSB-Index-r15 ::= SEQUENCE SRSASN_CODE meas_result_ssb_idx_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_ssb_idx_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, ssb_idx_r15, (uint8_t)0, (uint8_t)63)); if (meas_result_ssb_idx_r15_present) { HANDLE_CODE(meas_result_ssb_idx_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_ssb_idx_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_ssb_idx_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(ssb_idx_r15, bref, (uint8_t)0, (uint8_t)63)); if (meas_result_ssb_idx_r15_present) { HANDLE_CODE(meas_result_ssb_idx_r15.unpack(bref)); } return SRSASN_SUCCESS; } void meas_result_ssb_idx_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("ssb-Index-r15", ssb_idx_r15); if (meas_result_ssb_idx_r15_present) { j.write_fieldname("measResultSSB-Index-r15"); meas_result_ssb_idx_r15.to_json(j); } j.end_obj(); } // PerCC-GapIndication-r14 ::= SEQUENCE SRSASN_CODE per_cc_gap_ind_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, serv_cell_id_r14, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_enum(bref, gap_ind_r14)); return SRSASN_SUCCESS; } SRSASN_CODE per_cc_gap_ind_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(serv_cell_id_r14, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_enum(gap_ind_r14, bref)); return SRSASN_SUCCESS; } void per_cc_gap_ind_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("servCellId-r14", serv_cell_id_r14); j.write_str("gapIndication-r14", gap_ind_r14.to_string()); j.end_obj(); } // RRCConnectionReconfigurationComplete-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_wlan_r15_present, 1)); HANDLE_CODE(bref.pack(flight_path_info_available_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_wlan_r15_present, 1)); HANDLE_CODE(bref.unpack(flight_path_info_available_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_available_bt_r15_present) { j.write_str("logMeasAvailableBT-r15", "true"); } if (log_meas_available_wlan_r15_present) { j.write_str("logMeasAvailableWLAN-r15", "true"); } if (flight_path_info_available_r15_present) { j.write_str("flightPathInfoAvailable-r15", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dcn_id_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (dcn_id_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, dcn_id_r14, (uint16_t)0, (uint16_t)65535)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dcn_id_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (dcn_id_r14_present) { HANDLE_CODE(unpack_unalign_integer(dcn_id_r14, bref, (uint16_t)0, (uint16_t)65535)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (dcn_id_r14_present) { j.write_int("dcn-ID-r14", dcn_id_r14); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // VictimSystemType-r11 ::= SEQUENCE SRSASN_CODE victim_sys_type_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(gps_r11_present, 1)); HANDLE_CODE(bref.pack(glonass_r11_present, 1)); HANDLE_CODE(bref.pack(bds_r11_present, 1)); HANDLE_CODE(bref.pack(galileo_r11_present, 1)); HANDLE_CODE(bref.pack(wlan_r11_present, 1)); HANDLE_CODE(bref.pack(bluetooth_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE victim_sys_type_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(gps_r11_present, 1)); HANDLE_CODE(bref.unpack(glonass_r11_present, 1)); HANDLE_CODE(bref.unpack(bds_r11_present, 1)); HANDLE_CODE(bref.unpack(galileo_r11_present, 1)); HANDLE_CODE(bref.unpack(wlan_r11_present, 1)); HANDLE_CODE(bref.unpack(bluetooth_r11_present, 1)); return SRSASN_SUCCESS; } void victim_sys_type_r11_s::to_json(json_writer& j) const { j.start_obj(); if (gps_r11_present) { j.write_str("gps-r11", "true"); } if (glonass_r11_present) { j.write_str("glonass-r11", "true"); } if (bds_r11_present) { j.write_str("bds-r11", "true"); } if (galileo_r11_present) { j.write_str("galileo-r11", "true"); } if (wlan_r11_present) { j.write_str("wlan-r11", "true"); } if (bluetooth_r11_present) { j.write_str("bluetooth-r11", "true"); } j.end_obj(); } // VisitedCellInfo-r12 ::= SEQUENCE SRSASN_CODE visited_cell_info_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(visited_cell_id_r12_present, 1)); if (visited_cell_id_r12_present) { HANDLE_CODE(visited_cell_id_r12.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, time_spent_r12, (uint16_t)0, (uint16_t)4095)); return SRSASN_SUCCESS; } SRSASN_CODE visited_cell_info_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(visited_cell_id_r12_present, 1)); if (visited_cell_id_r12_present) { HANDLE_CODE(visited_cell_id_r12.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(time_spent_r12, bref, (uint16_t)0, (uint16_t)4095)); return SRSASN_SUCCESS; } void visited_cell_info_r12_s::to_json(json_writer& j) const { j.start_obj(); if (visited_cell_id_r12_present) { j.write_fieldname("visitedCellId-r12"); visited_cell_id_r12.to_json(j); } j.write_int("timeSpent-r12", time_spent_r12); j.end_obj(); } void visited_cell_info_r12_s::visited_cell_id_r12_c_::destroy_() { switch (type_) { case types::cell_global_id_r12: c.destroy(); break; case types::pci_arfcn_r12: c.destroy(); break; default: break; } } void visited_cell_info_r12_s::visited_cell_id_r12_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cell_global_id_r12: c.init(); break; case types::pci_arfcn_r12: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "visited_cell_info_r12_s::visited_cell_id_r12_c_"); } } visited_cell_info_r12_s::visited_cell_id_r12_c_::visited_cell_id_r12_c_( const visited_cell_info_r12_s::visited_cell_id_r12_c_& other) { type_ = other.type(); switch (type_) { case types::cell_global_id_r12: c.init(other.c.get()); break; case types::pci_arfcn_r12: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "visited_cell_info_r12_s::visited_cell_id_r12_c_"); } } visited_cell_info_r12_s::visited_cell_id_r12_c_& visited_cell_info_r12_s::visited_cell_id_r12_c_:: operator=(const visited_cell_info_r12_s::visited_cell_id_r12_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cell_global_id_r12: c.set(other.c.get()); break; case types::pci_arfcn_r12: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "visited_cell_info_r12_s::visited_cell_id_r12_c_"); } return *this; } void visited_cell_info_r12_s::visited_cell_id_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cell_global_id_r12: j.write_fieldname("cellGlobalId-r12"); c.get().to_json(j); break; case types::pci_arfcn_r12: j.write_fieldname("pci-arfcn-r12"); j.start_obj(); j.write_int("physCellId-r12", c.get().pci_r12); j.write_int("carrierFreq-r12", c.get().carrier_freq_r12); j.end_obj(); break; default: log_invalid_choice_id(type_, "visited_cell_info_r12_s::visited_cell_id_r12_c_"); } j.end_obj(); } SRSASN_CODE visited_cell_info_r12_s::visited_cell_id_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cell_global_id_r12: HANDLE_CODE(c.get().pack(bref)); break; case types::pci_arfcn_r12: HANDLE_CODE(pack_unalign_integer(bref, c.get().pci_r12, (uint16_t)0, (uint16_t)503)); HANDLE_CODE( pack_unalign_integer(bref, c.get().carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); break; default: log_invalid_choice_id(type_, "visited_cell_info_r12_s::visited_cell_id_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE visited_cell_info_r12_s::visited_cell_id_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cell_global_id_r12: HANDLE_CODE(c.get().unpack(bref)); break; case types::pci_arfcn_r12: HANDLE_CODE(unpack_unalign_integer(c.get().pci_r12, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE( unpack_unalign_integer(c.get().carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); break; default: log_invalid_choice_id(type_, "visited_cell_info_r12_s::visited_cell_id_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // WayPointLocation-r15 ::= SEQUENCE SRSASN_CODE way_point_location_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(time_stamp_r15_present, 1)); HANDLE_CODE(way_point_location_r15.pack(bref)); if (time_stamp_r15_present) { HANDLE_CODE(time_stamp_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE way_point_location_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(time_stamp_r15_present, 1)); HANDLE_CODE(way_point_location_r15.unpack(bref)); if (time_stamp_r15_present) { HANDLE_CODE(time_stamp_r15.unpack(bref)); } return SRSASN_SUCCESS; } void way_point_location_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("wayPointLocation-r15"); way_point_location_r15.to_json(j); if (time_stamp_r15_present) { j.write_str("timeStamp-r15", time_stamp_r15.to_string()); } j.end_obj(); } // AffectedCarrierFreqCombInfoMRDC-r15 ::= SEQUENCE SRSASN_CODE affected_carrier_freq_comb_info_mrdc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(affected_carrier_freq_comb_mrdc_r15_present, 1)); HANDLE_CODE(victim_sys_type_r15.pack(bref)); HANDLE_CODE(pack_enum(bref, interference_direction_mrdc_r15)); if (affected_carrier_freq_comb_mrdc_r15_present) { HANDLE_CODE(bref.pack(affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15_present, 1)); if (affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15, 1, 32, UnalignedIntegerPacker(1, 64))); } HANDLE_CODE(pack_dyn_seq_of(bref, affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_nr_r15, 1, 16, UnalignedIntegerPacker(0, 3279165))); } return SRSASN_SUCCESS; } SRSASN_CODE affected_carrier_freq_comb_info_mrdc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(affected_carrier_freq_comb_mrdc_r15_present, 1)); HANDLE_CODE(victim_sys_type_r15.unpack(bref)); HANDLE_CODE(unpack_enum(interference_direction_mrdc_r15, bref)); if (affected_carrier_freq_comb_mrdc_r15_present) { HANDLE_CODE(bref.unpack(affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15_present, 1)); if (affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15, bref, 1, 32, UnalignedIntegerPacker(1, 64))); } HANDLE_CODE(unpack_dyn_seq_of(affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_nr_r15, bref, 1, 16, UnalignedIntegerPacker(0, 3279165))); } return SRSASN_SUCCESS; } void affected_carrier_freq_comb_info_mrdc_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("victimSystemType-r15"); victim_sys_type_r15.to_json(j); j.write_str("interferenceDirectionMRDC-r15", interference_direction_mrdc_r15.to_string()); if (affected_carrier_freq_comb_mrdc_r15_present) { j.write_fieldname("affectedCarrierFreqCombMRDC-r15"); j.start_obj(); if (affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15_present) { j.start_array("affectedCarrierFreqCombEUTRA-r15"); for (uint32_t i1 = 0; i1 < affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15.size(); ++i1) { j.write_int(affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_eutra_r15[i1]); } j.end_array(); } j.start_array("affectedCarrierFreqCombNR-r15"); for (uint32_t i1 = 0; i1 < affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_nr_r15.size(); ++i1) { j.write_int(affected_carrier_freq_comb_mrdc_r15.affected_carrier_freq_comb_nr_r15[i1]); } j.end_array(); j.end_obj(); } j.end_obj(); } // CGI-InfoNR-r15 ::= SEQUENCE SRSASN_CODE cgi_info_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(plmn_id_info_list_r15_present, 1)); HANDLE_CODE(bref.pack(freq_band_list_minus15_present, 1)); HANDLE_CODE(bref.pack(no_sib1_r15_present, 1)); if (plmn_id_info_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_info_list_r15, 1, 12)); } if (freq_band_list_minus15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list_minus15, 1, 32, UnalignedIntegerPacker(1, 1024))); } if (no_sib1_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, no_sib1_r15.ssb_subcarrier_offset_r15, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, no_sib1_r15.pdcch_cfg_sib1_r15, (uint8_t)0, (uint8_t)255)); } return SRSASN_SUCCESS; } SRSASN_CODE cgi_info_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(plmn_id_info_list_r15_present, 1)); HANDLE_CODE(bref.unpack(freq_band_list_minus15_present, 1)); HANDLE_CODE(bref.unpack(no_sib1_r15_present, 1)); if (plmn_id_info_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(plmn_id_info_list_r15, bref, 1, 12)); } if (freq_band_list_minus15_present) { HANDLE_CODE(unpack_dyn_seq_of(freq_band_list_minus15, bref, 1, 32, UnalignedIntegerPacker(1, 1024))); } if (no_sib1_r15_present) { HANDLE_CODE(unpack_unalign_integer(no_sib1_r15.ssb_subcarrier_offset_r15, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(no_sib1_r15.pdcch_cfg_sib1_r15, bref, (uint8_t)0, (uint8_t)255)); } return SRSASN_SUCCESS; } void cgi_info_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); if (plmn_id_info_list_r15_present) { j.start_array("plmn-IdentityInfoList-r15"); for (uint32_t i1 = 0; i1 < plmn_id_info_list_r15.size(); ++i1) { plmn_id_info_list_r15[i1].to_json(j); } j.end_array(); } if (freq_band_list_minus15_present) { j.start_array("frequencyBandList-15"); for (uint32_t i1 = 0; i1 < freq_band_list_minus15.size(); ++i1) { j.write_int(freq_band_list_minus15[i1]); } j.end_array(); } if (no_sib1_r15_present) { j.write_fieldname("noSIB1-r15"); j.start_obj(); j.write_int("ssb-SubcarrierOffset-r15", no_sib1_r15.ssb_subcarrier_offset_r15); j.write_int("pdcch-ConfigSIB1-r15", no_sib1_r15.pdcch_cfg_sib1_r15); j.end_obj(); } j.end_obj(); } // FlightPathInfoReport-r15 ::= SEQUENCE SRSASN_CODE flight_path_info_report_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(flight_path_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (flight_path_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, flight_path_r15, 1, 20)); } return SRSASN_SUCCESS; } SRSASN_CODE flight_path_info_report_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(flight_path_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (flight_path_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(flight_path_r15, bref, 1, 20)); } return SRSASN_SUCCESS; } void flight_path_info_report_r15_s::to_json(json_writer& j) const { j.start_obj(); if (flight_path_r15_present) { j.start_array("flightPath-r15"); for (uint32_t i1 = 0; i1 < flight_path_r15.size(); ++i1) { flight_path_r15[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReconfigurationComplete-v1510-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_v1510_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(scg_cfg_resp_nr_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (scg_cfg_resp_nr_r15_present) { HANDLE_CODE(scg_cfg_resp_nr_r15.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_v1510_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(scg_cfg_resp_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (scg_cfg_resp_nr_r15_present) { HANDLE_CODE(scg_cfg_resp_nr_r15.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_v1510_ies_s::to_json(json_writer& j) const { j.start_obj(); if (scg_cfg_resp_nr_r15_present) { j.write_str("scg-ConfigResponseNR-r15", scg_cfg_resp_nr_r15.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReestablishmentComplete-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_complete_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_wlan_r15_present, 1)); HANDLE_CODE(bref.pack(flight_path_info_available_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_wlan_r15_present, 1)); HANDLE_CODE(bref.unpack(flight_path_info_available_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } void rrc_conn_reest_complete_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_available_bt_r15_present) { j.write_str("logMeasAvailableBT-r15", "true"); } if (log_meas_available_wlan_r15_present) { j.write_str("logMeasAvailableWLAN-r15", "true"); } if (flight_path_info_available_r15_present) { j.write_str("flightPathInfoAvailable-r15", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_v1330_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_ce_need_ul_gaps_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v1330_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_ce_need_ul_gaps_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_v1330_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_ce_need_ul_gaps_r13_present) { j.write_str("ue-CE-NeedULGaps-r13", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // LogMeasInfo-r10 ::= SEQUENCE SRSASN_CODE log_meas_info_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(location_info_r10_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r10_present, 1)); if (location_info_r10_present) { HANDLE_CODE(location_info_r10.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, relative_time_stamp_r10, (uint16_t)0, (uint16_t)7200)); HANDLE_CODE(serv_cell_id_r10.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_serv_cell_r10.rsrp_result_r10, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_serv_cell_r10.rsrq_result_r10, (uint8_t)0, (uint8_t)34)); if (meas_result_neigh_cells_r10_present) { HANDLE_CODE(bref.pack(meas_result_neigh_cells_r10.meas_result_list_eutra_r10_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r10.meas_result_list_utra_r10_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r10.meas_result_list_geran_r10_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10_present, 1)); if (meas_result_neigh_cells_r10.meas_result_list_eutra_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r10.meas_result_list_eutra_r10, 1, 8)); } if (meas_result_neigh_cells_r10.meas_result_list_utra_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r10.meas_result_list_utra_r10, 1, 8)); } if (meas_result_neigh_cells_r10.meas_result_list_geran_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r10.meas_result_list_geran_r10, 1, 3, SeqOfPacker(1, 8, Packer()))); } if (meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10, 1, 8)); } } if (ext) { ext_groups_header group_flags(5); rrc_asn1_warn_assert(meas_result_list_eutra_v1090_present != (meas_result_list_eutra_v1090.get() != NULL), __FILE__, __LINE__); group_flags[0] |= meas_result_list_eutra_v1090_present; rrc_asn1_warn_assert(meas_result_list_mbsfn_r12_present != (meas_result_list_mbsfn_r12.get() != NULL), __FILE__, __LINE__); group_flags[1] |= meas_result_list_mbsfn_r12_present; group_flags[1] |= meas_result_serv_cell_v1250_present; rrc_asn1_warn_assert(serv_cell_rsrq_type_r12_present != (serv_cell_rsrq_type_r12.get() != NULL), __FILE__, __LINE__); group_flags[1] |= serv_cell_rsrq_type_r12_present; rrc_asn1_warn_assert(meas_result_list_eutra_v1250_present != (meas_result_list_eutra_v1250.get() != NULL), __FILE__, __LINE__); group_flags[1] |= meas_result_list_eutra_v1250_present; group_flags[2] |= in_dev_coex_detected_r13_present; group_flags[3] |= meas_result_serv_cell_v1360_present; rrc_asn1_warn_assert(log_meas_result_list_bt_r15_present != (log_meas_result_list_bt_r15.get() != NULL), __FILE__, __LINE__); group_flags[4] |= log_meas_result_list_bt_r15_present; rrc_asn1_warn_assert(log_meas_result_list_wlan_r15_present != (log_meas_result_list_wlan_r15.get() != NULL), __FILE__, __LINE__); group_flags[4] |= log_meas_result_list_wlan_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_list_eutra_v1090_present, 1)); if (meas_result_list_eutra_v1090_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_list_eutra_v1090, 1, 8)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_list_mbsfn_r12_present, 1)); HANDLE_CODE(bref.pack(meas_result_serv_cell_v1250_present, 1)); HANDLE_CODE(bref.pack(serv_cell_rsrq_type_r12_present, 1)); HANDLE_CODE(bref.pack(meas_result_list_eutra_v1250_present, 1)); if (meas_result_list_mbsfn_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_list_mbsfn_r12, 1, 8)); } if (meas_result_serv_cell_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_serv_cell_v1250, (int8_t)-30, (int8_t)46)); } if (serv_cell_rsrq_type_r12_present) { HANDLE_CODE(serv_cell_rsrq_type_r12->pack(bref)); } if (meas_result_list_eutra_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_list_eutra_v1250, 1, 8)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(in_dev_coex_detected_r13_present, 1)); } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_serv_cell_v1360_present, 1)); if (meas_result_serv_cell_v1360_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_serv_cell_v1360, (int8_t)-17, (int8_t)-1)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(log_meas_result_list_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_result_list_wlan_r15_present, 1)); if (log_meas_result_list_bt_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *log_meas_result_list_bt_r15, 1, 32)); } if (log_meas_result_list_wlan_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *log_meas_result_list_wlan_r15, 1, 32)); } } } return SRSASN_SUCCESS; } SRSASN_CODE log_meas_info_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(location_info_r10_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r10_present, 1)); if (location_info_r10_present) { HANDLE_CODE(location_info_r10.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(relative_time_stamp_r10, bref, (uint16_t)0, (uint16_t)7200)); HANDLE_CODE(serv_cell_id_r10.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(meas_result_serv_cell_r10.rsrp_result_r10, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(meas_result_serv_cell_r10.rsrq_result_r10, bref, (uint8_t)0, (uint8_t)34)); if (meas_result_neigh_cells_r10_present) { HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r10.meas_result_list_eutra_r10_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r10.meas_result_list_utra_r10_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r10.meas_result_list_geran_r10_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10_present, 1)); if (meas_result_neigh_cells_r10.meas_result_list_eutra_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r10.meas_result_list_eutra_r10, bref, 1, 8)); } if (meas_result_neigh_cells_r10.meas_result_list_utra_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r10.meas_result_list_utra_r10, bref, 1, 8)); } if (meas_result_neigh_cells_r10.meas_result_list_geran_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r10.meas_result_list_geran_r10, bref, 1, 3, SeqOfPacker(1, 8, Packer()))); } if (meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10, bref, 1, 8)); } } if (ext) { ext_groups_header group_flags(5); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_list_eutra_v1090_present, 1)); if (meas_result_list_eutra_v1090_present) { meas_result_list_eutra_v1090 = make_copy_ptr(meas_result_list2_eutra_v9e0_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_list_eutra_v1090, bref, 1, 8)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_list_mbsfn_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_result_serv_cell_v1250_present, 1)); HANDLE_CODE(bref.unpack(serv_cell_rsrq_type_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_result_list_eutra_v1250_present, 1)); if (meas_result_list_mbsfn_r12_present) { meas_result_list_mbsfn_r12 = make_copy_ptr(meas_result_list_mbsfn_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_list_mbsfn_r12, bref, 1, 8)); } if (meas_result_serv_cell_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_serv_cell_v1250, bref, (int8_t)-30, (int8_t)46)); } if (serv_cell_rsrq_type_r12_present) { serv_cell_rsrq_type_r12 = make_copy_ptr(rsrq_type_r12_s()); HANDLE_CODE(serv_cell_rsrq_type_r12->unpack(bref)); } if (meas_result_list_eutra_v1250_present) { meas_result_list_eutra_v1250 = make_copy_ptr(meas_result_list2_eutra_v1250_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_list_eutra_v1250, bref, 1, 8)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(in_dev_coex_detected_r13_present, 1)); } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_serv_cell_v1360_present, 1)); if (meas_result_serv_cell_v1360_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_serv_cell_v1360, bref, (int8_t)-17, (int8_t)-1)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(log_meas_result_list_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_result_list_wlan_r15_present, 1)); if (log_meas_result_list_bt_r15_present) { log_meas_result_list_bt_r15 = make_copy_ptr(log_meas_result_list_bt_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*log_meas_result_list_bt_r15, bref, 1, 32)); } if (log_meas_result_list_wlan_r15_present) { log_meas_result_list_wlan_r15 = make_copy_ptr(log_meas_result_list_wlan_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*log_meas_result_list_wlan_r15, bref, 1, 32)); } } } return SRSASN_SUCCESS; } void log_meas_info_r10_s::to_json(json_writer& j) const { j.start_obj(); if (location_info_r10_present) { j.write_fieldname("locationInfo-r10"); location_info_r10.to_json(j); } j.write_int("relativeTimeStamp-r10", relative_time_stamp_r10); j.write_fieldname("servCellIdentity-r10"); serv_cell_id_r10.to_json(j); j.write_fieldname("measResultServCell-r10"); j.start_obj(); j.write_int("rsrpResult-r10", meas_result_serv_cell_r10.rsrp_result_r10); j.write_int("rsrqResult-r10", meas_result_serv_cell_r10.rsrq_result_r10); j.end_obj(); if (meas_result_neigh_cells_r10_present) { j.write_fieldname("measResultNeighCells-r10"); j.start_obj(); if (meas_result_neigh_cells_r10.meas_result_list_eutra_r10_present) { j.start_array("measResultListEUTRA-r10"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r10.meas_result_list_eutra_r10.size(); ++i1) { meas_result_neigh_cells_r10.meas_result_list_eutra_r10[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r10.meas_result_list_utra_r10_present) { j.start_array("measResultListUTRA-r10"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r10.meas_result_list_utra_r10.size(); ++i1) { meas_result_neigh_cells_r10.meas_result_list_utra_r10[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r10.meas_result_list_geran_r10_present) { j.start_array("measResultListGERAN-r10"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r10.meas_result_list_geran_r10.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < meas_result_neigh_cells_r10.meas_result_list_geran_r10[i1].size(); ++i2) { meas_result_neigh_cells_r10.meas_result_list_geran_r10[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } if (meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10_present) { j.start_array("measResultListCDMA2000-r10"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10.size(); ++i1) { meas_result_neigh_cells_r10.meas_result_list_cdma2000_r10[i1].to_json(j); } j.end_array(); } j.end_obj(); } if (ext) { rrc_asn1_warn_assert(meas_result_list_eutra_v1090_present != (meas_result_list_eutra_v1090.get() != NULL), __FILE__, __LINE__); if (meas_result_list_eutra_v1090_present) { j.start_array("measResultListEUTRA-v1090"); for (uint32_t i1 = 0; i1 < meas_result_list_eutra_v1090->size(); ++i1) { ((*meas_result_list_eutra_v1090)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_result_list_mbsfn_r12_present != (meas_result_list_mbsfn_r12.get() != NULL), __FILE__, __LINE__); if (meas_result_list_mbsfn_r12_present) { j.start_array("measResultListMBSFN-r12"); for (uint32_t i1 = 0; i1 < meas_result_list_mbsfn_r12->size(); ++i1) { ((*meas_result_list_mbsfn_r12)[i1]).to_json(j); } j.end_array(); } if (meas_result_serv_cell_v1250_present) { j.write_int("measResultServCell-v1250", meas_result_serv_cell_v1250); } rrc_asn1_warn_assert(serv_cell_rsrq_type_r12_present != (serv_cell_rsrq_type_r12.get() != NULL), __FILE__, __LINE__); if (serv_cell_rsrq_type_r12_present) { j.write_fieldname("servCellRSRQ-Type-r12"); serv_cell_rsrq_type_r12->to_json(j); } rrc_asn1_warn_assert(meas_result_list_eutra_v1250_present != (meas_result_list_eutra_v1250.get() != NULL), __FILE__, __LINE__); if (meas_result_list_eutra_v1250_present) { j.start_array("measResultListEUTRA-v1250"); for (uint32_t i1 = 0; i1 < meas_result_list_eutra_v1250->size(); ++i1) { ((*meas_result_list_eutra_v1250)[i1]).to_json(j); } j.end_array(); } if (in_dev_coex_detected_r13_present) { j.write_str("inDeviceCoexDetected-r13", "true"); } if (meas_result_serv_cell_v1360_present) { j.write_int("measResultServCell-v1360", meas_result_serv_cell_v1360); } rrc_asn1_warn_assert(log_meas_result_list_bt_r15_present != (log_meas_result_list_bt_r15.get() != NULL), __FILE__, __LINE__); if (log_meas_result_list_bt_r15_present) { j.start_array("logMeasResultListBT-r15"); for (uint32_t i1 = 0; i1 < log_meas_result_list_bt_r15->size(); ++i1) { ((*log_meas_result_list_bt_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(log_meas_result_list_wlan_r15_present != (log_meas_result_list_wlan_r15.get() != NULL), __FILE__, __LINE__); if (log_meas_result_list_wlan_r15_present) { j.start_array("logMeasResultListWLAN-r15"); for (uint32_t i1 = 0; i1 < log_meas_result_list_wlan_r15->size(); ++i1) { ((*log_meas_result_list_wlan_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // MRDC-AssistanceInfo-r15 ::= SEQUENCE SRSASN_CODE mrdc_assist_info_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_dyn_seq_of(bref, affected_carrier_freq_comb_info_list_mrdc_r15, 1, 128)); return SRSASN_SUCCESS; } SRSASN_CODE mrdc_assist_info_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_dyn_seq_of(affected_carrier_freq_comb_info_list_mrdc_r15, bref, 1, 128)); return SRSASN_SUCCESS; } void mrdc_assist_info_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("affectedCarrierFreqCombInfoListMRDC-r15"); for (uint32_t i1 = 0; i1 < affected_carrier_freq_comb_info_list_mrdc_r15.size(); ++i1) { affected_carrier_freq_comb_info_list_mrdc_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } // MeasResultCellNR-r15 ::= SEQUENCE SRSASN_CODE meas_result_cell_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_rs_idx_list_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci_r15, (uint16_t)0, (uint16_t)1007)); HANDLE_CODE(meas_result_cell_r15.pack(bref)); if (meas_result_rs_idx_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_rs_idx_list_r15, 1, 32)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(cgi_info_r15_present != (cgi_info_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cgi_info_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(cgi_info_r15_present, 1)); if (cgi_info_r15_present) { HANDLE_CODE(cgi_info_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_cell_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_rs_idx_list_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci_r15, bref, (uint16_t)0, (uint16_t)1007)); HANDLE_CODE(meas_result_cell_r15.unpack(bref)); if (meas_result_rs_idx_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_rs_idx_list_r15, bref, 1, 32)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(cgi_info_r15_present, 1)); if (cgi_info_r15_present) { cgi_info_r15 = make_copy_ptr(cgi_info_nr_r15_s()); HANDLE_CODE(cgi_info_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void meas_result_cell_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pci-r15", pci_r15); j.write_fieldname("measResultCell-r15"); meas_result_cell_r15.to_json(j); if (meas_result_rs_idx_list_r15_present) { j.start_array("measResultRS-IndexList-r15"); for (uint32_t i1 = 0; i1 < meas_result_rs_idx_list_r15.size(); ++i1) { meas_result_rs_idx_list_r15[i1].to_json(j); } j.end_array(); } if (ext) { rrc_asn1_warn_assert(cgi_info_r15_present != (cgi_info_r15.get() != NULL), __FILE__, __LINE__); if (cgi_info_r15_present) { j.write_fieldname("cgi-Info-r15"); cgi_info_r15->to_json(j); } } j.end_obj(); } // RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(per_cc_gap_ind_list_r14_present, 1)); HANDLE_CODE(bref.pack(num_freq_effective_r14_present, 1)); HANDLE_CODE(bref.pack(num_freq_effective_reduced_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (per_cc_gap_ind_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, per_cc_gap_ind_list_r14, 1, 32)); } if (num_freq_effective_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, num_freq_effective_r14, (uint8_t)1, (uint8_t)12)); } if (num_freq_effective_reduced_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, num_freq_effective_reduced_r14, (uint8_t)1, (uint8_t)12)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(per_cc_gap_ind_list_r14_present, 1)); HANDLE_CODE(bref.unpack(num_freq_effective_r14_present, 1)); HANDLE_CODE(bref.unpack(num_freq_effective_reduced_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (per_cc_gap_ind_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(per_cc_gap_ind_list_r14, bref, 1, 32)); } if (num_freq_effective_r14_present) { HANDLE_CODE(unpack_unalign_integer(num_freq_effective_r14, bref, (uint8_t)1, (uint8_t)12)); } if (num_freq_effective_reduced_r14_present) { HANDLE_CODE(unpack_unalign_integer(num_freq_effective_reduced_r14, bref, (uint8_t)1, (uint8_t)12)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (per_cc_gap_ind_list_r14_present) { j.start_array("perCC-GapIndicationList-r14"); for (uint32_t i1 = 0; i1 < per_cc_gap_ind_list_r14.size(); ++i1) { per_cc_gap_ind_list_r14[i1].to_json(j); } j.end_array(); } if (num_freq_effective_r14_present) { j.write_int("numFreqEffective-r14", num_freq_effective_r14); } if (num_freq_effective_reduced_r14_present) { j.write_int("numFreqEffectiveReduced-r14", num_freq_effective_reduced_r14); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_complete_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_available_mbsfn_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_available_mbsfn_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_complete_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_available_mbsfn_r12_present) { j.write_str("logMeasAvailableMBSFN-r12", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_v1320_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_mode_b_r13_present, 1)); HANDLE_CODE(bref.pack(s_tmsi_r13_present, 1)); HANDLE_CODE(bref.pack(attach_without_pdn_connect_r13_present, 1)); HANDLE_CODE(bref.pack(up_cio_t_eps_optim_r13_present, 1)); HANDLE_CODE(bref.pack(cp_cio_t_eps_optim_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (s_tmsi_r13_present) { HANDLE_CODE(s_tmsi_r13.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v1320_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_mode_b_r13_present, 1)); HANDLE_CODE(bref.unpack(s_tmsi_r13_present, 1)); HANDLE_CODE(bref.unpack(attach_without_pdn_connect_r13_present, 1)); HANDLE_CODE(bref.unpack(up_cio_t_eps_optim_r13_present, 1)); HANDLE_CODE(bref.unpack(cp_cio_t_eps_optim_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (s_tmsi_r13_present) { HANDLE_CODE(s_tmsi_r13.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_v1320_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ce_mode_b_r13_present) { j.write_str("ce-ModeB-r13", "supported"); } if (s_tmsi_r13_present) { j.write_fieldname("s-TMSI-r13"); s_tmsi_r13.to_json(j); } if (attach_without_pdn_connect_r13_present) { j.write_str("attachWithoutPDN-Connectivity-r13", "true"); } if (up_cio_t_eps_optim_r13_present) { j.write_str("up-CIoT-EPS-Optimisation-r13", "true"); } if (cp_cio_t_eps_optim_r13_present) { j.write_str("cp-CIoT-EPS-Optimisation-r13", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // TrafficPatternInfo-v1530 ::= SEQUENCE SRSASN_CODE traffic_pattern_info_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(traffic_dest_r15_present, 1)); HANDLE_CODE(bref.pack(reliability_info_sl_r15_present, 1)); if (traffic_dest_r15_present) { HANDLE_CODE(traffic_dest_r15.pack(bref)); } if (reliability_info_sl_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, reliability_info_sl_r15, (uint8_t)1, (uint8_t)8)); } return SRSASN_SUCCESS; } SRSASN_CODE traffic_pattern_info_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(traffic_dest_r15_present, 1)); HANDLE_CODE(bref.unpack(reliability_info_sl_r15_present, 1)); if (traffic_dest_r15_present) { HANDLE_CODE(traffic_dest_r15.unpack(bref)); } if (reliability_info_sl_r15_present) { HANDLE_CODE(unpack_unalign_integer(reliability_info_sl_r15, bref, (uint8_t)1, (uint8_t)8)); } return SRSASN_SUCCESS; } void traffic_pattern_info_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (traffic_dest_r15_present) { j.write_str("trafficDestination-r15", traffic_dest_r15.to_string()); } if (reliability_info_sl_r15_present) { j.write_int("reliabilityInfoSL-r15", reliability_info_sl_r15); } j.end_obj(); } // UEInformationResponse-v1530-IEs ::= SEQUENCE SRSASN_CODE ue_info_resp_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_result_list_idle_r15_present, 1)); HANDLE_CODE(bref.pack(flight_path_info_report_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (meas_result_list_idle_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_idle_r15, 1, 3)); } if (flight_path_info_report_r15_present) { HANDLE_CODE(flight_path_info_report_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_result_list_idle_r15_present, 1)); HANDLE_CODE(bref.unpack(flight_path_info_report_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (meas_result_list_idle_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_idle_r15, bref, 1, 3)); } if (flight_path_info_report_r15_present) { HANDLE_CODE(flight_path_info_report_r15.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_resp_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (meas_result_list_idle_r15_present) { j.start_array("measResultListIdle-r15"); for (uint32_t i1 = 0; i1 < meas_result_list_idle_r15.size(); ++i1) { meas_result_list_idle_r15[i1].to_json(j); } j.end_array(); } if (flight_path_info_report_r15_present) { j.write_fieldname("flightPathInfoReport-r15"); flight_path_info_report_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // AffectedCarrierFreq-v1310 ::= SEQUENCE SRSASN_CODE affected_carrier_freq_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_v1310_present, 1)); if (carrier_freq_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_v1310, (uint8_t)33, (uint8_t)64)); } return SRSASN_SUCCESS; } SRSASN_CODE affected_carrier_freq_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_v1310_present, 1)); if (carrier_freq_v1310_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_v1310, bref, (uint8_t)33, (uint8_t)64)); } return SRSASN_SUCCESS; } void affected_carrier_freq_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_v1310_present) { j.write_int("carrierFreq-v1310", carrier_freq_v1310); } j.end_obj(); } // ConnEstFailReport-r11 ::= SEQUENCE SRSASN_CODE conn_est_fail_report_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(location_info_r11_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r11_present, 1)); HANDLE_CODE(bref.pack(meas_result_list_eutra_v1130_present, 1)); HANDLE_CODE(failed_cell_id_r11.pack(bref)); if (location_info_r11_present) { HANDLE_CODE(location_info_r11.pack(bref)); } HANDLE_CODE(bref.pack(meas_result_failed_cell_r11.rsrq_result_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_failed_cell_r11.rsrp_result_r11, (uint8_t)0, (uint8_t)97)); if (meas_result_failed_cell_r11.rsrq_result_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_failed_cell_r11.rsrq_result_r11, (uint8_t)0, (uint8_t)34)); } if (meas_result_neigh_cells_r11_present) { HANDLE_CODE(bref.pack(meas_result_neigh_cells_r11.meas_result_list_eutra_r11_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r11.meas_result_list_utra_r11_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r11.meas_result_list_geran_r11_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r11.meas_results_cdma2000_r11_present, 1)); if (meas_result_neigh_cells_r11.meas_result_list_eutra_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r11.meas_result_list_eutra_r11, 1, 8)); } if (meas_result_neigh_cells_r11.meas_result_list_utra_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r11.meas_result_list_utra_r11, 1, 8)); } if (meas_result_neigh_cells_r11.meas_result_list_geran_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r11.meas_result_list_geran_r11, 1, 8)); } if (meas_result_neigh_cells_r11.meas_results_cdma2000_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r11.meas_results_cdma2000_r11, 1, 8)); } } HANDLE_CODE(pack_unalign_integer(bref, nof_preambs_sent_r11, (uint8_t)1, (uint8_t)200)); HANDLE_CODE(bref.pack(contention_detected_r11, 1)); HANDLE_CODE(bref.pack(max_tx_pwr_reached_r11, 1)); HANDLE_CODE(pack_unalign_integer(bref, time_since_fail_r11, (uint32_t)0, (uint32_t)172800)); if (meas_result_list_eutra_v1130_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_eutra_v1130, 1, 8)); } if (ext) { ext_groups_header group_flags(3); group_flags[0] |= meas_result_failed_cell_v1250_present; rrc_asn1_warn_assert(failed_cell_rsrq_type_r12_present != (failed_cell_rsrq_type_r12.get() != NULL), __FILE__, __LINE__); group_flags[0] |= failed_cell_rsrq_type_r12_present; rrc_asn1_warn_assert(meas_result_list_eutra_v1250_present != (meas_result_list_eutra_v1250.get() != NULL), __FILE__, __LINE__); group_flags[0] |= meas_result_list_eutra_v1250_present; group_flags[1] |= meas_result_failed_cell_v1360_present; rrc_asn1_warn_assert(log_meas_result_list_bt_r15_present != (log_meas_result_list_bt_r15.get() != NULL), __FILE__, __LINE__); group_flags[2] |= log_meas_result_list_bt_r15_present; rrc_asn1_warn_assert(log_meas_result_list_wlan_r15_present != (log_meas_result_list_wlan_r15.get() != NULL), __FILE__, __LINE__); group_flags[2] |= log_meas_result_list_wlan_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_failed_cell_v1250_present, 1)); HANDLE_CODE(bref.pack(failed_cell_rsrq_type_r12_present, 1)); HANDLE_CODE(bref.pack(meas_result_list_eutra_v1250_present, 1)); if (meas_result_failed_cell_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_failed_cell_v1250, (int8_t)-30, (int8_t)46)); } if (failed_cell_rsrq_type_r12_present) { HANDLE_CODE(failed_cell_rsrq_type_r12->pack(bref)); } if (meas_result_list_eutra_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_list_eutra_v1250, 1, 8)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_failed_cell_v1360_present, 1)); if (meas_result_failed_cell_v1360_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_failed_cell_v1360, (int8_t)-17, (int8_t)-1)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(log_meas_result_list_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_result_list_wlan_r15_present, 1)); if (log_meas_result_list_bt_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *log_meas_result_list_bt_r15, 1, 32)); } if (log_meas_result_list_wlan_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *log_meas_result_list_wlan_r15, 1, 32)); } } } return SRSASN_SUCCESS; } SRSASN_CODE conn_est_fail_report_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(location_info_r11_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r11_present, 1)); HANDLE_CODE(bref.unpack(meas_result_list_eutra_v1130_present, 1)); HANDLE_CODE(failed_cell_id_r11.unpack(bref)); if (location_info_r11_present) { HANDLE_CODE(location_info_r11.unpack(bref)); } HANDLE_CODE(bref.unpack(meas_result_failed_cell_r11.rsrq_result_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(meas_result_failed_cell_r11.rsrp_result_r11, bref, (uint8_t)0, (uint8_t)97)); if (meas_result_failed_cell_r11.rsrq_result_r11_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_failed_cell_r11.rsrq_result_r11, bref, (uint8_t)0, (uint8_t)34)); } if (meas_result_neigh_cells_r11_present) { HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r11.meas_result_list_eutra_r11_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r11.meas_result_list_utra_r11_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r11.meas_result_list_geran_r11_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r11.meas_results_cdma2000_r11_present, 1)); if (meas_result_neigh_cells_r11.meas_result_list_eutra_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r11.meas_result_list_eutra_r11, bref, 1, 8)); } if (meas_result_neigh_cells_r11.meas_result_list_utra_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r11.meas_result_list_utra_r11, bref, 1, 8)); } if (meas_result_neigh_cells_r11.meas_result_list_geran_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r11.meas_result_list_geran_r11, bref, 1, 8)); } if (meas_result_neigh_cells_r11.meas_results_cdma2000_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r11.meas_results_cdma2000_r11, bref, 1, 8)); } } HANDLE_CODE(unpack_unalign_integer(nof_preambs_sent_r11, bref, (uint8_t)1, (uint8_t)200)); HANDLE_CODE(bref.unpack(contention_detected_r11, 1)); HANDLE_CODE(bref.unpack(max_tx_pwr_reached_r11, 1)); HANDLE_CODE(unpack_unalign_integer(time_since_fail_r11, bref, (uint32_t)0, (uint32_t)172800)); if (meas_result_list_eutra_v1130_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_eutra_v1130, bref, 1, 8)); } if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_failed_cell_v1250_present, 1)); HANDLE_CODE(bref.unpack(failed_cell_rsrq_type_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_result_list_eutra_v1250_present, 1)); if (meas_result_failed_cell_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_failed_cell_v1250, bref, (int8_t)-30, (int8_t)46)); } if (failed_cell_rsrq_type_r12_present) { failed_cell_rsrq_type_r12 = make_copy_ptr(rsrq_type_r12_s()); HANDLE_CODE(failed_cell_rsrq_type_r12->unpack(bref)); } if (meas_result_list_eutra_v1250_present) { meas_result_list_eutra_v1250 = make_copy_ptr(meas_result_list2_eutra_v1250_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_list_eutra_v1250, bref, 1, 8)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_failed_cell_v1360_present, 1)); if (meas_result_failed_cell_v1360_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_failed_cell_v1360, bref, (int8_t)-17, (int8_t)-1)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(log_meas_result_list_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_result_list_wlan_r15_present, 1)); if (log_meas_result_list_bt_r15_present) { log_meas_result_list_bt_r15 = make_copy_ptr(log_meas_result_list_bt_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*log_meas_result_list_bt_r15, bref, 1, 32)); } if (log_meas_result_list_wlan_r15_present) { log_meas_result_list_wlan_r15 = make_copy_ptr(log_meas_result_list_wlan_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*log_meas_result_list_wlan_r15, bref, 1, 32)); } } } return SRSASN_SUCCESS; } void conn_est_fail_report_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("failedCellId-r11"); failed_cell_id_r11.to_json(j); if (location_info_r11_present) { j.write_fieldname("locationInfo-r11"); location_info_r11.to_json(j); } j.write_fieldname("measResultFailedCell-r11"); j.start_obj(); j.write_int("rsrpResult-r11", meas_result_failed_cell_r11.rsrp_result_r11); if (meas_result_failed_cell_r11.rsrq_result_r11_present) { j.write_int("rsrqResult-r11", meas_result_failed_cell_r11.rsrq_result_r11); } j.end_obj(); if (meas_result_neigh_cells_r11_present) { j.write_fieldname("measResultNeighCells-r11"); j.start_obj(); if (meas_result_neigh_cells_r11.meas_result_list_eutra_r11_present) { j.start_array("measResultListEUTRA-r11"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r11.meas_result_list_eutra_r11.size(); ++i1) { meas_result_neigh_cells_r11.meas_result_list_eutra_r11[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r11.meas_result_list_utra_r11_present) { j.start_array("measResultListUTRA-r11"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r11.meas_result_list_utra_r11.size(); ++i1) { meas_result_neigh_cells_r11.meas_result_list_utra_r11[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r11.meas_result_list_geran_r11_present) { j.start_array("measResultListGERAN-r11"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r11.meas_result_list_geran_r11.size(); ++i1) { meas_result_neigh_cells_r11.meas_result_list_geran_r11[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r11.meas_results_cdma2000_r11_present) { j.start_array("measResultsCDMA2000-r11"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r11.meas_results_cdma2000_r11.size(); ++i1) { meas_result_neigh_cells_r11.meas_results_cdma2000_r11[i1].to_json(j); } j.end_array(); } j.end_obj(); } j.write_int("numberOfPreamblesSent-r11", nof_preambs_sent_r11); j.write_bool("contentionDetected-r11", contention_detected_r11); j.write_bool("maxTxPowerReached-r11", max_tx_pwr_reached_r11); j.write_int("timeSinceFailure-r11", time_since_fail_r11); if (meas_result_list_eutra_v1130_present) { j.start_array("measResultListEUTRA-v1130"); for (uint32_t i1 = 0; i1 < meas_result_list_eutra_v1130.size(); ++i1) { meas_result_list_eutra_v1130[i1].to_json(j); } j.end_array(); } if (ext) { if (meas_result_failed_cell_v1250_present) { j.write_int("measResultFailedCell-v1250", meas_result_failed_cell_v1250); } rrc_asn1_warn_assert(failed_cell_rsrq_type_r12_present != (failed_cell_rsrq_type_r12.get() != NULL), __FILE__, __LINE__); if (failed_cell_rsrq_type_r12_present) { j.write_fieldname("failedCellRSRQ-Type-r12"); failed_cell_rsrq_type_r12->to_json(j); } rrc_asn1_warn_assert(meas_result_list_eutra_v1250_present != (meas_result_list_eutra_v1250.get() != NULL), __FILE__, __LINE__); if (meas_result_list_eutra_v1250_present) { j.start_array("measResultListEUTRA-v1250"); for (uint32_t i1 = 0; i1 < meas_result_list_eutra_v1250->size(); ++i1) { ((*meas_result_list_eutra_v1250)[i1]).to_json(j); } j.end_array(); } if (meas_result_failed_cell_v1360_present) { j.write_int("measResultFailedCell-v1360", meas_result_failed_cell_v1360); } rrc_asn1_warn_assert(log_meas_result_list_bt_r15_present != (log_meas_result_list_bt_r15.get() != NULL), __FILE__, __LINE__); if (log_meas_result_list_bt_r15_present) { j.start_array("logMeasResultListBT-r15"); for (uint32_t i1 = 0; i1 < log_meas_result_list_bt_r15->size(); ++i1) { ((*log_meas_result_list_bt_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(log_meas_result_list_wlan_r15_present != (log_meas_result_list_wlan_r15.get() != NULL), __FILE__, __LINE__); if (log_meas_result_list_wlan_r15_present) { j.start_array("logMeasResultListWLAN-r15"); for (uint32_t i1 = 0; i1 < log_meas_result_list_wlan_r15->size(); ++i1) { ((*log_meas_result_list_wlan_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // DRB-CountInfo ::= SEQUENCE SRSASN_CODE drb_count_info_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, drb_id, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, count_ul, (uint32_t)0, (uint32_t)4294967295)); HANDLE_CODE(pack_unalign_integer(bref, count_dl, (uint32_t)0, (uint32_t)4294967295)); return SRSASN_SUCCESS; } SRSASN_CODE drb_count_info_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(drb_id, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(count_ul, bref, (uint32_t)0, (uint32_t)4294967295)); HANDLE_CODE(unpack_unalign_integer(count_dl, bref, (uint32_t)0, (uint32_t)4294967295)); return SRSASN_SUCCESS; } void drb_count_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("drb-Identity", drb_id); j.write_int("count-Uplink", count_ul); j.write_int("count-Downlink", count_dl); j.end_obj(); } // InDeviceCoexIndication-v1530-IEs ::= SEQUENCE SRSASN_CODE in_dev_coex_ind_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mrdc_assist_info_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mrdc_assist_info_r15_present) { HANDLE_CODE(mrdc_assist_info_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE in_dev_coex_ind_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mrdc_assist_info_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mrdc_assist_info_r15_present) { HANDLE_CODE(mrdc_assist_info_r15.unpack(bref)); } return SRSASN_SUCCESS; } void in_dev_coex_ind_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mrdc_assist_info_r15_present) { j.write_fieldname("mrdc-AssistanceInfo-r15"); mrdc_assist_info_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_available_mbsfn_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_available_mbsfn_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_available_mbsfn_r12_present) { j.write_str("logMeasAvailableMBSFN-r12", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_complete_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(conn_est_fail_info_available_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(conn_est_fail_info_available_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_complete_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (conn_est_fail_info_available_r11_present) { j.write_str("connEstFailInfoAvailable-r11", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mob_state_r12_present, 1)); HANDLE_CODE(bref.pack(mob_history_avail_r12_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_mbsfn_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mob_state_r12_present) { HANDLE_CODE(pack_enum(bref, mob_state_r12)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mob_state_r12_present, 1)); HANDLE_CODE(bref.unpack(mob_history_avail_r12_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_mbsfn_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mob_state_r12_present) { HANDLE_CODE(unpack_enum(mob_state_r12, bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mob_state_r12_present) { j.write_str("mobilityState-r12", mob_state_r12.to_string()); } if (mob_history_avail_r12_present) { j.write_str("mobilityHistoryAvail-r12", "true"); } if (log_meas_available_mbsfn_r12_present) { j.write_str("logMeasAvailableMBSFN-r12", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE SRSASN_CODE sl_v2x_comm_tx_res_req_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_comm_tx_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_type_tx_sync_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_dest_info_list_r14_present, 1)); if (carrier_freq_comm_tx_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_comm_tx_r14, (uint8_t)0, (uint8_t)7)); } if (v2x_type_tx_sync_r14_present) { HANDLE_CODE(pack_enum(bref, v2x_type_tx_sync_r14)); } if (v2x_dest_info_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_dest_info_list_r14, 1, 16)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_comm_tx_res_req_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_comm_tx_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_type_tx_sync_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_dest_info_list_r14_present, 1)); if (carrier_freq_comm_tx_r14_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_comm_tx_r14, bref, (uint8_t)0, (uint8_t)7)); } if (v2x_type_tx_sync_r14_present) { HANDLE_CODE(unpack_enum(v2x_type_tx_sync_r14, bref)); } if (v2x_dest_info_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_dest_info_list_r14, bref, 1, 16)); } return SRSASN_SUCCESS; } void sl_v2x_comm_tx_res_req_r14_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_comm_tx_r14_present) { j.write_int("carrierFreqCommTx-r14", carrier_freq_comm_tx_r14); } if (v2x_type_tx_sync_r14_present) { j.write_str("v2x-TypeTxSync-r14", v2x_type_tx_sync_r14.to_string()); } if (v2x_dest_info_list_r14_present) { j.start_array("v2x-DestinationInfoList-r14"); for (uint32_t i1 = 0; i1 < v2x_dest_info_list_r14.size(); ++i1) { j.write_str(v2x_dest_info_list_r14[i1].to_string()); } j.end_array(); } j.end_obj(); } // UEInformationResponse-v1250-IEs ::= SEQUENCE SRSASN_CODE ue_info_resp_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mob_history_report_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mob_history_report_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mob_history_report_r12, 1, 16)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mob_history_report_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mob_history_report_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(mob_history_report_r12, bref, 1, 16)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_resp_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mob_history_report_r12_present) { j.start_array("mobilityHistoryReport-r12"); for (uint32_t i1 = 0; i1 < mob_history_report_r12.size(); ++i1) { mob_history_report_r12[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // FailureReportSCG-v12d0 ::= SEQUENCE SRSASN_CODE fail_report_scg_v12d0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_result_neigh_cells_v12d0_present, 1)); if (meas_result_neigh_cells_v12d0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_v12d0, 1, 8)); } return SRSASN_SUCCESS; } SRSASN_CODE fail_report_scg_v12d0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_result_neigh_cells_v12d0_present, 1)); if (meas_result_neigh_cells_v12d0_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_v12d0, bref, 1, 8)); } return SRSASN_SUCCESS; } void fail_report_scg_v12d0_s::to_json(json_writer& j) const { j.start_obj(); if (meas_result_neigh_cells_v12d0_present) { j.start_array("measResultNeighCells-v12d0"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_v12d0.size(); ++i1) { meas_result_neigh_cells_v12d0[i1].to_json(j); } j.end_array(); } j.end_obj(); } // IDC-SubframePattern-r11 ::= CHOICE void idc_sf_pattern_r11_c::destroy_() { switch (type_) { case types::sf_pattern_fdd_r11: c.destroy >(); break; case types::sf_pattern_tdd_r11: c.destroy(); break; default: break; } } void idc_sf_pattern_r11_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sf_pattern_fdd_r11: c.init >(); break; case types::sf_pattern_tdd_r11: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c"); } } idc_sf_pattern_r11_c::idc_sf_pattern_r11_c(const idc_sf_pattern_r11_c& other) { type_ = other.type(); switch (type_) { case types::sf_pattern_fdd_r11: c.init(other.c.get >()); break; case types::sf_pattern_tdd_r11: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c"); } } idc_sf_pattern_r11_c& idc_sf_pattern_r11_c::operator=(const idc_sf_pattern_r11_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf_pattern_fdd_r11: c.set(other.c.get >()); break; case types::sf_pattern_tdd_r11: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c"); } return *this; } void idc_sf_pattern_r11_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf_pattern_fdd_r11: j.write_str("subframePatternFDD-r11", c.get >().to_string()); break; case types::sf_pattern_tdd_r11: j.write_fieldname("subframePatternTDD-r11"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c"); } j.end_obj(); } SRSASN_CODE idc_sf_pattern_r11_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf_pattern_fdd_r11: HANDLE_CODE(c.get >().pack(bref)); break; case types::sf_pattern_tdd_r11: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE idc_sf_pattern_r11_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf_pattern_fdd_r11: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sf_pattern_tdd_r11: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::destroy_() { switch (type_) { case types::sf_cfg0_r11: c.destroy >(); break; case types::sf_cfg1_minus5_r11: c.destroy >(); break; case types::sf_cfg6_r11: c.destroy >(); break; default: break; } } void idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::sf_cfg0_r11: c.init >(); break; case types::sf_cfg1_minus5_r11: c.init >(); break; case types::sf_cfg6_r11: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_"); } } idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::sf_pattern_tdd_r11_c_( const idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_& other) { type_ = other.type(); switch (type_) { case types::sf_cfg0_r11: c.init(other.c.get >()); break; case types::sf_cfg1_minus5_r11: c.init(other.c.get >()); break; case types::sf_cfg6_r11: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_"); } } idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_& idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_:: operator=(const idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::sf_cfg0_r11: c.set(other.c.get >()); break; case types::sf_cfg1_minus5_r11: c.set(other.c.get >()); break; case types::sf_cfg6_r11: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_"); } return *this; } void idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sf_cfg0_r11: j.write_str("subframeConfig0-r11", c.get >().to_string()); break; case types::sf_cfg1_minus5_r11: j.write_str("subframeConfig1-5-r11", c.get >().to_string()); break; case types::sf_cfg6_r11: j.write_str("subframeConfig6-r11", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_"); } j.end_obj(); } SRSASN_CODE idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sf_cfg0_r11: HANDLE_CODE(c.get >().pack(bref)); break; case types::sf_cfg1_minus5_r11: HANDLE_CODE(c.get >().pack(bref)); break; case types::sf_cfg6_r11: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sf_cfg0_r11: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sf_cfg1_minus5_r11: HANDLE_CODE(c.get >().unpack(bref)); break; case types::sf_cfg6_r11: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // InDeviceCoexIndication-v1360-IEs ::= SEQUENCE SRSASN_CODE in_dev_coex_ind_v1360_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(hardware_sharing_problem_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE in_dev_coex_ind_v1360_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(hardware_sharing_problem_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void in_dev_coex_ind_v1360_ies_s::to_json(json_writer& j) const { j.start_obj(); if (hardware_sharing_problem_r13_present) { j.write_str("hardwareSharingProblem-r13", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // LogMeasReport-r10 ::= SEQUENCE SRSASN_CODE log_meas_report_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(log_meas_available_r10_present, 1)); HANDLE_CODE(absolute_time_stamp_r10.pack(bref)); HANDLE_CODE(trace_ref_r10.pack(bref)); HANDLE_CODE(trace_recording_session_ref_r10.pack(bref)); HANDLE_CODE(tce_id_r10.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, log_meas_info_list_r10, 1, 520)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= log_meas_available_bt_r15_present; group_flags[0] |= log_meas_available_wlan_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_wlan_r15_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE log_meas_report_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(log_meas_available_r10_present, 1)); HANDLE_CODE(absolute_time_stamp_r10.unpack(bref)); HANDLE_CODE(trace_ref_r10.unpack(bref)); HANDLE_CODE(trace_recording_session_ref_r10.unpack(bref)); HANDLE_CODE(tce_id_r10.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(log_meas_info_list_r10, bref, 1, 520)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_wlan_r15_present, 1)); } } return SRSASN_SUCCESS; } void log_meas_report_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("absoluteTimeStamp-r10", absolute_time_stamp_r10.to_string()); j.write_fieldname("traceReference-r10"); trace_ref_r10.to_json(j); j.write_str("traceRecordingSessionRef-r10", trace_recording_session_ref_r10.to_string()); j.write_str("tce-Id-r10", tce_id_r10.to_string()); j.start_array("logMeasInfoList-r10"); for (uint32_t i1 = 0; i1 < log_meas_info_list_r10.size(); ++i1) { log_meas_info_list_r10[i1].to_json(j); } j.end_array(); if (log_meas_available_r10_present) { j.write_str("logMeasAvailable-r10", "true"); } if (ext) { if (log_meas_available_bt_r15_present) { j.write_str("logMeasAvailableBT-r15", "true"); } if (log_meas_available_wlan_r15_present) { j.write_str("logMeasAvailableWLAN-r15", "true"); } } j.end_obj(); } // MBMS-ServiceInfo-r13 ::= SEQUENCE SRSASN_CODE mbms_service_info_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(tmgi_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_service_info_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(tmgi_r13.unpack(bref)); return SRSASN_SUCCESS; } void mbms_service_info_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("tmgi-r13"); tmgi_r13.to_json(j); j.end_obj(); } // MeasResultCBR-r14 ::= SEQUENCE SRSASN_CODE meas_result_cbr_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cbr_pscch_r14_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pool_id_r14, (uint8_t)1, (uint8_t)72)); HANDLE_CODE(pack_unalign_integer(bref, cbr_pssch_r14, (uint8_t)0, (uint8_t)100)); if (cbr_pscch_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, cbr_pscch_r14, (uint8_t)0, (uint8_t)100)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_cbr_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cbr_pscch_r14_present, 1)); HANDLE_CODE(unpack_unalign_integer(pool_id_r14, bref, (uint8_t)1, (uint8_t)72)); HANDLE_CODE(unpack_unalign_integer(cbr_pssch_r14, bref, (uint8_t)0, (uint8_t)100)); if (cbr_pscch_r14_present) { HANDLE_CODE(unpack_unalign_integer(cbr_pscch_r14, bref, (uint8_t)0, (uint8_t)100)); } return SRSASN_SUCCESS; } void meas_result_cbr_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("poolIdentity-r14", pool_id_r14); j.write_int("cbr-PSSCH-r14", cbr_pssch_r14); if (cbr_pscch_r14_present) { j.write_int("cbr-PSCCH-r14", cbr_pscch_r14); } j.end_obj(); } // MeasResultCSI-RS-r12 ::= SEQUENCE SRSASN_CODE meas_result_csi_rs_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, meas_csi_rs_id_r12, (uint8_t)1, (uint8_t)96)); HANDLE_CODE(pack_unalign_integer(bref, csi_rsrp_result_r12, (uint8_t)0, (uint8_t)97)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_csi_rs_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(meas_csi_rs_id_r12, bref, (uint8_t)1, (uint8_t)96)); HANDLE_CODE(unpack_unalign_integer(csi_rsrp_result_r12, bref, (uint8_t)0, (uint8_t)97)); return SRSASN_SUCCESS; } void meas_result_csi_rs_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measCSI-RS-Id-r12", meas_csi_rs_id_r12); j.write_int("csi-RSRP-Result-r12", csi_rsrp_result_r12); j.end_obj(); } // MeasResultCellSFTD-r15 ::= SEQUENCE SRSASN_CODE meas_result_cell_sftd_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rsrp_result_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci_r15, (uint16_t)0, (uint16_t)1007)); HANDLE_CODE(pack_unalign_integer(bref, sfn_offset_result_r15, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(pack_unalign_integer(bref, frame_boundary_offset_result_r15, (int16_t)-30720, (int16_t)30719)); if (rsrp_result_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, rsrp_result_r15, (uint8_t)0, (uint8_t)127)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_cell_sftd_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rsrp_result_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci_r15, bref, (uint16_t)0, (uint16_t)1007)); HANDLE_CODE(unpack_unalign_integer(sfn_offset_result_r15, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(unpack_unalign_integer(frame_boundary_offset_result_r15, bref, (int16_t)-30720, (int16_t)30719)); if (rsrp_result_r15_present) { HANDLE_CODE(unpack_unalign_integer(rsrp_result_r15, bref, (uint8_t)0, (uint8_t)127)); } return SRSASN_SUCCESS; } void meas_result_cell_sftd_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r15", pci_r15); j.write_int("sfn-OffsetResult-r15", sfn_offset_result_r15); j.write_int("frameBoundaryOffsetResult-r15", frame_boundary_offset_result_r15); if (rsrp_result_r15_present) { j.write_int("rsrpResult-r15", rsrp_result_r15); } j.end_obj(); } // MeasResultFreqFailNR-r15 ::= SEQUENCE SRSASN_CODE meas_result_freq_fail_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_cell_list_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r15, (uint32_t)0, (uint32_t)3279165)); if (meas_result_cell_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_cell_list_r15, 1, 8)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_freq_fail_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_cell_list_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r15, bref, (uint32_t)0, (uint32_t)3279165)); if (meas_result_cell_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_cell_list_r15, bref, 1, 8)); } return SRSASN_SUCCESS; } void meas_result_freq_fail_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r15", carrier_freq_r15); if (meas_result_cell_list_r15_present) { j.start_array("measResultCellList-r15"); for (uint32_t i1 = 0; i1 < meas_result_cell_list_r15.size(); ++i1) { meas_result_cell_list_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // MeasResultServFreq-r10 ::= SEQUENCE SRSASN_CODE meas_result_serv_freq_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_scell_r10_present, 1)); HANDLE_CODE(bref.pack(meas_result_best_neigh_cell_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, serv_freq_id_r10, (uint8_t)0, (uint8_t)7)); if (meas_result_scell_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_r10.rsrp_result_scell_r10, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_r10.rsrq_result_scell_r10, (uint8_t)0, (uint8_t)34)); } if (meas_result_best_neigh_cell_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_best_neigh_cell_r10.pci_r10, (uint16_t)0, (uint16_t)503)); HANDLE_CODE( pack_unalign_integer(bref, meas_result_best_neigh_cell_r10.rsrp_result_ncell_r10, (uint8_t)0, (uint8_t)97)); HANDLE_CODE( pack_unalign_integer(bref, meas_result_best_neigh_cell_r10.rsrq_result_ncell_r10, (uint8_t)0, (uint8_t)34)); } if (ext) { ext_groups_header group_flags(2); group_flags[0] |= meas_result_scell_v1250_present; group_flags[0] |= meas_result_best_neigh_cell_v1250_present; rrc_asn1_warn_assert(meas_result_scell_v1310_present != (meas_result_scell_v1310.get() != NULL), __FILE__, __LINE__); group_flags[1] |= meas_result_scell_v1310_present; rrc_asn1_warn_assert(meas_result_best_neigh_cell_v1310_present != (meas_result_best_neigh_cell_v1310.get() != NULL), __FILE__, __LINE__); group_flags[1] |= meas_result_best_neigh_cell_v1310_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_scell_v1250_present, 1)); HANDLE_CODE(bref.pack(meas_result_best_neigh_cell_v1250_present, 1)); if (meas_result_scell_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_v1250, (int8_t)-30, (int8_t)46)); } if (meas_result_best_neigh_cell_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_best_neigh_cell_v1250, (int8_t)-30, (int8_t)46)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_scell_v1310_present, 1)); HANDLE_CODE(bref.pack(meas_result_best_neigh_cell_v1310_present, 1)); if (meas_result_scell_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_v1310->rs_sinr_result_r13, (uint8_t)0, (uint8_t)127)); } if (meas_result_best_neigh_cell_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_best_neigh_cell_v1310->rs_sinr_result_r13, (uint8_t)0, (uint8_t)127)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_serv_freq_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_scell_r10_present, 1)); HANDLE_CODE(bref.unpack(meas_result_best_neigh_cell_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(serv_freq_id_r10, bref, (uint8_t)0, (uint8_t)7)); if (meas_result_scell_r10_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_scell_r10.rsrp_result_scell_r10, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(meas_result_scell_r10.rsrq_result_scell_r10, bref, (uint8_t)0, (uint8_t)34)); } if (meas_result_best_neigh_cell_r10_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_best_neigh_cell_r10.pci_r10, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE( unpack_unalign_integer(meas_result_best_neigh_cell_r10.rsrp_result_ncell_r10, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE( unpack_unalign_integer(meas_result_best_neigh_cell_r10.rsrq_result_ncell_r10, bref, (uint8_t)0, (uint8_t)34)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_scell_v1250_present, 1)); HANDLE_CODE(bref.unpack(meas_result_best_neigh_cell_v1250_present, 1)); if (meas_result_scell_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_scell_v1250, bref, (int8_t)-30, (int8_t)46)); } if (meas_result_best_neigh_cell_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_best_neigh_cell_v1250, bref, (int8_t)-30, (int8_t)46)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_scell_v1310_present, 1)); HANDLE_CODE(bref.unpack(meas_result_best_neigh_cell_v1310_present, 1)); if (meas_result_scell_v1310_present) { meas_result_scell_v1310 = make_copy_ptr(meas_result_scell_v1310_s_()); HANDLE_CODE( unpack_unalign_integer(meas_result_scell_v1310->rs_sinr_result_r13, bref, (uint8_t)0, (uint8_t)127)); } if (meas_result_best_neigh_cell_v1310_present) { meas_result_best_neigh_cell_v1310 = make_copy_ptr(meas_result_best_neigh_cell_v1310_s_()); HANDLE_CODE(unpack_unalign_integer(meas_result_best_neigh_cell_v1310->rs_sinr_result_r13, bref, (uint8_t)0, (uint8_t)127)); } } } return SRSASN_SUCCESS; } void meas_result_serv_freq_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("servFreqId-r10", serv_freq_id_r10); if (meas_result_scell_r10_present) { j.write_fieldname("measResultSCell-r10"); j.start_obj(); j.write_int("rsrpResultSCell-r10", meas_result_scell_r10.rsrp_result_scell_r10); j.write_int("rsrqResultSCell-r10", meas_result_scell_r10.rsrq_result_scell_r10); j.end_obj(); } if (meas_result_best_neigh_cell_r10_present) { j.write_fieldname("measResultBestNeighCell-r10"); j.start_obj(); j.write_int("physCellId-r10", meas_result_best_neigh_cell_r10.pci_r10); j.write_int("rsrpResultNCell-r10", meas_result_best_neigh_cell_r10.rsrp_result_ncell_r10); j.write_int("rsrqResultNCell-r10", meas_result_best_neigh_cell_r10.rsrq_result_ncell_r10); j.end_obj(); } if (ext) { if (meas_result_scell_v1250_present) { j.write_int("measResultSCell-v1250", meas_result_scell_v1250); } if (meas_result_best_neigh_cell_v1250_present) { j.write_int("measResultBestNeighCell-v1250", meas_result_best_neigh_cell_v1250); } rrc_asn1_warn_assert(meas_result_scell_v1310_present != (meas_result_scell_v1310.get() != NULL), __FILE__, __LINE__); if (meas_result_scell_v1310_present) { j.write_fieldname("measResultSCell-v1310"); j.start_obj(); j.write_int("rs-sinr-Result-r13", meas_result_scell_v1310->rs_sinr_result_r13); j.end_obj(); } rrc_asn1_warn_assert(meas_result_best_neigh_cell_v1310_present != (meas_result_best_neigh_cell_v1310.get() != NULL), __FILE__, __LINE__); if (meas_result_best_neigh_cell_v1310_present) { j.write_fieldname("measResultBestNeighCell-v1310"); j.start_obj(); j.write_int("rs-sinr-Result-r13", meas_result_best_neigh_cell_v1310->rs_sinr_result_r13); j.end_obj(); } } j.end_obj(); } // MeasResultServFreq-r13 ::= SEQUENCE SRSASN_CODE meas_result_serv_freq_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_scell_r13_present, 1)); HANDLE_CODE(bref.pack(meas_result_best_neigh_cell_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, serv_freq_id_r13, (uint8_t)0, (uint8_t)31)); if (meas_result_scell_r13_present) { HANDLE_CODE(bref.pack(meas_result_scell_r13.rs_sinr_result_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_r13.rsrp_result_scell_r13, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_r13.rsrq_result_scell_r13, (int8_t)-30, (int8_t)46)); if (meas_result_scell_r13.rs_sinr_result_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_r13.rs_sinr_result_r13, (uint8_t)0, (uint8_t)127)); } } if (meas_result_best_neigh_cell_r13_present) { HANDLE_CODE(bref.pack(meas_result_best_neigh_cell_r13.rs_sinr_result_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_best_neigh_cell_r13.pci_r13, (uint16_t)0, (uint16_t)503)); HANDLE_CODE( pack_unalign_integer(bref, meas_result_best_neigh_cell_r13.rsrp_result_ncell_r13, (uint8_t)0, (uint8_t)97)); HANDLE_CODE( pack_unalign_integer(bref, meas_result_best_neigh_cell_r13.rsrq_result_ncell_r13, (int8_t)-30, (int8_t)46)); if (meas_result_best_neigh_cell_r13.rs_sinr_result_r13_present) { HANDLE_CODE( pack_unalign_integer(bref, meas_result_best_neigh_cell_r13.rs_sinr_result_r13, (uint8_t)0, (uint8_t)127)); } } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(meas_result_best_neigh_cell_v1360_present != (meas_result_best_neigh_cell_v1360.get() != NULL), __FILE__, __LINE__); group_flags[0] |= meas_result_best_neigh_cell_v1360_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_best_neigh_cell_v1360_present, 1)); if (meas_result_best_neigh_cell_v1360_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_best_neigh_cell_v1360->rsrp_result_ncell_v1360, (int8_t)-17, (int8_t)-1)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_serv_freq_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_scell_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_result_best_neigh_cell_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(serv_freq_id_r13, bref, (uint8_t)0, (uint8_t)31)); if (meas_result_scell_r13_present) { HANDLE_CODE(bref.unpack(meas_result_scell_r13.rs_sinr_result_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(meas_result_scell_r13.rsrp_result_scell_r13, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(meas_result_scell_r13.rsrq_result_scell_r13, bref, (int8_t)-30, (int8_t)46)); if (meas_result_scell_r13.rs_sinr_result_r13_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_scell_r13.rs_sinr_result_r13, bref, (uint8_t)0, (uint8_t)127)); } } if (meas_result_best_neigh_cell_r13_present) { HANDLE_CODE(bref.unpack(meas_result_best_neigh_cell_r13.rs_sinr_result_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(meas_result_best_neigh_cell_r13.pci_r13, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE( unpack_unalign_integer(meas_result_best_neigh_cell_r13.rsrp_result_ncell_r13, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE( unpack_unalign_integer(meas_result_best_neigh_cell_r13.rsrq_result_ncell_r13, bref, (int8_t)-30, (int8_t)46)); if (meas_result_best_neigh_cell_r13.rs_sinr_result_r13_present) { HANDLE_CODE( unpack_unalign_integer(meas_result_best_neigh_cell_r13.rs_sinr_result_r13, bref, (uint8_t)0, (uint8_t)127)); } } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_best_neigh_cell_v1360_present, 1)); if (meas_result_best_neigh_cell_v1360_present) { meas_result_best_neigh_cell_v1360 = make_copy_ptr(meas_result_best_neigh_cell_v1360_s_()); HANDLE_CODE(unpack_unalign_integer(meas_result_best_neigh_cell_v1360->rsrp_result_ncell_v1360, bref, (int8_t)-17, (int8_t)-1)); } } } return SRSASN_SUCCESS; } void meas_result_serv_freq_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("servFreqId-r13", serv_freq_id_r13); if (meas_result_scell_r13_present) { j.write_fieldname("measResultSCell-r13"); j.start_obj(); j.write_int("rsrpResultSCell-r13", meas_result_scell_r13.rsrp_result_scell_r13); j.write_int("rsrqResultSCell-r13", meas_result_scell_r13.rsrq_result_scell_r13); if (meas_result_scell_r13.rs_sinr_result_r13_present) { j.write_int("rs-sinr-Result-r13", meas_result_scell_r13.rs_sinr_result_r13); } j.end_obj(); } if (meas_result_best_neigh_cell_r13_present) { j.write_fieldname("measResultBestNeighCell-r13"); j.start_obj(); j.write_int("physCellId-r13", meas_result_best_neigh_cell_r13.pci_r13); j.write_int("rsrpResultNCell-r13", meas_result_best_neigh_cell_r13.rsrp_result_ncell_r13); j.write_int("rsrqResultNCell-r13", meas_result_best_neigh_cell_r13.rsrq_result_ncell_r13); if (meas_result_best_neigh_cell_r13.rs_sinr_result_r13_present) { j.write_int("rs-sinr-Result-r13", meas_result_best_neigh_cell_r13.rs_sinr_result_r13); } j.end_obj(); } if (ext) { rrc_asn1_warn_assert(meas_result_best_neigh_cell_v1360_present != (meas_result_best_neigh_cell_v1360.get() != NULL), __FILE__, __LINE__); if (meas_result_best_neigh_cell_v1360_present) { j.write_fieldname("measResultBestNeighCell-v1360"); j.start_obj(); j.write_int("rsrpResultNCell-v1360", meas_result_best_neigh_cell_v1360->rsrp_result_ncell_v1360); j.end_obj(); } } j.end_obj(); } // MeasResultServFreqNR-r15 ::= SEQUENCE SRSASN_CODE meas_result_serv_freq_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_scell_r15_present, 1)); HANDLE_CODE(bref.pack(meas_result_best_neigh_cell_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r15, (uint32_t)0, (uint32_t)3279165)); if (meas_result_scell_r15_present) { HANDLE_CODE(meas_result_scell_r15.pack(bref)); } if (meas_result_best_neigh_cell_r15_present) { HANDLE_CODE(meas_result_best_neigh_cell_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_serv_freq_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(meas_result_best_neigh_cell_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r15, bref, (uint32_t)0, (uint32_t)3279165)); if (meas_result_scell_r15_present) { HANDLE_CODE(meas_result_scell_r15.unpack(bref)); } if (meas_result_best_neigh_cell_r15_present) { HANDLE_CODE(meas_result_best_neigh_cell_r15.unpack(bref)); } return SRSASN_SUCCESS; } void meas_result_serv_freq_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r15", carrier_freq_r15); if (meas_result_scell_r15_present) { j.write_fieldname("measResultSCell-r15"); meas_result_scell_r15.to_json(j); } if (meas_result_best_neigh_cell_r15_present) { j.write_fieldname("measResultBestNeighCell-r15"); meas_result_best_neigh_cell_r15.to_json(j); } j.end_obj(); } // MeasResultWLAN-r13 ::= SEQUENCE SRSASN_CODE meas_result_wlan_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(carrier_info_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(band_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(available_admission_capacity_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(backhaul_dl_bw_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(backhaul_ul_bw_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(ch_utilization_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(station_count_wlan_r13_present, 1)); HANDLE_CODE(bref.pack(connected_wlan_r13_present, 1)); HANDLE_CODE(wlan_ids_r13.pack(bref)); if (carrier_info_wlan_r13_present) { HANDLE_CODE(carrier_info_wlan_r13.pack(bref)); } if (band_wlan_r13_present) { HANDLE_CODE(pack_enum(bref, band_wlan_r13)); } HANDLE_CODE(pack_unalign_integer(bref, rssi_wlan_r13, (uint8_t)0, (uint8_t)141)); if (available_admission_capacity_wlan_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, available_admission_capacity_wlan_r13, (uint16_t)0, (uint16_t)31250)); } if (backhaul_dl_bw_wlan_r13_present) { HANDLE_CODE(pack_enum(bref, backhaul_dl_bw_wlan_r13)); } if (backhaul_ul_bw_wlan_r13_present) { HANDLE_CODE(pack_enum(bref, backhaul_ul_bw_wlan_r13)); } if (ch_utilization_wlan_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, ch_utilization_wlan_r13, (uint8_t)0, (uint8_t)255)); } if (station_count_wlan_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, station_count_wlan_r13, (uint16_t)0, (uint16_t)65535)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_wlan_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(carrier_info_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(band_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(available_admission_capacity_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(backhaul_dl_bw_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(backhaul_ul_bw_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(ch_utilization_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(station_count_wlan_r13_present, 1)); HANDLE_CODE(bref.unpack(connected_wlan_r13_present, 1)); HANDLE_CODE(wlan_ids_r13.unpack(bref)); if (carrier_info_wlan_r13_present) { HANDLE_CODE(carrier_info_wlan_r13.unpack(bref)); } if (band_wlan_r13_present) { HANDLE_CODE(unpack_enum(band_wlan_r13, bref)); } HANDLE_CODE(unpack_unalign_integer(rssi_wlan_r13, bref, (uint8_t)0, (uint8_t)141)); if (available_admission_capacity_wlan_r13_present) { HANDLE_CODE(unpack_unalign_integer(available_admission_capacity_wlan_r13, bref, (uint16_t)0, (uint16_t)31250)); } if (backhaul_dl_bw_wlan_r13_present) { HANDLE_CODE(unpack_enum(backhaul_dl_bw_wlan_r13, bref)); } if (backhaul_ul_bw_wlan_r13_present) { HANDLE_CODE(unpack_enum(backhaul_ul_bw_wlan_r13, bref)); } if (ch_utilization_wlan_r13_present) { HANDLE_CODE(unpack_unalign_integer(ch_utilization_wlan_r13, bref, (uint8_t)0, (uint8_t)255)); } if (station_count_wlan_r13_present) { HANDLE_CODE(unpack_unalign_integer(station_count_wlan_r13, bref, (uint16_t)0, (uint16_t)65535)); } return SRSASN_SUCCESS; } void meas_result_wlan_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("wlan-Identifiers-r13"); wlan_ids_r13.to_json(j); if (carrier_info_wlan_r13_present) { j.write_fieldname("carrierInfoWLAN-r13"); carrier_info_wlan_r13.to_json(j); } if (band_wlan_r13_present) { j.write_str("bandWLAN-r13", band_wlan_r13.to_string()); } j.write_int("rssiWLAN-r13", rssi_wlan_r13); if (available_admission_capacity_wlan_r13_present) { j.write_int("availableAdmissionCapacityWLAN-r13", available_admission_capacity_wlan_r13); } if (backhaul_dl_bw_wlan_r13_present) { j.write_str("backhaulDL-BandwidthWLAN-r13", backhaul_dl_bw_wlan_r13.to_string()); } if (backhaul_ul_bw_wlan_r13_present) { j.write_str("backhaulUL-BandwidthWLAN-r13", backhaul_ul_bw_wlan_r13.to_string()); } if (ch_utilization_wlan_r13_present) { j.write_int("channelUtilizationWLAN-r13", ch_utilization_wlan_r13); } if (station_count_wlan_r13_present) { j.write_int("stationCountWLAN-r13", station_count_wlan_r13); } if (connected_wlan_r13_present) { j.write_str("connectedWLAN-r13", "true"); } j.end_obj(); } // OverheatingAssistance-r14 ::= SEQUENCE SRSASN_CODE overheat_assist_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(reduced_ue_category_present, 1)); HANDLE_CODE(bref.pack(reduced_max_ccs_present, 1)); if (reduced_ue_category_present) { HANDLE_CODE(pack_unalign_integer(bref, reduced_ue_category.reduced_ue_category_dl, (uint8_t)0, (uint8_t)19)); HANDLE_CODE(pack_unalign_integer(bref, reduced_ue_category.reduced_ue_category_ul, (uint8_t)0, (uint8_t)21)); } if (reduced_max_ccs_present) { HANDLE_CODE(pack_unalign_integer(bref, reduced_max_ccs.reduced_ccs_dl, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, reduced_max_ccs.reduced_ccs_ul, (uint8_t)0, (uint8_t)31)); } return SRSASN_SUCCESS; } SRSASN_CODE overheat_assist_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(reduced_ue_category_present, 1)); HANDLE_CODE(bref.unpack(reduced_max_ccs_present, 1)); if (reduced_ue_category_present) { HANDLE_CODE(unpack_unalign_integer(reduced_ue_category.reduced_ue_category_dl, bref, (uint8_t)0, (uint8_t)19)); HANDLE_CODE(unpack_unalign_integer(reduced_ue_category.reduced_ue_category_ul, bref, (uint8_t)0, (uint8_t)21)); } if (reduced_max_ccs_present) { HANDLE_CODE(unpack_unalign_integer(reduced_max_ccs.reduced_ccs_dl, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(unpack_unalign_integer(reduced_max_ccs.reduced_ccs_ul, bref, (uint8_t)0, (uint8_t)31)); } return SRSASN_SUCCESS; } void overheat_assist_r14_s::to_json(json_writer& j) const { j.start_obj(); if (reduced_ue_category_present) { j.write_fieldname("reducedUE-Category"); j.start_obj(); j.write_int("reducedUE-CategoryDL", reduced_ue_category.reduced_ue_category_dl); j.write_int("reducedUE-CategoryUL", reduced_ue_category.reduced_ue_category_ul); j.end_obj(); } if (reduced_max_ccs_present) { j.write_fieldname("reducedMaxCCs"); j.start_obj(); j.write_int("reducedCCsDL", reduced_max_ccs.reduced_ccs_dl); j.write_int("reducedCCsUL", reduced_max_ccs.reduced_ccs_ul); j.end_obj(); } j.end_obj(); } // RLF-Report-v9e0 ::= SEQUENCE SRSASN_CODE rlf_report_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_eutra_v9e0, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE rlf_report_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_eutra_v9e0, bref, 1, 8)); return SRSASN_SUCCESS; } void rlf_report_v9e0_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("measResultListEUTRA-v9e0"); for (uint32_t i1 = 0; i1 < meas_result_list_eutra_v9e0.size(); ++i1) { meas_result_list_eutra_v9e0[i1].to_json(j); } j.end_array(); j.end_obj(); } // RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(conn_est_fail_info_available_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(conn_est_fail_info_available_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (conn_est_fail_info_available_r11_present) { j.write_str("connEstFailInfoAvailable-r11", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_complete_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_available_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_available_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_complete_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_available_r10_present) { j.write_str("logMeasAvailable-r10", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(conn_est_fail_info_available_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(conn_est_fail_info_available_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (conn_est_fail_info_available_r11_present) { j.write_str("connEstFailInfoAvailable-r11", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SL-DiscSysInfoReport-r13 ::= SEQUENCE SRSASN_CODE sl_disc_sys_info_report_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(plmn_id_list_r13_present, 1)); HANDLE_CODE(bref.pack(cell_id_minus13_present, 1)); HANDLE_CODE(bref.pack(carrier_freq_info_minus13_present, 1)); HANDLE_CODE(bref.pack(disc_rx_res_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_pool_common_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_pwr_info_r13_present, 1)); HANDLE_CODE(bref.pack(disc_sync_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(disc_cell_sel_info_r13_present, 1)); HANDLE_CODE(bref.pack(cell_resel_info_r13_present, 1)); HANDLE_CODE(bref.pack(tdd_cfg_r13_present, 1)); HANDLE_CODE(bref.pack(freq_info_r13_present, 1)); HANDLE_CODE(bref.pack(p_max_r13_present, 1)); HANDLE_CODE(bref.pack(ref_sig_pwr_r13_present, 1)); if (plmn_id_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r13, 1, 6)); } if (cell_id_minus13_present) { HANDLE_CODE(cell_id_minus13.pack(bref)); } if (carrier_freq_info_minus13_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_info_minus13, (uint32_t)0, (uint32_t)262143)); } if (disc_rx_res_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_rx_res_r13, 1, 16)); } if (disc_tx_pool_common_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_tx_pool_common_r13, 1, 4)); } if (disc_tx_pwr_info_r13_present) { HANDLE_CODE(pack_fixed_seq_of(bref, &(disc_tx_pwr_info_r13)[0], disc_tx_pwr_info_r13.size())); } if (disc_sync_cfg_r13_present) { HANDLE_CODE(disc_sync_cfg_r13.pack(bref)); } if (disc_cell_sel_info_r13_present) { HANDLE_CODE(bref.pack(disc_cell_sel_info_r13.q_rx_lev_min_offset_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, disc_cell_sel_info_r13.q_rx_lev_min_r13, (int8_t)-70, (int8_t)-22)); if (disc_cell_sel_info_r13.q_rx_lev_min_offset_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, disc_cell_sel_info_r13.q_rx_lev_min_offset_r13, (uint8_t)1, (uint8_t)8)); } } if (cell_resel_info_r13_present) { HANDLE_CODE(pack_enum(bref, cell_resel_info_r13.q_hyst_r13)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_info_r13.q_rx_lev_min_r13, (int8_t)-70, (int8_t)-22)); HANDLE_CODE(pack_unalign_integer(bref, cell_resel_info_r13.t_resel_eutra_r13, (uint8_t)0, (uint8_t)7)); } if (tdd_cfg_r13_present) { HANDLE_CODE(tdd_cfg_r13.pack(bref)); } if (freq_info_r13_present) { HANDLE_CODE(bref.pack(freq_info_r13.ul_carrier_freq_r13_present, 1)); HANDLE_CODE(bref.pack(freq_info_r13.ul_bw_r13_present, 1)); HANDLE_CODE(bref.pack(freq_info_r13.add_spec_emission_r13_present, 1)); if (freq_info_r13.ul_carrier_freq_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, freq_info_r13.ul_carrier_freq_r13, (uint16_t)0, (uint16_t)65535)); } if (freq_info_r13.ul_bw_r13_present) { HANDLE_CODE(pack_enum(bref, freq_info_r13.ul_bw_r13)); } if (freq_info_r13.add_spec_emission_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, freq_info_r13.add_spec_emission_r13, (uint8_t)1, (uint8_t)32)); } } if (p_max_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, p_max_r13, (int8_t)-30, (int8_t)33)); } if (ref_sig_pwr_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, ref_sig_pwr_r13, (int8_t)-60, (int8_t)50)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(freq_info_v1370_present != (freq_info_v1370.get() != NULL), __FILE__, __LINE__); group_flags[0] |= freq_info_v1370_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(freq_info_v1370_present, 1)); if (freq_info_v1370_present) { HANDLE_CODE(pack_unalign_integer(bref, freq_info_v1370->add_spec_emission_v1370, (uint16_t)33, (uint16_t)288)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_sys_info_report_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(plmn_id_list_r13_present, 1)); HANDLE_CODE(bref.unpack(cell_id_minus13_present, 1)); HANDLE_CODE(bref.unpack(carrier_freq_info_minus13_present, 1)); HANDLE_CODE(bref.unpack(disc_rx_res_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_pool_common_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_pwr_info_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_sync_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_cell_sel_info_r13_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_info_r13_present, 1)); HANDLE_CODE(bref.unpack(tdd_cfg_r13_present, 1)); HANDLE_CODE(bref.unpack(freq_info_r13_present, 1)); HANDLE_CODE(bref.unpack(p_max_r13_present, 1)); HANDLE_CODE(bref.unpack(ref_sig_pwr_r13_present, 1)); if (plmn_id_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r13, bref, 1, 6)); } if (cell_id_minus13_present) { HANDLE_CODE(cell_id_minus13.unpack(bref)); } if (carrier_freq_info_minus13_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_info_minus13, bref, (uint32_t)0, (uint32_t)262143)); } if (disc_rx_res_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_rx_res_r13, bref, 1, 16)); } if (disc_tx_pool_common_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_tx_pool_common_r13, bref, 1, 4)); } if (disc_tx_pwr_info_r13_present) { HANDLE_CODE(unpack_fixed_seq_of(&(disc_tx_pwr_info_r13)[0], bref, disc_tx_pwr_info_r13.size())); } if (disc_sync_cfg_r13_present) { HANDLE_CODE(disc_sync_cfg_r13.unpack(bref)); } if (disc_cell_sel_info_r13_present) { HANDLE_CODE(bref.unpack(disc_cell_sel_info_r13.q_rx_lev_min_offset_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(disc_cell_sel_info_r13.q_rx_lev_min_r13, bref, (int8_t)-70, (int8_t)-22)); if (disc_cell_sel_info_r13.q_rx_lev_min_offset_r13_present) { HANDLE_CODE(unpack_unalign_integer(disc_cell_sel_info_r13.q_rx_lev_min_offset_r13, bref, (uint8_t)1, (uint8_t)8)); } } if (cell_resel_info_r13_present) { HANDLE_CODE(unpack_enum(cell_resel_info_r13.q_hyst_r13, bref)); HANDLE_CODE(unpack_unalign_integer(cell_resel_info_r13.q_rx_lev_min_r13, bref, (int8_t)-70, (int8_t)-22)); HANDLE_CODE(unpack_unalign_integer(cell_resel_info_r13.t_resel_eutra_r13, bref, (uint8_t)0, (uint8_t)7)); } if (tdd_cfg_r13_present) { HANDLE_CODE(tdd_cfg_r13.unpack(bref)); } if (freq_info_r13_present) { HANDLE_CODE(bref.unpack(freq_info_r13.ul_carrier_freq_r13_present, 1)); HANDLE_CODE(bref.unpack(freq_info_r13.ul_bw_r13_present, 1)); HANDLE_CODE(bref.unpack(freq_info_r13.add_spec_emission_r13_present, 1)); if (freq_info_r13.ul_carrier_freq_r13_present) { HANDLE_CODE(unpack_unalign_integer(freq_info_r13.ul_carrier_freq_r13, bref, (uint16_t)0, (uint16_t)65535)); } if (freq_info_r13.ul_bw_r13_present) { HANDLE_CODE(unpack_enum(freq_info_r13.ul_bw_r13, bref)); } if (freq_info_r13.add_spec_emission_r13_present) { HANDLE_CODE(unpack_unalign_integer(freq_info_r13.add_spec_emission_r13, bref, (uint8_t)1, (uint8_t)32)); } } if (p_max_r13_present) { HANDLE_CODE(unpack_unalign_integer(p_max_r13, bref, (int8_t)-30, (int8_t)33)); } if (ref_sig_pwr_r13_present) { HANDLE_CODE(unpack_unalign_integer(ref_sig_pwr_r13, bref, (int8_t)-60, (int8_t)50)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(freq_info_v1370_present, 1)); if (freq_info_v1370_present) { freq_info_v1370 = make_copy_ptr(freq_info_v1370_s_()); HANDLE_CODE( unpack_unalign_integer(freq_info_v1370->add_spec_emission_v1370, bref, (uint16_t)33, (uint16_t)288)); } } } return SRSASN_SUCCESS; } void sl_disc_sys_info_report_r13_s::to_json(json_writer& j) const { j.start_obj(); if (plmn_id_list_r13_present) { j.start_array("plmn-IdentityList-r13"); for (uint32_t i1 = 0; i1 < plmn_id_list_r13.size(); ++i1) { plmn_id_list_r13[i1].to_json(j); } j.end_array(); } if (cell_id_minus13_present) { j.write_str("cellIdentity-13", cell_id_minus13.to_string()); } if (carrier_freq_info_minus13_present) { j.write_int("carrierFreqInfo-13", carrier_freq_info_minus13); } if (disc_rx_res_r13_present) { j.start_array("discRxResources-r13"); for (uint32_t i1 = 0; i1 < disc_rx_res_r13.size(); ++i1) { disc_rx_res_r13[i1].to_json(j); } j.end_array(); } if (disc_tx_pool_common_r13_present) { j.start_array("discTxPoolCommon-r13"); for (uint32_t i1 = 0; i1 < disc_tx_pool_common_r13.size(); ++i1) { disc_tx_pool_common_r13[i1].to_json(j); } j.end_array(); } if (disc_tx_pwr_info_r13_present) { j.start_array("discTxPowerInfo-r13"); for (uint32_t i1 = 0; i1 < disc_tx_pwr_info_r13.size(); ++i1) { disc_tx_pwr_info_r13[i1].to_json(j); } j.end_array(); } if (disc_sync_cfg_r13_present) { j.write_fieldname("discSyncConfig-r13"); disc_sync_cfg_r13.to_json(j); } if (disc_cell_sel_info_r13_present) { j.write_fieldname("discCellSelectionInfo-r13"); j.start_obj(); j.write_int("q-RxLevMin-r13", disc_cell_sel_info_r13.q_rx_lev_min_r13); if (disc_cell_sel_info_r13.q_rx_lev_min_offset_r13_present) { j.write_int("q-RxLevMinOffset-r13", disc_cell_sel_info_r13.q_rx_lev_min_offset_r13); } j.end_obj(); } if (cell_resel_info_r13_present) { j.write_fieldname("cellReselectionInfo-r13"); j.start_obj(); j.write_str("q-Hyst-r13", cell_resel_info_r13.q_hyst_r13.to_string()); j.write_int("q-RxLevMin-r13", cell_resel_info_r13.q_rx_lev_min_r13); j.write_int("t-ReselectionEUTRA-r13", cell_resel_info_r13.t_resel_eutra_r13); j.end_obj(); } if (tdd_cfg_r13_present) { j.write_fieldname("tdd-Config-r13"); tdd_cfg_r13.to_json(j); } if (freq_info_r13_present) { j.write_fieldname("freqInfo-r13"); j.start_obj(); if (freq_info_r13.ul_carrier_freq_r13_present) { j.write_int("ul-CarrierFreq-r13", freq_info_r13.ul_carrier_freq_r13); } if (freq_info_r13.ul_bw_r13_present) { j.write_str("ul-Bandwidth-r13", freq_info_r13.ul_bw_r13.to_string()); } if (freq_info_r13.add_spec_emission_r13_present) { j.write_int("additionalSpectrumEmission-r13", freq_info_r13.add_spec_emission_r13); } j.end_obj(); } if (p_max_r13_present) { j.write_int("p-Max-r13", p_max_r13); } if (ref_sig_pwr_r13_present) { j.write_int("referenceSignalPower-r13", ref_sig_pwr_r13); } if (ext) { rrc_asn1_warn_assert(freq_info_v1370_present != (freq_info_v1370.get() != NULL), __FILE__, __LINE__); if (freq_info_v1370_present) { j.write_fieldname("freqInfo-v1370"); j.start_obj(); j.write_int("additionalSpectrumEmission-v1370", freq_info_v1370->add_spec_emission_v1370); j.end_obj(); } } j.end_obj(); } // SL-DiscTxResourceReq-r13 ::= SEQUENCE SRSASN_CODE sl_disc_tx_res_req_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_disc_tx_r13_present, 1)); if (carrier_freq_disc_tx_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_disc_tx_r13, (uint8_t)1, (uint8_t)8)); } HANDLE_CODE(pack_unalign_integer(bref, disc_tx_res_req_r13, (uint8_t)1, (uint8_t)63)); return SRSASN_SUCCESS; } SRSASN_CODE sl_disc_tx_res_req_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_disc_tx_r13_present, 1)); if (carrier_freq_disc_tx_r13_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_disc_tx_r13, bref, (uint8_t)1, (uint8_t)8)); } HANDLE_CODE(unpack_unalign_integer(disc_tx_res_req_r13, bref, (uint8_t)1, (uint8_t)63)); return SRSASN_SUCCESS; } void sl_disc_tx_res_req_r13_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_disc_tx_r13_present) { j.write_int("carrierFreqDiscTx-r13", carrier_freq_disc_tx_r13); } j.write_int("discTxResourceReq-r13", disc_tx_res_req_r13); j.end_obj(); } // SL-GapFreqInfo-r13 ::= SEQUENCE SRSASN_CODE sl_gap_freq_info_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_r13_present, 1)); if (carrier_freq_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r13, (uint32_t)0, (uint32_t)262143)); } HANDLE_CODE(pack_dyn_seq_of(bref, gap_pattern_list_r13, 1, 8)); return SRSASN_SUCCESS; } SRSASN_CODE sl_gap_freq_info_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_r13_present, 1)); if (carrier_freq_r13_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_r13, bref, (uint32_t)0, (uint32_t)262143)); } HANDLE_CODE(unpack_dyn_seq_of(gap_pattern_list_r13, bref, 1, 8)); return SRSASN_SUCCESS; } void sl_gap_freq_info_r13_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_r13_present) { j.write_int("carrierFreq-r13", carrier_freq_r13); } j.start_array("gapPatternList-r13"); for (uint32_t i1 = 0; i1 < gap_pattern_list_r13.size(); ++i1) { gap_pattern_list_r13[i1].to_json(j); } j.end_array(); j.end_obj(); } // SensingResult-r15 ::= SEQUENCE SRSASN_CODE sensing_result_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, res_idx_r15, (uint16_t)1, (uint16_t)2000)); return SRSASN_SUCCESS; } SRSASN_CODE sensing_result_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(res_idx_r15, bref, (uint16_t)1, (uint16_t)2000)); return SRSASN_SUCCESS; } void sensing_result_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("resourceIndex-r15", res_idx_r15); j.end_obj(); } // SidelinkUEInformation-v1530-IEs ::= SEQUENCE SRSASN_CODE sidelink_ue_info_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(reliability_info_list_sl_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (reliability_info_list_sl_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, reliability_info_list_sl_r15, 1, 8, UnalignedIntegerPacker(1, 8))); } return SRSASN_SUCCESS; } SRSASN_CODE sidelink_ue_info_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(reliability_info_list_sl_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (reliability_info_list_sl_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(reliability_info_list_sl_r15, bref, 1, 8, UnalignedIntegerPacker(1, 8))); } return SRSASN_SUCCESS; } void sidelink_ue_info_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (reliability_info_list_sl_r15_present) { j.start_array("reliabilityInfoListSL-r15"); for (uint32_t i1 = 0; i1 < reliability_info_list_sl_r15.size(); ++i1) { j.write_int(reliability_info_list_sl_r15[i1]); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // TrafficPatternInfo-r14 ::= SEQUENCE SRSASN_CODE traffic_pattern_info_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(prio_info_sl_r14_present, 1)); HANDLE_CODE(bref.pack(lc_ch_id_ul_r14_present, 1)); HANDLE_CODE(pack_enum(bref, traffic_periodicity_r14)); HANDLE_CODE(pack_unalign_integer(bref, timing_offset_r14, (uint16_t)0, (uint16_t)10239)); if (prio_info_sl_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, prio_info_sl_r14, (uint8_t)1, (uint8_t)8)); } if (lc_ch_id_ul_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, lc_ch_id_ul_r14, (uint8_t)3, (uint8_t)10)); } HANDLE_CODE(msg_size_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE traffic_pattern_info_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(prio_info_sl_r14_present, 1)); HANDLE_CODE(bref.unpack(lc_ch_id_ul_r14_present, 1)); HANDLE_CODE(unpack_enum(traffic_periodicity_r14, bref)); HANDLE_CODE(unpack_unalign_integer(timing_offset_r14, bref, (uint16_t)0, (uint16_t)10239)); if (prio_info_sl_r14_present) { HANDLE_CODE(unpack_unalign_integer(prio_info_sl_r14, bref, (uint8_t)1, (uint8_t)8)); } if (lc_ch_id_ul_r14_present) { HANDLE_CODE(unpack_unalign_integer(lc_ch_id_ul_r14, bref, (uint8_t)3, (uint8_t)10)); } HANDLE_CODE(msg_size_r14.unpack(bref)); return SRSASN_SUCCESS; } void traffic_pattern_info_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("trafficPeriodicity-r14", traffic_periodicity_r14.to_string()); j.write_int("timingOffset-r14", timing_offset_r14); if (prio_info_sl_r14_present) { j.write_int("priorityInfoSL-r14", prio_info_sl_r14); } if (lc_ch_id_ul_r14_present) { j.write_int("logicalChannelIdentityUL-r14", lc_ch_id_ul_r14); } j.write_str("messageSize-r14", msg_size_r14.to_string()); j.end_obj(); } // UE-RadioPagingInfo-r12 ::= SEQUENCE SRSASN_CODE ue_radio_paging_info_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ue_category_v1250_present, 1)); if (ue_category_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_v1250, (uint8_t)0, (uint8_t)0)); } if (ext) { ext_groups_header group_flags(2); group_flags[0] |= ue_category_dl_v1310_present; group_flags[0] |= ce_mode_a_r13_present; group_flags[0] |= ce_mode_b_r13_present; group_flags[1] |= wake_up_signal_r15_present; group_flags[1] |= wake_up_signal_tdd_r15_present; group_flags[1] |= wake_up_signal_min_gap_e_drx_r15_present; group_flags[1] |= wake_up_signal_min_gap_e_drx_tdd_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(ue_category_dl_v1310_present, 1)); HANDLE_CODE(bref.pack(ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.pack(ce_mode_b_r13_present, 1)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(wake_up_signal_r15_present, 1)); HANDLE_CODE(bref.pack(wake_up_signal_tdd_r15_present, 1)); HANDLE_CODE(bref.pack(wake_up_signal_min_gap_e_drx_r15_present, 1)); HANDLE_CODE(bref.pack(wake_up_signal_min_gap_e_drx_tdd_r15_present, 1)); if (wake_up_signal_min_gap_e_drx_r15_present) { HANDLE_CODE(pack_enum(bref, wake_up_signal_min_gap_e_drx_r15)); } if (wake_up_signal_min_gap_e_drx_tdd_r15_present) { HANDLE_CODE(pack_enum(bref, wake_up_signal_min_gap_e_drx_tdd_r15)); } } } return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_paging_info_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ue_category_v1250_present, 1)); if (ue_category_v1250_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_v1250, bref, (uint8_t)0, (uint8_t)0)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(ue_category_dl_v1310_present, 1)); HANDLE_CODE(bref.unpack(ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(ce_mode_b_r13_present, 1)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(wake_up_signal_r15_present, 1)); HANDLE_CODE(bref.unpack(wake_up_signal_tdd_r15_present, 1)); HANDLE_CODE(bref.unpack(wake_up_signal_min_gap_e_drx_r15_present, 1)); HANDLE_CODE(bref.unpack(wake_up_signal_min_gap_e_drx_tdd_r15_present, 1)); if (wake_up_signal_min_gap_e_drx_r15_present) { HANDLE_CODE(unpack_enum(wake_up_signal_min_gap_e_drx_r15, bref)); } if (wake_up_signal_min_gap_e_drx_tdd_r15_present) { HANDLE_CODE(unpack_enum(wake_up_signal_min_gap_e_drx_tdd_r15, bref)); } } } return SRSASN_SUCCESS; } void ue_radio_paging_info_r12_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_v1250_present) { j.write_int("ue-Category-v1250", ue_category_v1250); } if (ext) { if (ue_category_dl_v1310_present) { j.write_str("ue-CategoryDL-v1310", "m1"); } if (ce_mode_a_r13_present) { j.write_str("ce-ModeA-r13", "true"); } if (ce_mode_b_r13_present) { j.write_str("ce-ModeB-r13", "true"); } if (wake_up_signal_r15_present) { j.write_str("wakeUpSignal-r15", "true"); } if (wake_up_signal_tdd_r15_present) { j.write_str("wakeUpSignal-TDD-r15", "true"); } if (wake_up_signal_min_gap_e_drx_r15_present) { j.write_str("wakeUpSignalMinGap-eDRX-r15", wake_up_signal_min_gap_e_drx_r15.to_string()); } if (wake_up_signal_min_gap_e_drx_tdd_r15_present) { j.write_str("wakeUpSignalMinGap-eDRX-TDD-r15", wake_up_signal_min_gap_e_drx_tdd_r15.to_string()); } } j.end_obj(); } // UEAssistanceInformation-v1530-IEs ::= SEQUENCE SRSASN_CODE ueassist_info_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(sps_assist_info_v1530_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (sps_assist_info_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_assist_info_v1530.traffic_pattern_info_list_sl_v1530, 1, 8)); } return SRSASN_SUCCESS; } SRSASN_CODE ueassist_info_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(sps_assist_info_v1530_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (sps_assist_info_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_assist_info_v1530.traffic_pattern_info_list_sl_v1530, bref, 1, 8)); } return SRSASN_SUCCESS; } void ueassist_info_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (sps_assist_info_v1530_present) { j.write_fieldname("sps-AssistanceInformation-v1530"); j.start_obj(); j.start_array("trafficPatternInfoListSL-v1530"); for (uint32_t i1 = 0; i1 < sps_assist_info_v1530.traffic_pattern_info_list_sl_v1530.size(); ++i1) { sps_assist_info_v1530.traffic_pattern_info_list_sl_v1530[i1].to_json(j); } j.end_array(); j.end_obj(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // UEInformationResponse-v1130-IEs ::= SEQUENCE SRSASN_CODE ue_info_resp_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(conn_est_fail_report_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (conn_est_fail_report_r11_present) { HANDLE_CODE(conn_est_fail_report_r11.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(conn_est_fail_report_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (conn_est_fail_report_r11_present) { HANDLE_CODE(conn_est_fail_report_r11.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_resp_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (conn_est_fail_report_r11_present) { j.write_fieldname("connEstFailReport-r11"); conn_est_fail_report_r11.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UL-PDCP-DelayResult-r13 ::= SEQUENCE SRSASN_CODE ul_pdcp_delay_result_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, qci_id_r13)); HANDLE_CODE(pack_unalign_integer(bref, excess_delay_r13, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } SRSASN_CODE ul_pdcp_delay_result_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(qci_id_r13, bref)); HANDLE_CODE(unpack_unalign_integer(excess_delay_r13, bref, (uint8_t)0, (uint8_t)31)); return SRSASN_SUCCESS; } void ul_pdcp_delay_result_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("qci-Id-r13", qci_id_r13.to_string()); j.write_int("excessDelay-r13", excess_delay_r13); j.end_obj(); } // AffectedCarrierFreq-r11 ::= SEQUENCE SRSASN_CODE affected_carrier_freq_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r11, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_enum(bref, interference_direction_r11)); return SRSASN_SUCCESS; } SRSASN_CODE affected_carrier_freq_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_r11, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_enum(interference_direction_r11, bref)); return SRSASN_SUCCESS; } void affected_carrier_freq_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r11", carrier_freq_r11); j.write_str("interferenceDirection-r11", interference_direction_r11.to_string()); j.end_obj(); } // BW-Preference-r14 ::= SEQUENCE SRSASN_CODE bw_pref_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dl_pref_r14_present, 1)); HANDLE_CODE(bref.pack(ul_pref_r14_present, 1)); if (dl_pref_r14_present) { HANDLE_CODE(pack_enum(bref, dl_pref_r14)); } if (ul_pref_r14_present) { HANDLE_CODE(pack_enum(bref, ul_pref_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE bw_pref_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dl_pref_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_pref_r14_present, 1)); if (dl_pref_r14_present) { HANDLE_CODE(unpack_enum(dl_pref_r14, bref)); } if (ul_pref_r14_present) { HANDLE_CODE(unpack_enum(ul_pref_r14, bref)); } return SRSASN_SUCCESS; } void bw_pref_r14_s::to_json(json_writer& j) const { j.start_obj(); if (dl_pref_r14_present) { j.write_str("dl-Preference-r14", dl_pref_r14.to_string()); } if (ul_pref_r14_present) { j.write_str("ul-Preference-r14", ul_pref_r14.to_string()); } j.end_obj(); } // CounterCheckResponse-v1530-IEs ::= SEQUENCE SRSASN_CODE counter_check_resp_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(drb_count_info_list_ext_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (drb_count_info_list_ext_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_count_info_list_ext_r15, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_resp_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(drb_count_info_list_ext_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (drb_count_info_list_ext_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_count_info_list_ext_r15, bref, 1, 4)); } return SRSASN_SUCCESS; } void counter_check_resp_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (drb_count_info_list_ext_r15_present) { j.start_array("drb-CountInfoListExt-r15"); for (uint32_t i1 = 0; i1 < drb_count_info_list_ext_r15.size(); ++i1) { drb_count_info_list_ext_r15[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // CountingResponseInfo-r10 ::= SEQUENCE SRSASN_CODE count_resp_info_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, count_resp_service_r10, (uint8_t)0, (uint8_t)15)); return SRSASN_SUCCESS; } SRSASN_CODE count_resp_info_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(count_resp_service_r10, bref, (uint8_t)0, (uint8_t)15)); return SRSASN_SUCCESS; } void count_resp_info_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("countingResponseService-r10", count_resp_service_r10); j.end_obj(); } // DelayBudgetReport-r14 ::= CHOICE void delay_budget_report_r14_c::destroy_() {} void delay_budget_report_r14_c::set(types::options e) { destroy_(); type_ = e; } delay_budget_report_r14_c::delay_budget_report_r14_c(const delay_budget_report_r14_c& other) { type_ = other.type(); switch (type_) { case types::type1: c.init(other.c.get()); break; case types::type2: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "delay_budget_report_r14_c"); } } delay_budget_report_r14_c& delay_budget_report_r14_c::operator=(const delay_budget_report_r14_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::type1: c.set(other.c.get()); break; case types::type2: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "delay_budget_report_r14_c"); } return *this; } void delay_budget_report_r14_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::type1: j.write_str("type1", c.get().to_string()); break; case types::type2: j.write_str("type2", c.get().to_string()); break; default: log_invalid_choice_id(type_, "delay_budget_report_r14_c"); } j.end_obj(); } SRSASN_CODE delay_budget_report_r14_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::type1: HANDLE_CODE(pack_enum(bref, c.get())); break; case types::type2: HANDLE_CODE(pack_enum(bref, c.get())); break; default: log_invalid_choice_id(type_, "delay_budget_report_r14_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE delay_budget_report_r14_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::type1: HANDLE_CODE(unpack_enum(c.get(), bref)); break; case types::type2: HANDLE_CODE(unpack_enum(c.get(), bref)); break; default: log_invalid_choice_id(type_, "delay_budget_report_r14_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // InDeviceCoexIndication-v1310-IEs ::= SEQUENCE SRSASN_CODE in_dev_coex_ind_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(affected_carrier_freq_list_v1310_present, 1)); HANDLE_CODE(bref.pack(affected_carrier_freq_comb_list_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (affected_carrier_freq_list_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, affected_carrier_freq_list_v1310, 1, 32)); } if (affected_carrier_freq_comb_list_r13_present) { HANDLE_CODE( pack_dyn_seq_of(bref, affected_carrier_freq_comb_list_r13, 1, 128, SeqOfPacker >(2, 32, UnalignedIntegerPacker(1, 64)))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE in_dev_coex_ind_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(affected_carrier_freq_list_v1310_present, 1)); HANDLE_CODE(bref.unpack(affected_carrier_freq_comb_list_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (affected_carrier_freq_list_v1310_present) { HANDLE_CODE(unpack_dyn_seq_of(affected_carrier_freq_list_v1310, bref, 1, 32)); } if (affected_carrier_freq_comb_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of( affected_carrier_freq_comb_list_r13, bref, 1, 128, SeqOfPacker >(2, 32, UnalignedIntegerPacker(1, 64)))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void in_dev_coex_ind_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (affected_carrier_freq_list_v1310_present) { j.start_array("affectedCarrierFreqList-v1310"); for (uint32_t i1 = 0; i1 < affected_carrier_freq_list_v1310.size(); ++i1) { affected_carrier_freq_list_v1310[i1].to_json(j); } j.end_array(); } if (affected_carrier_freq_comb_list_r13_present) { j.start_array("affectedCarrierFreqCombList-r13"); for (uint32_t i1 = 0; i1 < affected_carrier_freq_comb_list_r13.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < affected_carrier_freq_comb_list_r13[i1].size(); ++i2) { j.write_int(affected_carrier_freq_comb_list_r13[i1][i2]); } j.end_array(); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MeasResultForECID-r9 ::= SEQUENCE SRSASN_CODE meas_result_for_ecid_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, ue_rx_tx_time_diff_result_r9, (uint16_t)0, (uint16_t)4095)); HANDLE_CODE(current_sfn_r9.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_for_ecid_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(ue_rx_tx_time_diff_result_r9, bref, (uint16_t)0, (uint16_t)4095)); HANDLE_CODE(current_sfn_r9.unpack(bref)); return SRSASN_SUCCESS; } void meas_result_for_ecid_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("ue-RxTxTimeDiffResult-r9", ue_rx_tx_time_diff_result_r9); j.write_str("currentSFN-r9", current_sfn_r9.to_string()); j.end_obj(); } // MeasResultForRSSI-r13 ::= SEQUENCE SRSASN_CODE meas_result_for_rssi_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, rssi_result_r13, (uint8_t)0, (uint8_t)76)); HANDLE_CODE(pack_unalign_integer(bref, ch_occupancy_r13, (uint8_t)0, (uint8_t)100)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_for_rssi_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(rssi_result_r13, bref, (uint8_t)0, (uint8_t)76)); HANDLE_CODE(unpack_unalign_integer(ch_occupancy_r13, bref, (uint8_t)0, (uint8_t)100)); return SRSASN_SUCCESS; } void meas_result_for_rssi_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rssi-Result-r13", rssi_result_r13); j.write_int("channelOccupancy-r13", ch_occupancy_r13); j.end_obj(); } // MeasResultSSTD-r13 ::= SEQUENCE SRSASN_CODE meas_result_sstd_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, sfn_offset_result_r13, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(pack_unalign_integer(bref, frame_boundary_offset_result_r13, (int8_t)-5, (int8_t)4)); HANDLE_CODE(pack_unalign_integer(bref, sf_boundary_offset_result_r13, (uint8_t)0, (uint8_t)127)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_sstd_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(sfn_offset_result_r13, bref, (uint16_t)0, (uint16_t)1023)); HANDLE_CODE(unpack_unalign_integer(frame_boundary_offset_result_r13, bref, (int8_t)-5, (int8_t)4)); HANDLE_CODE(unpack_unalign_integer(sf_boundary_offset_result_r13, bref, (uint8_t)0, (uint8_t)127)); return SRSASN_SUCCESS; } void meas_result_sstd_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sfn-OffsetResult-r13", sfn_offset_result_r13); j.write_int("frameBoundaryOffsetResult-r13", frame_boundary_offset_result_r13); j.write_int("subframeBoundaryOffsetResult-r13", sf_boundary_offset_result_r13); j.end_obj(); } // MeasResultSensing-r15 ::= SEQUENCE SRSASN_CODE meas_result_sensing_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, sl_sf_ref_r15, (uint16_t)0, (uint16_t)10239)); HANDLE_CODE(pack_dyn_seq_of(bref, sensing_result_r15, 0, 400)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_sensing_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(sl_sf_ref_r15, bref, (uint16_t)0, (uint16_t)10239)); HANDLE_CODE(unpack_dyn_seq_of(sensing_result_r15, bref, 0, 400)); return SRSASN_SUCCESS; } void meas_result_sensing_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sl-SubframeRef-r15", sl_sf_ref_r15); j.start_array("sensingResult-r15"); for (uint32_t i1 = 0; i1 < sensing_result_r15.size(); ++i1) { sensing_result_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } // RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rlf_info_available_r10_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rlf_info_available_r10_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rlf_info_available_r10_present) { j.write_str("rlf-InfoAvailable-r10", "true"); } if (log_meas_available_r10_present) { j.write_str("logMeasAvailable-r10", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_complete_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_complete_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(gummei_type_r10_present, 1)); HANDLE_CODE(bref.pack(rlf_info_available_r10_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_r10_present, 1)); HANDLE_CODE(bref.pack(rn_sf_cfg_req_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (gummei_type_r10_present) { HANDLE_CODE(pack_enum(bref, gummei_type_r10)); } if (rn_sf_cfg_req_r10_present) { HANDLE_CODE(pack_enum(bref, rn_sf_cfg_req_r10)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(gummei_type_r10_present, 1)); HANDLE_CODE(bref.unpack(rlf_info_available_r10_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_r10_present, 1)); HANDLE_CODE(bref.unpack(rn_sf_cfg_req_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (gummei_type_r10_present) { HANDLE_CODE(unpack_enum(gummei_type_r10, bref)); } if (rn_sf_cfg_req_r10_present) { HANDLE_CODE(unpack_enum(rn_sf_cfg_req_r10, bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (gummei_type_r10_present) { j.write_str("gummei-Type-r10", gummei_type_r10.to_string()); } if (rlf_info_available_r10_present) { j.write_str("rlf-InfoAvailable-r10", "true"); } if (log_meas_available_r10_present) { j.write_str("logMeasAvailable-r10", "true"); } if (rn_sf_cfg_req_r10_present) { j.write_str("rn-SubframeConfigReq-r10", rn_sf_cfg_req_r10.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RSTD-InterFreqInfo-r10 ::= SEQUENCE SRSASN_CODE rstd_inter_freq_info_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r10, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(pack_unalign_integer(bref, meas_prs_offset_r10, (uint8_t)0, (uint8_t)39)); if (ext) { ext_groups_header group_flags(2); group_flags[0] |= carrier_freq_v1090_present; rrc_asn1_warn_assert(meas_prs_offset_r15_present != (meas_prs_offset_r15.get() != NULL), __FILE__, __LINE__); group_flags[1] |= meas_prs_offset_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(carrier_freq_v1090_present, 1)); if (carrier_freq_v1090_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_v1090, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_prs_offset_r15_present, 1)); if (meas_prs_offset_r15_present) { HANDLE_CODE(meas_prs_offset_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rstd_inter_freq_info_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r10, bref, (uint16_t)0, (uint16_t)65535)); HANDLE_CODE(unpack_unalign_integer(meas_prs_offset_r10, bref, (uint8_t)0, (uint8_t)39)); if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(carrier_freq_v1090_present, 1)); if (carrier_freq_v1090_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_v1090, bref, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_prs_offset_r15_present, 1)); if (meas_prs_offset_r15_present) { meas_prs_offset_r15 = make_copy_ptr(meas_prs_offset_r15_c_()); HANDLE_CODE(meas_prs_offset_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void rstd_inter_freq_info_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq-r10", carrier_freq_r10); j.write_int("measPRS-Offset-r10", meas_prs_offset_r10); if (ext) { if (carrier_freq_v1090_present) { j.write_int("carrierFreq-v1090", carrier_freq_v1090); } rrc_asn1_warn_assert(meas_prs_offset_r15_present != (meas_prs_offset_r15.get() != NULL), __FILE__, __LINE__); if (meas_prs_offset_r15_present) { j.write_fieldname("measPRS-Offset-r15"); meas_prs_offset_r15->to_json(j); } } j.end_obj(); } void rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::destroy_() {} void rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set(types::options e) { destroy_(); type_ = e; } rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::meas_prs_offset_r15_c_( const rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_& other) { type_ = other.type(); switch (type_) { case types::rstd0_r15: c.init(other.c.get()); break; case types::rstd1_r15: c.init(other.c.get()); break; case types::rstd2_r15: c.init(other.c.get()); break; case types::rstd3_r15: c.init(other.c.get()); break; case types::rstd4_r15: c.init(other.c.get()); break; case types::rstd5_r15: c.init(other.c.get()); break; case types::rstd6_r15: c.init(other.c.get()); break; case types::rstd7_r15: c.init(other.c.get()); break; case types::rstd8_r15: c.init(other.c.get()); break; case types::rstd9_r15: c.init(other.c.get()); break; case types::rstd10_r15: c.init(other.c.get()); break; case types::rstd11_r15: c.init(other.c.get()); break; case types::rstd12_r15: c.init(other.c.get()); break; case types::rstd13_r15: c.init(other.c.get()); break; case types::rstd14_r15: c.init(other.c.get()); break; case types::rstd15_r15: c.init(other.c.get()); break; case types::rstd16_r15: c.init(other.c.get()); break; case types::rstd17_r15: c.init(other.c.get()); break; case types::rstd18_r15: c.init(other.c.get()); break; case types::rstd19_r15: c.init(other.c.get()); break; case types::rstd20_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_"); } } rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_:: operator=(const rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rstd0_r15: c.set(other.c.get()); break; case types::rstd1_r15: c.set(other.c.get()); break; case types::rstd2_r15: c.set(other.c.get()); break; case types::rstd3_r15: c.set(other.c.get()); break; case types::rstd4_r15: c.set(other.c.get()); break; case types::rstd5_r15: c.set(other.c.get()); break; case types::rstd6_r15: c.set(other.c.get()); break; case types::rstd7_r15: c.set(other.c.get()); break; case types::rstd8_r15: c.set(other.c.get()); break; case types::rstd9_r15: c.set(other.c.get()); break; case types::rstd10_r15: c.set(other.c.get()); break; case types::rstd11_r15: c.set(other.c.get()); break; case types::rstd12_r15: c.set(other.c.get()); break; case types::rstd13_r15: c.set(other.c.get()); break; case types::rstd14_r15: c.set(other.c.get()); break; case types::rstd15_r15: c.set(other.c.get()); break; case types::rstd16_r15: c.set(other.c.get()); break; case types::rstd17_r15: c.set(other.c.get()); break; case types::rstd18_r15: c.set(other.c.get()); break; case types::rstd19_r15: c.set(other.c.get()); break; case types::rstd20_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_"); } return *this; } void rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rstd0_r15: j.write_int("rstd0-r15", c.get()); break; case types::rstd1_r15: j.write_int("rstd1-r15", c.get()); break; case types::rstd2_r15: j.write_int("rstd2-r15", c.get()); break; case types::rstd3_r15: j.write_int("rstd3-r15", c.get()); break; case types::rstd4_r15: j.write_int("rstd4-r15", c.get()); break; case types::rstd5_r15: j.write_int("rstd5-r15", c.get()); break; case types::rstd6_r15: j.write_int("rstd6-r15", c.get()); break; case types::rstd7_r15: j.write_int("rstd7-r15", c.get()); break; case types::rstd8_r15: j.write_int("rstd8-r15", c.get()); break; case types::rstd9_r15: j.write_int("rstd9-r15", c.get()); break; case types::rstd10_r15: j.write_int("rstd10-r15", c.get()); break; case types::rstd11_r15: j.write_int("rstd11-r15", c.get()); break; case types::rstd12_r15: j.write_int("rstd12-r15", c.get()); break; case types::rstd13_r15: j.write_int("rstd13-r15", c.get()); break; case types::rstd14_r15: j.write_int("rstd14-r15", c.get()); break; case types::rstd15_r15: j.write_int("rstd15-r15", c.get()); break; case types::rstd16_r15: j.write_int("rstd16-r15", c.get()); break; case types::rstd17_r15: j.write_int("rstd17-r15", c.get()); break; case types::rstd18_r15: j.write_int("rstd18-r15", c.get()); break; case types::rstd19_r15: j.write_int("rstd19-r15", c.get()); break; case types::rstd20_r15: j.write_int("rstd20-r15", c.get()); break; default: log_invalid_choice_id(type_, "rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_"); } j.end_obj(); } SRSASN_CODE rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rstd0_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)79)); break; case types::rstd1_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; case types::rstd2_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::rstd3_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd4_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd5_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)159)); break; case types::rstd6_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::rstd7_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd8_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd9_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::rstd10_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd11_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd12_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)319)); break; case types::rstd13_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd14_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd15_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd16_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd17_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd18_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; case types::rstd19_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)639)); break; case types::rstd20_r15: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)1279)); break; default: log_invalid_choice_id(type_, "rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rstd0_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)79)); break; case types::rstd1_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; case types::rstd2_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::rstd3_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd4_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd5_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)159)); break; case types::rstd6_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::rstd7_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd8_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd9_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::rstd10_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd11_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd12_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)319)); break; case types::rstd13_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd14_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd15_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd16_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd17_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd18_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; case types::rstd19_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)639)); break; case types::rstd20_r15: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)1279)); break; default: log_invalid_choice_id(type_, "rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SCGFailureInformation-v12d0-IEs ::= SEQUENCE SRSASN_CODE scg_fail_info_v12d0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(fail_report_scg_v12d0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (fail_report_scg_v12d0_present) { HANDLE_CODE(fail_report_scg_v12d0.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_v12d0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(fail_report_scg_v12d0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (fail_report_scg_v12d0_present) { HANDLE_CODE(fail_report_scg_v12d0.unpack(bref)); } return SRSASN_SUCCESS; } void scg_fail_info_v12d0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (fail_report_scg_v12d0_present) { j.write_fieldname("failureReportSCG-v12d0"); fail_report_scg_v12d0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SL-CommTxResourceReq-r12 ::= SEQUENCE SRSASN_CODE sl_comm_tx_res_req_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(carrier_freq_r12_present, 1)); if (carrier_freq_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); } HANDLE_CODE(pack_dyn_seq_of(bref, dest_info_list_r12, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE sl_comm_tx_res_req_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(carrier_freq_r12_present, 1)); if (carrier_freq_r12_present) { HANDLE_CODE(unpack_unalign_integer(carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); } HANDLE_CODE(unpack_dyn_seq_of(dest_info_list_r12, bref, 1, 16)); return SRSASN_SUCCESS; } void sl_comm_tx_res_req_r12_s::to_json(json_writer& j) const { j.start_obj(); if (carrier_freq_r12_present) { j.write_int("carrierFreq-r12", carrier_freq_r12); } j.start_array("destinationInfoList-r12"); for (uint32_t i1 = 0; i1 < dest_info_list_r12.size(); ++i1) { j.write_str(dest_info_list_r12[i1].to_string()); } j.end_array(); j.end_obj(); } // SidelinkUEInformation-v1430-IEs ::= SEQUENCE SRSASN_CODE sidelink_ue_info_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(v2x_comm_rx_interested_freq_list_r14_present, 1)); HANDLE_CODE(bref.pack(p2x_comm_tx_type_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_comm_tx_res_req_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (v2x_comm_rx_interested_freq_list_r14_present) { HANDLE_CODE( pack_dyn_seq_of(bref, v2x_comm_rx_interested_freq_list_r14, 1, 8, UnalignedIntegerPacker(0, 7))); } if (v2x_comm_tx_res_req_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_tx_res_req_r14, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sidelink_ue_info_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(v2x_comm_rx_interested_freq_list_r14_present, 1)); HANDLE_CODE(bref.unpack(p2x_comm_tx_type_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_comm_tx_res_req_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (v2x_comm_rx_interested_freq_list_r14_present) { HANDLE_CODE( unpack_dyn_seq_of(v2x_comm_rx_interested_freq_list_r14, bref, 1, 8, UnalignedIntegerPacker(0, 7))); } if (v2x_comm_tx_res_req_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_tx_res_req_r14, bref, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sidelink_ue_info_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (v2x_comm_rx_interested_freq_list_r14_present) { j.start_array("v2x-CommRxInterestedFreqList-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_rx_interested_freq_list_r14.size(); ++i1) { j.write_int(v2x_comm_rx_interested_freq_list_r14[i1]); } j.end_array(); } if (p2x_comm_tx_type_r14_present) { j.write_str("p2x-CommTxType-r14", "true"); } if (v2x_comm_tx_res_req_r14_present) { j.start_array("v2x-CommTxResourceReq-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_tx_res_req_r14.size(); ++i1) { v2x_comm_tx_res_req_r14[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-CapabilityRAT-Container ::= SEQUENCE SRSASN_CODE ue_cap_rat_container_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, rat_type)); HANDLE_CODE(ue_cap_rat_container.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_rat_container_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(rat_type, bref)); HANDLE_CODE(ue_cap_rat_container.unpack(bref)); return SRSASN_SUCCESS; } void ue_cap_rat_container_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("rat-Type", rat_type.to_string()); j.write_str("ueCapabilityRAT-Container", ue_cap_rat_container.to_string()); j.end_obj(); } // UEAssistanceInformation-v1450-IEs ::= SEQUENCE SRSASN_CODE ueassist_info_v1450_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(overheat_assist_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (overheat_assist_r14_present) { HANDLE_CODE(overheat_assist_r14.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ueassist_info_v1450_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(overheat_assist_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (overheat_assist_r14_present) { HANDLE_CODE(overheat_assist_r14.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ueassist_info_v1450_ies_s::to_json(json_writer& j) const { j.start_obj(); if (overheat_assist_r14_present) { j.write_fieldname("overheatingAssistance-r14"); overheat_assist_r14.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UECapabilityInformation-v1250-IEs ::= SEQUENCE SRSASN_CODE ue_cap_info_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_radio_paging_info_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_radio_paging_info_r12_present) { HANDLE_CODE(ue_radio_paging_info_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_info_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_radio_paging_info_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_radio_paging_info_r12_present) { HANDLE_CODE(ue_radio_paging_info_r12.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_info_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_radio_paging_info_r12_present) { j.write_fieldname("ue-RadioPagingInfo-r12"); ue_radio_paging_info_r12.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // UEInformationResponse-v1020-IEs ::= SEQUENCE SRSASN_CODE ue_info_resp_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_report_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (log_meas_report_r10_present) { HANDLE_CODE(log_meas_report_r10.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_report_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (log_meas_report_r10_present) { HANDLE_CODE(log_meas_report_r10.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_resp_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_report_r10_present) { j.write_fieldname("logMeasReport-r10"); log_meas_report_r10.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationResponse-v9e0-IEs ::= SEQUENCE SRSASN_CODE ue_info_resp_v9e0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rlf_report_v9e0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rlf_report_v9e0_present) { HANDLE_CODE(rlf_report_v9e0.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_v9e0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rlf_report_v9e0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rlf_report_v9e0_present) { HANDLE_CODE(rlf_report_v9e0.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_resp_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rlf_report_v9e0_present) { j.write_fieldname("rlf-Report-v9e0"); rlf_report_v9e0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE SRSASN_CODE csfb_params_request_cdma2000_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csfb_params_request_cdma2000_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void csfb_params_request_cdma2000_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // CounterCheckResponse-v8a0-IEs ::= SEQUENCE SRSASN_CODE counter_check_resp_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_resp_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void counter_check_resp_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // FailureReportSCG-NR-r15 ::= SEQUENCE SRSASN_CODE fail_report_scg_nr_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_freq_list_nr_r15_present, 1)); HANDLE_CODE(bref.pack(meas_result_scg_r15_present, 1)); HANDLE_CODE(pack_enum(bref, fail_type_r15)); if (meas_result_freq_list_nr_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_freq_list_nr_r15, 1, 5)); } if (meas_result_scg_r15_present) { HANDLE_CODE(meas_result_scg_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE fail_report_scg_nr_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_freq_list_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(meas_result_scg_r15_present, 1)); HANDLE_CODE(unpack_enum(fail_type_r15, bref)); if (meas_result_freq_list_nr_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_freq_list_nr_r15, bref, 1, 5)); } if (meas_result_scg_r15_present) { HANDLE_CODE(meas_result_scg_r15.unpack(bref)); } return SRSASN_SUCCESS; } void fail_report_scg_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("failureType-r15", fail_type_r15.to_string()); if (meas_result_freq_list_nr_r15_present) { j.start_array("measResultFreqListNR-r15"); for (uint32_t i1 = 0; i1 < meas_result_freq_list_nr_r15.size(); ++i1) { meas_result_freq_list_nr_r15[i1].to_json(j); } j.end_array(); } if (meas_result_scg_r15_present) { j.write_str("measResultSCG-r15", meas_result_scg_r15.to_string()); } j.end_obj(); } // FailureReportSCG-r12 ::= SEQUENCE SRSASN_CODE fail_report_scg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_serv_freq_list_r12_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r12_present, 1)); HANDLE_CODE(pack_enum(bref, fail_type_r12)); if (meas_result_serv_freq_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_serv_freq_list_r12, 1, 5)); } if (meas_result_neigh_cells_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r12, 1, 8)); } if (ext) { ext_groups_header group_flags(2); group_flags[0] |= fail_type_v1290_present; rrc_asn1_warn_assert(meas_result_serv_freq_list_ext_r13_present != (meas_result_serv_freq_list_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[1] |= meas_result_serv_freq_list_ext_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(fail_type_v1290_present, 1)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_serv_freq_list_ext_r13_present, 1)); if (meas_result_serv_freq_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_serv_freq_list_ext_r13, 1, 32)); } } } return SRSASN_SUCCESS; } SRSASN_CODE fail_report_scg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_serv_freq_list_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r12_present, 1)); HANDLE_CODE(unpack_enum(fail_type_r12, bref)); if (meas_result_serv_freq_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_serv_freq_list_r12, bref, 1, 5)); } if (meas_result_neigh_cells_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r12, bref, 1, 8)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(fail_type_v1290_present, 1)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_serv_freq_list_ext_r13_present, 1)); if (meas_result_serv_freq_list_ext_r13_present) { meas_result_serv_freq_list_ext_r13 = make_copy_ptr(meas_result_serv_freq_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_serv_freq_list_ext_r13, bref, 1, 32)); } } } return SRSASN_SUCCESS; } void fail_report_scg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("failureType-r12", fail_type_r12.to_string()); if (meas_result_serv_freq_list_r12_present) { j.start_array("measResultServFreqList-r12"); for (uint32_t i1 = 0; i1 < meas_result_serv_freq_list_r12.size(); ++i1) { meas_result_serv_freq_list_r12[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r12_present) { j.start_array("measResultNeighCells-r12"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r12.size(); ++i1) { meas_result_neigh_cells_r12[i1].to_json(j); } j.end_array(); } if (ext) { if (fail_type_v1290_present) { j.write_str("failureType-v1290", "maxUL-TimingDiff-v1290"); } rrc_asn1_warn_assert(meas_result_serv_freq_list_ext_r13_present != (meas_result_serv_freq_list_ext_r13.get() != NULL), __FILE__, __LINE__); if (meas_result_serv_freq_list_ext_r13_present) { j.start_array("measResultServFreqListExt-r13"); for (uint32_t i1 = 0; i1 < meas_result_serv_freq_list_ext_r13->size(); ++i1) { ((*meas_result_serv_freq_list_ext_r13)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE SRSASN_CODE in_dev_coex_ind_v11d0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_ca_assist_info_r11_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ul_ca_assist_info_r11_present) { HANDLE_CODE(bref.pack(ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11_present, 1)); if (ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11_present) { HANDLE_CODE( pack_dyn_seq_of(bref, ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11, 1, 128, SeqOfPacker >(2, 5, UnalignedIntegerPacker(1, 32)))); } HANDLE_CODE(ul_ca_assist_info_r11.victim_sys_type_r11.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE in_dev_coex_ind_v11d0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_ca_assist_info_r11_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ul_ca_assist_info_r11_present) { HANDLE_CODE(bref.unpack(ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11_present, 1)); if (ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of( ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11, bref, 1, 128, SeqOfPacker >(2, 5, UnalignedIntegerPacker(1, 32)))); } HANDLE_CODE(ul_ca_assist_info_r11.victim_sys_type_r11.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void in_dev_coex_ind_v11d0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ul_ca_assist_info_r11_present) { j.write_fieldname("ul-CA-AssistanceInfo-r11"); j.start_obj(); if (ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11_present) { j.start_array("affectedCarrierFreqCombList-r11"); for (uint32_t i1 = 0; i1 < ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11[i1].size(); ++i2) { j.write_int(ul_ca_assist_info_r11.affected_carrier_freq_comb_list_r11[i1][i2]); } j.end_array(); } j.end_array(); } j.write_fieldname("victimSystemType-r11"); ul_ca_assist_info_r11.victim_sys_type_r11.to_json(j); j.end_obj(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MBMSInterestIndication-v1310-IEs ::= SEQUENCE SRSASN_CODE mbms_interest_ind_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mbms_services_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mbms_services_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mbms_services_r13, 0, 15)); } return SRSASN_SUCCESS; } SRSASN_CODE mbms_interest_ind_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mbms_services_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mbms_services_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(mbms_services_r13, bref, 0, 15)); } return SRSASN_SUCCESS; } void mbms_interest_ind_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mbms_services_r13_present) { j.start_array("mbms-Services-r13"); for (uint32_t i1 = 0; i1 < mbms_services_r13.size(); ++i1) { mbms_services_r13[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // MeasResults ::= SEQUENCE SRSASN_CODE meas_results_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_neigh_cells_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, meas_id, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_pcell.rsrp_result, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_pcell.rsrq_result, (uint8_t)0, (uint8_t)34)); if (meas_result_neigh_cells_present) { HANDLE_CODE(meas_result_neigh_cells.pack(bref)); } if (ext) { ext_groups_header group_flags(8); rrc_asn1_warn_assert(meas_result_for_ecid_r9_present != (meas_result_for_ecid_r9.get() != NULL), __FILE__, __LINE__); group_flags[0] |= meas_result_for_ecid_r9_present; rrc_asn1_warn_assert(location_info_r10_present != (location_info_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= location_info_r10_present; rrc_asn1_warn_assert(meas_result_serv_freq_list_r10_present != (meas_result_serv_freq_list_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= meas_result_serv_freq_list_r10_present; group_flags[2] |= meas_id_v1250_present; group_flags[2] |= meas_result_pcell_v1250_present; rrc_asn1_warn_assert(meas_result_csi_rs_list_r12_present != (meas_result_csi_rs_list_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= meas_result_csi_rs_list_r12_present; rrc_asn1_warn_assert(meas_result_for_rssi_r13_present != (meas_result_for_rssi_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_result_for_rssi_r13_present; rrc_asn1_warn_assert(meas_result_serv_freq_list_ext_r13_present != (meas_result_serv_freq_list_ext_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_result_serv_freq_list_ext_r13_present; rrc_asn1_warn_assert(meas_result_sstd_r13_present != (meas_result_sstd_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_result_sstd_r13_present; rrc_asn1_warn_assert(meas_result_pcell_v1310_present != (meas_result_pcell_v1310.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_result_pcell_v1310_present; rrc_asn1_warn_assert(ul_pdcp_delay_result_list_r13_present != (ul_pdcp_delay_result_list_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= ul_pdcp_delay_result_list_r13_present; rrc_asn1_warn_assert(meas_result_list_wlan_r13_present != (meas_result_list_wlan_r13.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_result_list_wlan_r13_present; group_flags[4] |= meas_result_pcell_v1360_present; rrc_asn1_warn_assert(meas_result_list_cbr_r14_present != (meas_result_list_cbr_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= meas_result_list_cbr_r14_present; rrc_asn1_warn_assert(meas_result_list_wlan_r14_present != (meas_result_list_wlan_r14.get() != NULL), __FILE__, __LINE__); group_flags[5] |= meas_result_list_wlan_r14_present; rrc_asn1_warn_assert(meas_result_serv_freq_list_nr_r15_present != (meas_result_serv_freq_list_nr_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= meas_result_serv_freq_list_nr_r15_present; rrc_asn1_warn_assert(meas_result_cell_list_sftd_r15_present != (meas_result_cell_list_sftd_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= meas_result_cell_list_sftd_r15_present; rrc_asn1_warn_assert(log_meas_result_list_bt_r15_present != (log_meas_result_list_bt_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= log_meas_result_list_bt_r15_present; rrc_asn1_warn_assert(log_meas_result_list_wlan_r15_present != (log_meas_result_list_wlan_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= log_meas_result_list_wlan_r15_present; rrc_asn1_warn_assert(meas_result_sensing_r15_present != (meas_result_sensing_r15.get() != NULL), __FILE__, __LINE__); group_flags[7] |= meas_result_sensing_r15_present; group_flags[7] |= height_ue_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_for_ecid_r9_present, 1)); if (meas_result_for_ecid_r9_present) { HANDLE_CODE(meas_result_for_ecid_r9->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(location_info_r10_present, 1)); HANDLE_CODE(bref.pack(meas_result_serv_freq_list_r10_present, 1)); if (location_info_r10_present) { HANDLE_CODE(location_info_r10->pack(bref)); } if (meas_result_serv_freq_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_serv_freq_list_r10, 1, 5)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_id_v1250_present, 1)); HANDLE_CODE(bref.pack(meas_result_pcell_v1250_present, 1)); HANDLE_CODE(bref.pack(meas_result_csi_rs_list_r12_present, 1)); if (meas_id_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_id_v1250, (uint8_t)33, (uint8_t)64)); } if (meas_result_pcell_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_pcell_v1250, (int8_t)-30, (int8_t)46)); } if (meas_result_csi_rs_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_csi_rs_list_r12, 1, 8)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_for_rssi_r13_present, 1)); HANDLE_CODE(bref.pack(meas_result_serv_freq_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(meas_result_sstd_r13_present, 1)); HANDLE_CODE(bref.pack(meas_result_pcell_v1310_present, 1)); HANDLE_CODE(bref.pack(ul_pdcp_delay_result_list_r13_present, 1)); HANDLE_CODE(bref.pack(meas_result_list_wlan_r13_present, 1)); if (meas_result_for_rssi_r13_present) { HANDLE_CODE(meas_result_for_rssi_r13->pack(bref)); } if (meas_result_serv_freq_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_serv_freq_list_ext_r13, 1, 32)); } if (meas_result_sstd_r13_present) { HANDLE_CODE(meas_result_sstd_r13->pack(bref)); } if (meas_result_pcell_v1310_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_pcell_v1310->rs_sinr_result_r13, (uint8_t)0, (uint8_t)127)); } if (ul_pdcp_delay_result_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *ul_pdcp_delay_result_list_r13, 1, 6)); } if (meas_result_list_wlan_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_list_wlan_r13, 1, 8)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_pcell_v1360_present, 1)); if (meas_result_pcell_v1360_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_pcell_v1360, (int8_t)-17, (int8_t)-1)); } } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_list_cbr_r14_present, 1)); HANDLE_CODE(bref.pack(meas_result_list_wlan_r14_present, 1)); if (meas_result_list_cbr_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_list_cbr_r14, 1, 72)); } if (meas_result_list_wlan_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_list_wlan_r14, 1, 32)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_serv_freq_list_nr_r15_present, 1)); HANDLE_CODE(bref.pack(meas_result_cell_list_sftd_r15_present, 1)); if (meas_result_serv_freq_list_nr_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_serv_freq_list_nr_r15, 1, 32)); } if (meas_result_cell_list_sftd_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_cell_list_sftd_r15, 1, 3)); } } if (group_flags[7]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(log_meas_result_list_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_result_list_wlan_r15_present, 1)); HANDLE_CODE(bref.pack(meas_result_sensing_r15_present, 1)); HANDLE_CODE(bref.pack(height_ue_r15_present, 1)); if (log_meas_result_list_bt_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *log_meas_result_list_bt_r15, 1, 32)); } if (log_meas_result_list_wlan_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *log_meas_result_list_wlan_r15, 1, 32)); } if (meas_result_sensing_r15_present) { HANDLE_CODE(meas_result_sensing_r15->pack(bref)); } if (height_ue_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, height_ue_r15, (int16_t)-400, (int16_t)8880)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_results_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_present, 1)); HANDLE_CODE(unpack_unalign_integer(meas_id, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_unalign_integer(meas_result_pcell.rsrp_result, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(meas_result_pcell.rsrq_result, bref, (uint8_t)0, (uint8_t)34)); if (meas_result_neigh_cells_present) { HANDLE_CODE(meas_result_neigh_cells.unpack(bref)); } if (ext) { ext_groups_header group_flags(8); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_for_ecid_r9_present, 1)); if (meas_result_for_ecid_r9_present) { meas_result_for_ecid_r9 = make_copy_ptr(meas_result_for_ecid_r9_s()); HANDLE_CODE(meas_result_for_ecid_r9->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(location_info_r10_present, 1)); HANDLE_CODE(bref.unpack(meas_result_serv_freq_list_r10_present, 1)); if (location_info_r10_present) { location_info_r10 = make_copy_ptr(location_info_r10_s()); HANDLE_CODE(location_info_r10->unpack(bref)); } if (meas_result_serv_freq_list_r10_present) { meas_result_serv_freq_list_r10 = make_copy_ptr(meas_result_serv_freq_list_r10_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_serv_freq_list_r10, bref, 1, 5)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_id_v1250_present, 1)); HANDLE_CODE(bref.unpack(meas_result_pcell_v1250_present, 1)); HANDLE_CODE(bref.unpack(meas_result_csi_rs_list_r12_present, 1)); if (meas_id_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_id_v1250, bref, (uint8_t)33, (uint8_t)64)); } if (meas_result_pcell_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_pcell_v1250, bref, (int8_t)-30, (int8_t)46)); } if (meas_result_csi_rs_list_r12_present) { meas_result_csi_rs_list_r12 = make_copy_ptr(meas_result_csi_rs_list_r12_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_csi_rs_list_r12, bref, 1, 8)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_for_rssi_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_result_serv_freq_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_result_sstd_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_result_pcell_v1310_present, 1)); HANDLE_CODE(bref.unpack(ul_pdcp_delay_result_list_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_result_list_wlan_r13_present, 1)); if (meas_result_for_rssi_r13_present) { meas_result_for_rssi_r13 = make_copy_ptr(meas_result_for_rssi_r13_s()); HANDLE_CODE(meas_result_for_rssi_r13->unpack(bref)); } if (meas_result_serv_freq_list_ext_r13_present) { meas_result_serv_freq_list_ext_r13 = make_copy_ptr(meas_result_serv_freq_list_ext_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_serv_freq_list_ext_r13, bref, 1, 32)); } if (meas_result_sstd_r13_present) { meas_result_sstd_r13 = make_copy_ptr(meas_result_sstd_r13_s()); HANDLE_CODE(meas_result_sstd_r13->unpack(bref)); } if (meas_result_pcell_v1310_present) { meas_result_pcell_v1310 = make_copy_ptr(meas_result_pcell_v1310_s_()); HANDLE_CODE( unpack_unalign_integer(meas_result_pcell_v1310->rs_sinr_result_r13, bref, (uint8_t)0, (uint8_t)127)); } if (ul_pdcp_delay_result_list_r13_present) { ul_pdcp_delay_result_list_r13 = make_copy_ptr(ul_pdcp_delay_result_list_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*ul_pdcp_delay_result_list_r13, bref, 1, 6)); } if (meas_result_list_wlan_r13_present) { meas_result_list_wlan_r13 = make_copy_ptr(meas_result_list_wlan_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_list_wlan_r13, bref, 1, 8)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_pcell_v1360_present, 1)); if (meas_result_pcell_v1360_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_pcell_v1360, bref, (int8_t)-17, (int8_t)-1)); } } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_list_cbr_r14_present, 1)); HANDLE_CODE(bref.unpack(meas_result_list_wlan_r14_present, 1)); if (meas_result_list_cbr_r14_present) { meas_result_list_cbr_r14 = make_copy_ptr(meas_result_list_cbr_r14_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_list_cbr_r14, bref, 1, 72)); } if (meas_result_list_wlan_r14_present) { meas_result_list_wlan_r14 = make_copy_ptr(meas_result_list_wlan_r14_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_list_wlan_r14, bref, 1, 32)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_serv_freq_list_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(meas_result_cell_list_sftd_r15_present, 1)); if (meas_result_serv_freq_list_nr_r15_present) { meas_result_serv_freq_list_nr_r15 = make_copy_ptr(meas_result_serv_freq_list_nr_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_serv_freq_list_nr_r15, bref, 1, 32)); } if (meas_result_cell_list_sftd_r15_present) { meas_result_cell_list_sftd_r15 = make_copy_ptr(meas_result_cell_list_sftd_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_cell_list_sftd_r15, bref, 1, 3)); } } if (group_flags[7]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(log_meas_result_list_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_result_list_wlan_r15_present, 1)); HANDLE_CODE(bref.unpack(meas_result_sensing_r15_present, 1)); HANDLE_CODE(bref.unpack(height_ue_r15_present, 1)); if (log_meas_result_list_bt_r15_present) { log_meas_result_list_bt_r15 = make_copy_ptr(log_meas_result_list_bt_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*log_meas_result_list_bt_r15, bref, 1, 32)); } if (log_meas_result_list_wlan_r15_present) { log_meas_result_list_wlan_r15 = make_copy_ptr(log_meas_result_list_wlan_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*log_meas_result_list_wlan_r15, bref, 1, 32)); } if (meas_result_sensing_r15_present) { meas_result_sensing_r15 = make_copy_ptr(meas_result_sensing_r15_s()); HANDLE_CODE(meas_result_sensing_r15->unpack(bref)); } if (height_ue_r15_present) { HANDLE_CODE(unpack_unalign_integer(height_ue_r15, bref, (int16_t)-400, (int16_t)8880)); } } } return SRSASN_SUCCESS; } void meas_results_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measId", meas_id); j.write_fieldname("measResultPCell"); j.start_obj(); j.write_int("rsrpResult", meas_result_pcell.rsrp_result); j.write_int("rsrqResult", meas_result_pcell.rsrq_result); j.end_obj(); if (meas_result_neigh_cells_present) { j.write_fieldname("measResultNeighCells"); meas_result_neigh_cells.to_json(j); } if (ext) { rrc_asn1_warn_assert(meas_result_for_ecid_r9_present != (meas_result_for_ecid_r9.get() != NULL), __FILE__, __LINE__); if (meas_result_for_ecid_r9_present) { j.write_fieldname("measResultForECID-r9"); meas_result_for_ecid_r9->to_json(j); } rrc_asn1_warn_assert(location_info_r10_present != (location_info_r10.get() != NULL), __FILE__, __LINE__); if (location_info_r10_present) { j.write_fieldname("locationInfo-r10"); location_info_r10->to_json(j); } rrc_asn1_warn_assert(meas_result_serv_freq_list_r10_present != (meas_result_serv_freq_list_r10.get() != NULL), __FILE__, __LINE__); if (meas_result_serv_freq_list_r10_present) { j.start_array("measResultServFreqList-r10"); for (uint32_t i1 = 0; i1 < meas_result_serv_freq_list_r10->size(); ++i1) { ((*meas_result_serv_freq_list_r10)[i1]).to_json(j); } j.end_array(); } if (meas_id_v1250_present) { j.write_int("measId-v1250", meas_id_v1250); } if (meas_result_pcell_v1250_present) { j.write_int("measResultPCell-v1250", meas_result_pcell_v1250); } rrc_asn1_warn_assert(meas_result_csi_rs_list_r12_present != (meas_result_csi_rs_list_r12.get() != NULL), __FILE__, __LINE__); if (meas_result_csi_rs_list_r12_present) { j.start_array("measResultCSI-RS-List-r12"); for (uint32_t i1 = 0; i1 < meas_result_csi_rs_list_r12->size(); ++i1) { ((*meas_result_csi_rs_list_r12)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_result_for_rssi_r13_present != (meas_result_for_rssi_r13.get() != NULL), __FILE__, __LINE__); if (meas_result_for_rssi_r13_present) { j.write_fieldname("measResultForRSSI-r13"); meas_result_for_rssi_r13->to_json(j); } rrc_asn1_warn_assert(meas_result_serv_freq_list_ext_r13_present != (meas_result_serv_freq_list_ext_r13.get() != NULL), __FILE__, __LINE__); if (meas_result_serv_freq_list_ext_r13_present) { j.start_array("measResultServFreqListExt-r13"); for (uint32_t i1 = 0; i1 < meas_result_serv_freq_list_ext_r13->size(); ++i1) { ((*meas_result_serv_freq_list_ext_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_result_sstd_r13_present != (meas_result_sstd_r13.get() != NULL), __FILE__, __LINE__); if (meas_result_sstd_r13_present) { j.write_fieldname("measResultSSTD-r13"); meas_result_sstd_r13->to_json(j); } rrc_asn1_warn_assert(meas_result_pcell_v1310_present != (meas_result_pcell_v1310.get() != NULL), __FILE__, __LINE__); if (meas_result_pcell_v1310_present) { j.write_fieldname("measResultPCell-v1310"); j.start_obj(); j.write_int("rs-sinr-Result-r13", meas_result_pcell_v1310->rs_sinr_result_r13); j.end_obj(); } rrc_asn1_warn_assert(ul_pdcp_delay_result_list_r13_present != (ul_pdcp_delay_result_list_r13.get() != NULL), __FILE__, __LINE__); if (ul_pdcp_delay_result_list_r13_present) { j.start_array("ul-PDCP-DelayResultList-r13"); for (uint32_t i1 = 0; i1 < ul_pdcp_delay_result_list_r13->size(); ++i1) { ((*ul_pdcp_delay_result_list_r13)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_result_list_wlan_r13_present != (meas_result_list_wlan_r13.get() != NULL), __FILE__, __LINE__); if (meas_result_list_wlan_r13_present) { j.start_array("measResultListWLAN-r13"); for (uint32_t i1 = 0; i1 < meas_result_list_wlan_r13->size(); ++i1) { ((*meas_result_list_wlan_r13)[i1]).to_json(j); } j.end_array(); } if (meas_result_pcell_v1360_present) { j.write_int("measResultPCell-v1360", meas_result_pcell_v1360); } rrc_asn1_warn_assert(meas_result_list_cbr_r14_present != (meas_result_list_cbr_r14.get() != NULL), __FILE__, __LINE__); if (meas_result_list_cbr_r14_present) { j.start_array("measResultListCBR-r14"); for (uint32_t i1 = 0; i1 < meas_result_list_cbr_r14->size(); ++i1) { ((*meas_result_list_cbr_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_result_list_wlan_r14_present != (meas_result_list_wlan_r14.get() != NULL), __FILE__, __LINE__); if (meas_result_list_wlan_r14_present) { j.start_array("measResultListWLAN-r14"); for (uint32_t i1 = 0; i1 < meas_result_list_wlan_r14->size(); ++i1) { ((*meas_result_list_wlan_r14)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_result_serv_freq_list_nr_r15_present != (meas_result_serv_freq_list_nr_r15.get() != NULL), __FILE__, __LINE__); if (meas_result_serv_freq_list_nr_r15_present) { j.start_array("measResultServFreqListNR-r15"); for (uint32_t i1 = 0; i1 < meas_result_serv_freq_list_nr_r15->size(); ++i1) { ((*meas_result_serv_freq_list_nr_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_result_cell_list_sftd_r15_present != (meas_result_cell_list_sftd_r15.get() != NULL), __FILE__, __LINE__); if (meas_result_cell_list_sftd_r15_present) { j.start_array("measResultCellListSFTD-r15"); for (uint32_t i1 = 0; i1 < meas_result_cell_list_sftd_r15->size(); ++i1) { ((*meas_result_cell_list_sftd_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(log_meas_result_list_bt_r15_present != (log_meas_result_list_bt_r15.get() != NULL), __FILE__, __LINE__); if (log_meas_result_list_bt_r15_present) { j.start_array("logMeasResultListBT-r15"); for (uint32_t i1 = 0; i1 < log_meas_result_list_bt_r15->size(); ++i1) { ((*log_meas_result_list_bt_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(log_meas_result_list_wlan_r15_present != (log_meas_result_list_wlan_r15.get() != NULL), __FILE__, __LINE__); if (log_meas_result_list_wlan_r15_present) { j.start_array("logMeasResultListWLAN-r15"); for (uint32_t i1 = 0; i1 < log_meas_result_list_wlan_r15->size(); ++i1) { ((*log_meas_result_list_wlan_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(meas_result_sensing_r15_present != (meas_result_sensing_r15.get() != NULL), __FILE__, __LINE__); if (meas_result_sensing_r15_present) { j.write_fieldname("measResultSensing-r15"); meas_result_sensing_r15->to_json(j); } if (height_ue_r15_present) { j.write_int("heightUE-r15", height_ue_r15); } } j.end_obj(); } void meas_results_s::meas_result_neigh_cells_c_::destroy_() { switch (type_) { case types::meas_result_list_eutra: c.destroy(); break; case types::meas_result_list_utra: c.destroy(); break; case types::meas_result_list_geran: c.destroy(); break; case types::meas_results_cdma2000: c.destroy(); break; case types::meas_result_neigh_cell_list_nr_r15: c.destroy(); break; default: break; } } void meas_results_s::meas_result_neigh_cells_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::meas_result_list_eutra: c.init(); break; case types::meas_result_list_utra: c.init(); break; case types::meas_result_list_geran: c.init(); break; case types::meas_results_cdma2000: c.init(); break; case types::meas_result_neigh_cell_list_nr_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_results_s::meas_result_neigh_cells_c_"); } } meas_results_s::meas_result_neigh_cells_c_::meas_result_neigh_cells_c_( const meas_results_s::meas_result_neigh_cells_c_& other) { type_ = other.type(); switch (type_) { case types::meas_result_list_eutra: c.init(other.c.get()); break; case types::meas_result_list_utra: c.init(other.c.get()); break; case types::meas_result_list_geran: c.init(other.c.get()); break; case types::meas_results_cdma2000: c.init(other.c.get()); break; case types::meas_result_neigh_cell_list_nr_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_results_s::meas_result_neigh_cells_c_"); } } meas_results_s::meas_result_neigh_cells_c_& meas_results_s::meas_result_neigh_cells_c_:: operator=(const meas_results_s::meas_result_neigh_cells_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::meas_result_list_eutra: c.set(other.c.get()); break; case types::meas_result_list_utra: c.set(other.c.get()); break; case types::meas_result_list_geran: c.set(other.c.get()); break; case types::meas_results_cdma2000: c.set(other.c.get()); break; case types::meas_result_neigh_cell_list_nr_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_results_s::meas_result_neigh_cells_c_"); } return *this; } void meas_results_s::meas_result_neigh_cells_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::meas_result_list_eutra: j.start_array("measResultListEUTRA"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::meas_result_list_utra: j.start_array("measResultListUTRA"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::meas_result_list_geran: j.start_array("measResultListGERAN"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; case types::meas_results_cdma2000: j.write_fieldname("measResultsCDMA2000"); c.get().to_json(j); break; case types::meas_result_neigh_cell_list_nr_r15: j.start_array("measResultNeighCellListNR-r15"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "meas_results_s::meas_result_neigh_cells_c_"); } j.end_obj(); } SRSASN_CODE meas_results_s::meas_result_neigh_cells_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::meas_result_list_eutra: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); break; case types::meas_result_list_utra: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); break; case types::meas_result_list_geran: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); break; case types::meas_results_cdma2000: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_result_neigh_cell_list_nr_r15: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); } break; default: log_invalid_choice_id(type_, "meas_results_s::meas_result_neigh_cells_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_results_s::meas_result_neigh_cells_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::meas_result_list_eutra: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); break; case types::meas_result_list_utra: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); break; case types::meas_result_list_geran: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); break; case types::meas_results_cdma2000: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_result_neigh_cell_list_nr_r15: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); } break; default: log_invalid_choice_id(type_, "meas_results_s::meas_result_neigh_cells_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasurementReport-v8a0-IEs ::= SEQUENCE SRSASN_CODE meas_report_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_report_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void meas_report_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // ProximityIndication-v930-IEs ::= SEQUENCE SRSASN_CODE proximity_ind_v930_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE proximity_ind_v930_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void proximity_ind_v930_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RLF-Report-r9 ::= SEQUENCE SRSASN_CODE rlf_report_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r9_present, 1)); HANDLE_CODE(bref.pack(meas_result_last_serv_cell_r9.rsrq_result_r9_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_last_serv_cell_r9.rsrp_result_r9, (uint8_t)0, (uint8_t)97)); if (meas_result_last_serv_cell_r9.rsrq_result_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_last_serv_cell_r9.rsrq_result_r9, (uint8_t)0, (uint8_t)34)); } if (meas_result_neigh_cells_r9_present) { HANDLE_CODE(bref.pack(meas_result_neigh_cells_r9.meas_result_list_eutra_r9_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r9.meas_result_list_utra_r9_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r9.meas_result_list_geran_r9_present, 1)); HANDLE_CODE(bref.pack(meas_result_neigh_cells_r9.meas_results_cdma2000_r9_present, 1)); if (meas_result_neigh_cells_r9.meas_result_list_eutra_r9_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r9.meas_result_list_eutra_r9, 1, 8)); } if (meas_result_neigh_cells_r9.meas_result_list_utra_r9_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r9.meas_result_list_utra_r9, 1, 8)); } if (meas_result_neigh_cells_r9.meas_result_list_geran_r9_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r9.meas_result_list_geran_r9, 1, 8)); } if (meas_result_neigh_cells_r9.meas_results_cdma2000_r9_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_r9.meas_results_cdma2000_r9, 1, 8)); } } if (ext) { ext_groups_header group_flags(7); rrc_asn1_warn_assert(location_info_r10_present != (location_info_r10.get() != NULL), __FILE__, __LINE__); group_flags[0] |= location_info_r10_present; rrc_asn1_warn_assert(failed_pcell_id_r10_present != (failed_pcell_id_r10.get() != NULL), __FILE__, __LINE__); group_flags[0] |= failed_pcell_id_r10_present; rrc_asn1_warn_assert(reest_cell_id_r10_present != (reest_cell_id_r10.get() != NULL), __FILE__, __LINE__); group_flags[0] |= reest_cell_id_r10_present; group_flags[0] |= time_conn_fail_r10_present; group_flags[0] |= conn_fail_type_r10_present; rrc_asn1_warn_assert(prev_pcell_id_r10_present != (prev_pcell_id_r10.get() != NULL), __FILE__, __LINE__); group_flags[0] |= prev_pcell_id_r10_present; rrc_asn1_warn_assert(failed_pcell_id_v1090_present != (failed_pcell_id_v1090.get() != NULL), __FILE__, __LINE__); group_flags[1] |= failed_pcell_id_v1090_present; rrc_asn1_warn_assert(basic_fields_r11_present != (basic_fields_r11.get() != NULL), __FILE__, __LINE__); group_flags[2] |= basic_fields_r11_present; rrc_asn1_warn_assert(prev_utra_cell_id_r11_present != (prev_utra_cell_id_r11.get() != NULL), __FILE__, __LINE__); group_flags[2] |= prev_utra_cell_id_r11_present; rrc_asn1_warn_assert(sel_utra_cell_id_r11_present != (sel_utra_cell_id_r11.get() != NULL), __FILE__, __LINE__); group_flags[2] |= sel_utra_cell_id_r11_present; rrc_asn1_warn_assert(failed_pcell_id_v1250_present != (failed_pcell_id_v1250.get() != NULL), __FILE__, __LINE__); group_flags[3] |= failed_pcell_id_v1250_present; group_flags[3] |= meas_result_last_serv_cell_v1250_present; rrc_asn1_warn_assert(last_serv_cell_rsrq_type_r12_present != (last_serv_cell_rsrq_type_r12.get() != NULL), __FILE__, __LINE__); group_flags[3] |= last_serv_cell_rsrq_type_r12_present; rrc_asn1_warn_assert(meas_result_list_eutra_v1250_present != (meas_result_list_eutra_v1250.get() != NULL), __FILE__, __LINE__); group_flags[3] |= meas_result_list_eutra_v1250_present; group_flags[4] |= drb_established_with_qci_minus1_r13_present; group_flags[5] |= meas_result_last_serv_cell_v1360_present; rrc_asn1_warn_assert(log_meas_result_list_bt_r15_present != (log_meas_result_list_bt_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= log_meas_result_list_bt_r15_present; rrc_asn1_warn_assert(log_meas_result_list_wlan_r15_present != (log_meas_result_list_wlan_r15.get() != NULL), __FILE__, __LINE__); group_flags[6] |= log_meas_result_list_wlan_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(location_info_r10_present, 1)); HANDLE_CODE(bref.pack(failed_pcell_id_r10_present, 1)); HANDLE_CODE(bref.pack(reest_cell_id_r10_present, 1)); HANDLE_CODE(bref.pack(time_conn_fail_r10_present, 1)); HANDLE_CODE(bref.pack(conn_fail_type_r10_present, 1)); HANDLE_CODE(bref.pack(prev_pcell_id_r10_present, 1)); if (location_info_r10_present) { HANDLE_CODE(location_info_r10->pack(bref)); } if (failed_pcell_id_r10_present) { HANDLE_CODE(failed_pcell_id_r10->pack(bref)); } if (reest_cell_id_r10_present) { HANDLE_CODE(reest_cell_id_r10->pack(bref)); } if (time_conn_fail_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, time_conn_fail_r10, (uint16_t)0, (uint16_t)1023)); } if (conn_fail_type_r10_present) { HANDLE_CODE(pack_enum(bref, conn_fail_type_r10)); } if (prev_pcell_id_r10_present) { HANDLE_CODE(prev_pcell_id_r10->pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(failed_pcell_id_v1090_present, 1)); if (failed_pcell_id_v1090_present) { HANDLE_CODE( pack_unalign_integer(bref, failed_pcell_id_v1090->carrier_freq_v1090, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(basic_fields_r11_present, 1)); HANDLE_CODE(bref.pack(prev_utra_cell_id_r11_present, 1)); HANDLE_CODE(bref.pack(sel_utra_cell_id_r11_present, 1)); if (basic_fields_r11_present) { HANDLE_CODE(basic_fields_r11->c_rnti_r11.pack(bref)); HANDLE_CODE(pack_enum(bref, basic_fields_r11->rlf_cause_r11)); HANDLE_CODE(pack_unalign_integer(bref, basic_fields_r11->time_since_fail_r11, (uint32_t)0, (uint32_t)172800)); } if (prev_utra_cell_id_r11_present) { HANDLE_CODE(bref.pack(prev_utra_cell_id_r11->cell_global_id_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, prev_utra_cell_id_r11->carrier_freq_r11, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(prev_utra_cell_id_r11->pci_r11.pack(bref)); if (prev_utra_cell_id_r11->cell_global_id_r11_present) { HANDLE_CODE(prev_utra_cell_id_r11->cell_global_id_r11.pack(bref)); } } if (sel_utra_cell_id_r11_present) { HANDLE_CODE(pack_unalign_integer(bref, sel_utra_cell_id_r11->carrier_freq_r11, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(sel_utra_cell_id_r11->pci_r11.pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(failed_pcell_id_v1250_present, 1)); HANDLE_CODE(bref.pack(meas_result_last_serv_cell_v1250_present, 1)); HANDLE_CODE(bref.pack(last_serv_cell_rsrq_type_r12_present, 1)); HANDLE_CODE(bref.pack(meas_result_list_eutra_v1250_present, 1)); if (failed_pcell_id_v1250_present) { HANDLE_CODE(failed_pcell_id_v1250->tac_failed_pcell_r12.pack(bref)); } if (meas_result_last_serv_cell_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_last_serv_cell_v1250, (int8_t)-30, (int8_t)46)); } if (last_serv_cell_rsrq_type_r12_present) { HANDLE_CODE(last_serv_cell_rsrq_type_r12->pack(bref)); } if (meas_result_list_eutra_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *meas_result_list_eutra_v1250, 1, 8)); } } if (group_flags[4]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(drb_established_with_qci_minus1_r13_present, 1)); } if (group_flags[5]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(meas_result_last_serv_cell_v1360_present, 1)); if (meas_result_last_serv_cell_v1360_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_last_serv_cell_v1360, (int8_t)-17, (int8_t)-1)); } } if (group_flags[6]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(log_meas_result_list_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_result_list_wlan_r15_present, 1)); if (log_meas_result_list_bt_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *log_meas_result_list_bt_r15, 1, 32)); } if (log_meas_result_list_wlan_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *log_meas_result_list_wlan_r15, 1, 32)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rlf_report_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r9_present, 1)); HANDLE_CODE(bref.unpack(meas_result_last_serv_cell_r9.rsrq_result_r9_present, 1)); HANDLE_CODE(unpack_unalign_integer(meas_result_last_serv_cell_r9.rsrp_result_r9, bref, (uint8_t)0, (uint8_t)97)); if (meas_result_last_serv_cell_r9.rsrq_result_r9_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_last_serv_cell_r9.rsrq_result_r9, bref, (uint8_t)0, (uint8_t)34)); } if (meas_result_neigh_cells_r9_present) { HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r9.meas_result_list_eutra_r9_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r9.meas_result_list_utra_r9_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r9.meas_result_list_geran_r9_present, 1)); HANDLE_CODE(bref.unpack(meas_result_neigh_cells_r9.meas_results_cdma2000_r9_present, 1)); if (meas_result_neigh_cells_r9.meas_result_list_eutra_r9_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r9.meas_result_list_eutra_r9, bref, 1, 8)); } if (meas_result_neigh_cells_r9.meas_result_list_utra_r9_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r9.meas_result_list_utra_r9, bref, 1, 8)); } if (meas_result_neigh_cells_r9.meas_result_list_geran_r9_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r9.meas_result_list_geran_r9, bref, 1, 8)); } if (meas_result_neigh_cells_r9.meas_results_cdma2000_r9_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_r9.meas_results_cdma2000_r9, bref, 1, 8)); } } if (ext) { ext_groups_header group_flags(7); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(location_info_r10_present, 1)); HANDLE_CODE(bref.unpack(failed_pcell_id_r10_present, 1)); HANDLE_CODE(bref.unpack(reest_cell_id_r10_present, 1)); HANDLE_CODE(bref.unpack(time_conn_fail_r10_present, 1)); HANDLE_CODE(bref.unpack(conn_fail_type_r10_present, 1)); HANDLE_CODE(bref.unpack(prev_pcell_id_r10_present, 1)); if (location_info_r10_present) { location_info_r10 = make_copy_ptr(location_info_r10_s()); HANDLE_CODE(location_info_r10->unpack(bref)); } if (failed_pcell_id_r10_present) { failed_pcell_id_r10 = make_copy_ptr(failed_pcell_id_r10_c_()); HANDLE_CODE(failed_pcell_id_r10->unpack(bref)); } if (reest_cell_id_r10_present) { reest_cell_id_r10 = make_copy_ptr(cell_global_id_eutra_s()); HANDLE_CODE(reest_cell_id_r10->unpack(bref)); } if (time_conn_fail_r10_present) { HANDLE_CODE(unpack_unalign_integer(time_conn_fail_r10, bref, (uint16_t)0, (uint16_t)1023)); } if (conn_fail_type_r10_present) { HANDLE_CODE(unpack_enum(conn_fail_type_r10, bref)); } if (prev_pcell_id_r10_present) { prev_pcell_id_r10 = make_copy_ptr(cell_global_id_eutra_s()); HANDLE_CODE(prev_pcell_id_r10->unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(failed_pcell_id_v1090_present, 1)); if (failed_pcell_id_v1090_present) { failed_pcell_id_v1090 = make_copy_ptr(failed_pcell_id_v1090_s_()); HANDLE_CODE( unpack_unalign_integer(failed_pcell_id_v1090->carrier_freq_v1090, bref, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(basic_fields_r11_present, 1)); HANDLE_CODE(bref.unpack(prev_utra_cell_id_r11_present, 1)); HANDLE_CODE(bref.unpack(sel_utra_cell_id_r11_present, 1)); if (basic_fields_r11_present) { basic_fields_r11 = make_copy_ptr(basic_fields_r11_s_()); HANDLE_CODE(basic_fields_r11->c_rnti_r11.unpack(bref)); HANDLE_CODE(unpack_enum(basic_fields_r11->rlf_cause_r11, bref)); HANDLE_CODE(unpack_unalign_integer(basic_fields_r11->time_since_fail_r11, bref, (uint32_t)0, (uint32_t)172800)); } if (prev_utra_cell_id_r11_present) { prev_utra_cell_id_r11 = make_copy_ptr(prev_utra_cell_id_r11_s_()); HANDLE_CODE(bref.unpack(prev_utra_cell_id_r11->cell_global_id_r11_present, 1)); HANDLE_CODE( unpack_unalign_integer(prev_utra_cell_id_r11->carrier_freq_r11, bref, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(prev_utra_cell_id_r11->pci_r11.unpack(bref)); if (prev_utra_cell_id_r11->cell_global_id_r11_present) { HANDLE_CODE(prev_utra_cell_id_r11->cell_global_id_r11.unpack(bref)); } } if (sel_utra_cell_id_r11_present) { sel_utra_cell_id_r11 = make_copy_ptr(sel_utra_cell_id_r11_s_()); HANDLE_CODE(unpack_unalign_integer(sel_utra_cell_id_r11->carrier_freq_r11, bref, (uint16_t)0, (uint16_t)16383)); HANDLE_CODE(sel_utra_cell_id_r11->pci_r11.unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(failed_pcell_id_v1250_present, 1)); HANDLE_CODE(bref.unpack(meas_result_last_serv_cell_v1250_present, 1)); HANDLE_CODE(bref.unpack(last_serv_cell_rsrq_type_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_result_list_eutra_v1250_present, 1)); if (failed_pcell_id_v1250_present) { failed_pcell_id_v1250 = make_copy_ptr(failed_pcell_id_v1250_s_()); HANDLE_CODE(failed_pcell_id_v1250->tac_failed_pcell_r12.unpack(bref)); } if (meas_result_last_serv_cell_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_last_serv_cell_v1250, bref, (int8_t)-30, (int8_t)46)); } if (last_serv_cell_rsrq_type_r12_present) { last_serv_cell_rsrq_type_r12 = make_copy_ptr(rsrq_type_r12_s()); HANDLE_CODE(last_serv_cell_rsrq_type_r12->unpack(bref)); } if (meas_result_list_eutra_v1250_present) { meas_result_list_eutra_v1250 = make_copy_ptr(meas_result_list2_eutra_v1250_l()); HANDLE_CODE(unpack_dyn_seq_of(*meas_result_list_eutra_v1250, bref, 1, 8)); } } if (group_flags[4]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(drb_established_with_qci_minus1_r13_present, 1)); } if (group_flags[5]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(meas_result_last_serv_cell_v1360_present, 1)); if (meas_result_last_serv_cell_v1360_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_last_serv_cell_v1360, bref, (int8_t)-17, (int8_t)-1)); } } if (group_flags[6]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(log_meas_result_list_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_result_list_wlan_r15_present, 1)); if (log_meas_result_list_bt_r15_present) { log_meas_result_list_bt_r15 = make_copy_ptr(log_meas_result_list_bt_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*log_meas_result_list_bt_r15, bref, 1, 32)); } if (log_meas_result_list_wlan_r15_present) { log_meas_result_list_wlan_r15 = make_copy_ptr(log_meas_result_list_wlan_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*log_meas_result_list_wlan_r15, bref, 1, 32)); } } } return SRSASN_SUCCESS; } void rlf_report_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("measResultLastServCell-r9"); j.start_obj(); j.write_int("rsrpResult-r9", meas_result_last_serv_cell_r9.rsrp_result_r9); if (meas_result_last_serv_cell_r9.rsrq_result_r9_present) { j.write_int("rsrqResult-r9", meas_result_last_serv_cell_r9.rsrq_result_r9); } j.end_obj(); if (meas_result_neigh_cells_r9_present) { j.write_fieldname("measResultNeighCells-r9"); j.start_obj(); if (meas_result_neigh_cells_r9.meas_result_list_eutra_r9_present) { j.start_array("measResultListEUTRA-r9"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r9.meas_result_list_eutra_r9.size(); ++i1) { meas_result_neigh_cells_r9.meas_result_list_eutra_r9[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r9.meas_result_list_utra_r9_present) { j.start_array("measResultListUTRA-r9"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r9.meas_result_list_utra_r9.size(); ++i1) { meas_result_neigh_cells_r9.meas_result_list_utra_r9[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r9.meas_result_list_geran_r9_present) { j.start_array("measResultListGERAN-r9"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r9.meas_result_list_geran_r9.size(); ++i1) { meas_result_neigh_cells_r9.meas_result_list_geran_r9[i1].to_json(j); } j.end_array(); } if (meas_result_neigh_cells_r9.meas_results_cdma2000_r9_present) { j.start_array("measResultsCDMA2000-r9"); for (uint32_t i1 = 0; i1 < meas_result_neigh_cells_r9.meas_results_cdma2000_r9.size(); ++i1) { meas_result_neigh_cells_r9.meas_results_cdma2000_r9[i1].to_json(j); } j.end_array(); } j.end_obj(); } if (ext) { rrc_asn1_warn_assert(location_info_r10_present != (location_info_r10.get() != NULL), __FILE__, __LINE__); if (location_info_r10_present) { j.write_fieldname("locationInfo-r10"); location_info_r10->to_json(j); } rrc_asn1_warn_assert(failed_pcell_id_r10_present != (failed_pcell_id_r10.get() != NULL), __FILE__, __LINE__); if (failed_pcell_id_r10_present) { j.write_fieldname("failedPCellId-r10"); failed_pcell_id_r10->to_json(j); } rrc_asn1_warn_assert(reest_cell_id_r10_present != (reest_cell_id_r10.get() != NULL), __FILE__, __LINE__); if (reest_cell_id_r10_present) { j.write_fieldname("reestablishmentCellId-r10"); reest_cell_id_r10->to_json(j); } if (time_conn_fail_r10_present) { j.write_int("timeConnFailure-r10", time_conn_fail_r10); } if (conn_fail_type_r10_present) { j.write_str("connectionFailureType-r10", conn_fail_type_r10.to_string()); } rrc_asn1_warn_assert(prev_pcell_id_r10_present != (prev_pcell_id_r10.get() != NULL), __FILE__, __LINE__); if (prev_pcell_id_r10_present) { j.write_fieldname("previousPCellId-r10"); prev_pcell_id_r10->to_json(j); } rrc_asn1_warn_assert(failed_pcell_id_v1090_present != (failed_pcell_id_v1090.get() != NULL), __FILE__, __LINE__); if (failed_pcell_id_v1090_present) { j.write_fieldname("failedPCellId-v1090"); j.start_obj(); j.write_int("carrierFreq-v1090", failed_pcell_id_v1090->carrier_freq_v1090); j.end_obj(); } rrc_asn1_warn_assert(basic_fields_r11_present != (basic_fields_r11.get() != NULL), __FILE__, __LINE__); if (basic_fields_r11_present) { j.write_fieldname("basicFields-r11"); j.start_obj(); j.write_str("c-RNTI-r11", basic_fields_r11->c_rnti_r11.to_string()); j.write_str("rlf-Cause-r11", basic_fields_r11->rlf_cause_r11.to_string()); j.write_int("timeSinceFailure-r11", basic_fields_r11->time_since_fail_r11); j.end_obj(); } rrc_asn1_warn_assert(prev_utra_cell_id_r11_present != (prev_utra_cell_id_r11.get() != NULL), __FILE__, __LINE__); if (prev_utra_cell_id_r11_present) { j.write_fieldname("previousUTRA-CellId-r11"); j.start_obj(); j.write_int("carrierFreq-r11", prev_utra_cell_id_r11->carrier_freq_r11); j.write_fieldname("physCellId-r11"); prev_utra_cell_id_r11->pci_r11.to_json(j); if (prev_utra_cell_id_r11->cell_global_id_r11_present) { j.write_fieldname("cellGlobalId-r11"); prev_utra_cell_id_r11->cell_global_id_r11.to_json(j); } j.end_obj(); } rrc_asn1_warn_assert(sel_utra_cell_id_r11_present != (sel_utra_cell_id_r11.get() != NULL), __FILE__, __LINE__); if (sel_utra_cell_id_r11_present) { j.write_fieldname("selectedUTRA-CellId-r11"); j.start_obj(); j.write_int("carrierFreq-r11", sel_utra_cell_id_r11->carrier_freq_r11); j.write_fieldname("physCellId-r11"); sel_utra_cell_id_r11->pci_r11.to_json(j); j.end_obj(); } rrc_asn1_warn_assert(failed_pcell_id_v1250_present != (failed_pcell_id_v1250.get() != NULL), __FILE__, __LINE__); if (failed_pcell_id_v1250_present) { j.write_fieldname("failedPCellId-v1250"); j.start_obj(); j.write_str("tac-FailedPCell-r12", failed_pcell_id_v1250->tac_failed_pcell_r12.to_string()); j.end_obj(); } if (meas_result_last_serv_cell_v1250_present) { j.write_int("measResultLastServCell-v1250", meas_result_last_serv_cell_v1250); } rrc_asn1_warn_assert(last_serv_cell_rsrq_type_r12_present != (last_serv_cell_rsrq_type_r12.get() != NULL), __FILE__, __LINE__); if (last_serv_cell_rsrq_type_r12_present) { j.write_fieldname("lastServCellRSRQ-Type-r12"); last_serv_cell_rsrq_type_r12->to_json(j); } rrc_asn1_warn_assert(meas_result_list_eutra_v1250_present != (meas_result_list_eutra_v1250.get() != NULL), __FILE__, __LINE__); if (meas_result_list_eutra_v1250_present) { j.start_array("measResultListEUTRA-v1250"); for (uint32_t i1 = 0; i1 < meas_result_list_eutra_v1250->size(); ++i1) { ((*meas_result_list_eutra_v1250)[i1]).to_json(j); } j.end_array(); } if (drb_established_with_qci_minus1_r13_present) { j.write_str("drb-EstablishedWithQCI-1-r13", "qci1"); } if (meas_result_last_serv_cell_v1360_present) { j.write_int("measResultLastServCell-v1360", meas_result_last_serv_cell_v1360); } rrc_asn1_warn_assert(log_meas_result_list_bt_r15_present != (log_meas_result_list_bt_r15.get() != NULL), __FILE__, __LINE__); if (log_meas_result_list_bt_r15_present) { j.start_array("logMeasResultListBT-r15"); for (uint32_t i1 = 0; i1 < log_meas_result_list_bt_r15->size(); ++i1) { ((*log_meas_result_list_bt_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(log_meas_result_list_wlan_r15_present != (log_meas_result_list_wlan_r15.get() != NULL), __FILE__, __LINE__); if (log_meas_result_list_wlan_r15_present) { j.start_array("logMeasResultListWLAN-r15"); for (uint32_t i1 = 0; i1 < log_meas_result_list_wlan_r15->size(); ++i1) { ((*log_meas_result_list_wlan_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } void rlf_report_r9_s::failed_pcell_id_r10_c_::destroy_() { switch (type_) { case types::cell_global_id_r10: c.destroy(); break; case types::pci_arfcn_r10: c.destroy(); break; default: break; } } void rlf_report_r9_s::failed_pcell_id_r10_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::cell_global_id_r10: c.init(); break; case types::pci_arfcn_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::failed_pcell_id_r10_c_"); } } rlf_report_r9_s::failed_pcell_id_r10_c_::failed_pcell_id_r10_c_(const rlf_report_r9_s::failed_pcell_id_r10_c_& other) { type_ = other.type(); switch (type_) { case types::cell_global_id_r10: c.init(other.c.get()); break; case types::pci_arfcn_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::failed_pcell_id_r10_c_"); } } rlf_report_r9_s::failed_pcell_id_r10_c_& rlf_report_r9_s::failed_pcell_id_r10_c_:: operator=(const rlf_report_r9_s::failed_pcell_id_r10_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::cell_global_id_r10: c.set(other.c.get()); break; case types::pci_arfcn_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::failed_pcell_id_r10_c_"); } return *this; } void rlf_report_r9_s::failed_pcell_id_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::cell_global_id_r10: j.write_fieldname("cellGlobalId-r10"); c.get().to_json(j); break; case types::pci_arfcn_r10: j.write_fieldname("pci-arfcn-r10"); j.start_obj(); j.write_int("physCellId-r10", c.get().pci_r10); j.write_int("carrierFreq-r10", c.get().carrier_freq_r10); j.end_obj(); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::failed_pcell_id_r10_c_"); } j.end_obj(); } SRSASN_CODE rlf_report_r9_s::failed_pcell_id_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::cell_global_id_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::pci_arfcn_r10: HANDLE_CODE(pack_unalign_integer(bref, c.get().pci_r10, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, c.get().carrier_freq_r10, (uint16_t)0, (uint16_t)65535)); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::failed_pcell_id_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlf_report_r9_s::failed_pcell_id_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::cell_global_id_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::pci_arfcn_r10: HANDLE_CODE(unpack_unalign_integer(c.get().pci_r10, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE( unpack_unalign_integer(c.get().carrier_freq_r10, bref, (uint16_t)0, (uint16_t)65535)); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::failed_pcell_id_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::destroy_() {} void rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::set(types::options e) { destroy_(); type_ = e; } rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::pci_r11_c_( const rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_& other) { type_ = other.type(); switch (type_) { case types::fdd_r11: c.init(other.c.get()); break; case types::tdd_r11: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_"); } } rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_& rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_:: operator=(const rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd_r11: c.set(other.c.get()); break; case types::tdd_r11: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_"); } return *this; } void rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd_r11: j.write_int("fdd-r11", c.get()); break; case types::tdd_r11: j.write_int("tdd-r11", c.get()); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_"); } j.end_obj(); } SRSASN_CODE rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd_r11: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::tdd_r11: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd_r11: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::tdd_r11: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::destroy_() {} void rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::set(types::options e) { destroy_(); type_ = e; } rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::pci_r11_c_( const rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_& other) { type_ = other.type(); switch (type_) { case types::fdd_r11: c.init(other.c.get()); break; case types::tdd_r11: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_"); } } rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_& rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_:: operator=(const rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd_r11: c.set(other.c.get()); break; case types::tdd_r11: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_"); } return *this; } void rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd_r11: j.write_int("fdd-r11", c.get()); break; case types::tdd_r11: j.write_int("tdd-r11", c.get()); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_"); } j.end_obj(); } SRSASN_CODE rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd_r11: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::tdd_r11: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd_r11: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::tdd_r11: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_complete_v920_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rlf_info_available_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_v920_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rlf_info_available_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_complete_v920_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rlf_info_available_r9_present) { j.write_str("rlf-InfoAvailable-r9", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionResumeComplete-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_resume_complete_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_wlan_r15_present, 1)); HANDLE_CODE(bref.pack(idle_meas_available_r15_present, 1)); HANDLE_CODE(bref.pack(flight_path_info_available_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_complete_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(log_meas_available_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_wlan_r15_present, 1)); HANDLE_CODE(bref.unpack(idle_meas_available_r15_present, 1)); HANDLE_CODE(bref.unpack(flight_path_info_available_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); return SRSASN_SUCCESS; } void rrc_conn_resume_complete_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (log_meas_available_bt_r15_present) { j.write_str("logMeasAvailableBT-r15", "true"); } if (log_meas_available_wlan_r15_present) { j.write_str("logMeasAvailableWLAN-r15", "true"); } if (idle_meas_available_r15_present) { j.write_str("idleMeasAvailable-r15", "true"); } if (flight_path_info_available_r15_present) { j.write_str("flightPathInfoAvailable-r15", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RegisteredMME ::= SEQUENCE SRSASN_CODE registered_mme_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(plmn_id_present, 1)); if (plmn_id_present) { HANDLE_CODE(plmn_id.pack(bref)); } HANDLE_CODE(mmegi.pack(bref)); HANDLE_CODE(mmec.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE registered_mme_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(plmn_id_present, 1)); if (plmn_id_present) { HANDLE_CODE(plmn_id.unpack(bref)); } HANDLE_CODE(mmegi.unpack(bref)); HANDLE_CODE(mmec.unpack(bref)); return SRSASN_SUCCESS; } void registered_mme_s::to_json(json_writer& j) const { j.start_obj(); if (plmn_id_present) { j.write_fieldname("plmn-Identity"); plmn_id.to_json(j); } j.write_str("mmegi", mmegi.to_string()); j.write_str("mmec", mmec.to_string()); j.end_obj(); } // SCGFailureInformation-v1310-IEs ::= SEQUENCE SRSASN_CODE scg_fail_info_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void scg_fail_info_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SecurityModeComplete-v8a0-IEs ::= SEQUENCE SRSASN_CODE security_mode_complete_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_complete_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void security_mode_complete_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SecurityModeFailure-v8a0-IEs ::= SEQUENCE SRSASN_CODE security_mode_fail_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_fail_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void security_mode_fail_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SidelinkUEInformation-v1310-IEs ::= SEQUENCE SRSASN_CODE sidelink_ue_info_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(comm_tx_res_req_uc_r13_present, 1)); HANDLE_CODE(bref.pack(comm_tx_res_info_req_relay_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_res_req_v1310_present, 1)); HANDLE_CODE(bref.pack(disc_tx_res_req_ps_r13_present, 1)); HANDLE_CODE(bref.pack(disc_rx_gap_req_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_gap_req_r13_present, 1)); HANDLE_CODE(bref.pack(disc_sys_info_report_freq_list_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (comm_tx_res_req_uc_r13_present) { HANDLE_CODE(comm_tx_res_req_uc_r13.pack(bref)); } if (comm_tx_res_info_req_relay_r13_present) { HANDLE_CODE(bref.pack(comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_r13_present, 1)); HANDLE_CODE(bref.pack(comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_uc_r13_present, 1)); if (comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_r13_present) { HANDLE_CODE(comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_r13.pack(bref)); } if (comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_uc_r13_present) { HANDLE_CODE(comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_uc_r13.pack(bref)); } HANDLE_CODE(pack_enum(bref, comm_tx_res_info_req_relay_r13.ue_type_r13)); } if (disc_tx_res_req_v1310_present) { HANDLE_CODE(bref.pack(disc_tx_res_req_v1310.carrier_freq_disc_tx_r13_present, 1)); HANDLE_CODE(bref.pack(disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13_present, 1)); if (disc_tx_res_req_v1310.carrier_freq_disc_tx_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, disc_tx_res_req_v1310.carrier_freq_disc_tx_r13, (uint8_t)1, (uint8_t)8)); } if (disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13, 1, 8)); } } if (disc_tx_res_req_ps_r13_present) { HANDLE_CODE(disc_tx_res_req_ps_r13.pack(bref)); } if (disc_rx_gap_req_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_rx_gap_req_r13, 1, 8)); } if (disc_tx_gap_req_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_tx_gap_req_r13, 1, 8)); } if (disc_sys_info_report_freq_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_sys_info_report_freq_list_r13, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sidelink_ue_info_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(comm_tx_res_req_uc_r13_present, 1)); HANDLE_CODE(bref.unpack(comm_tx_res_info_req_relay_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_res_req_v1310_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_res_req_ps_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_rx_gap_req_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_gap_req_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_sys_info_report_freq_list_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (comm_tx_res_req_uc_r13_present) { HANDLE_CODE(comm_tx_res_req_uc_r13.unpack(bref)); } if (comm_tx_res_info_req_relay_r13_present) { HANDLE_CODE(bref.unpack(comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_r13_present, 1)); HANDLE_CODE(bref.unpack(comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_uc_r13_present, 1)); if (comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_r13_present) { HANDLE_CODE(comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_r13.unpack(bref)); } if (comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_uc_r13_present) { HANDLE_CODE(comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_uc_r13.unpack(bref)); } HANDLE_CODE(unpack_enum(comm_tx_res_info_req_relay_r13.ue_type_r13, bref)); } if (disc_tx_res_req_v1310_present) { HANDLE_CODE(bref.unpack(disc_tx_res_req_v1310.carrier_freq_disc_tx_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13_present, 1)); if (disc_tx_res_req_v1310.carrier_freq_disc_tx_r13_present) { HANDLE_CODE(unpack_unalign_integer(disc_tx_res_req_v1310.carrier_freq_disc_tx_r13, bref, (uint8_t)1, (uint8_t)8)); } if (disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13, bref, 1, 8)); } } if (disc_tx_res_req_ps_r13_present) { HANDLE_CODE(disc_tx_res_req_ps_r13.unpack(bref)); } if (disc_rx_gap_req_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_rx_gap_req_r13, bref, 1, 8)); } if (disc_tx_gap_req_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_tx_gap_req_r13, bref, 1, 8)); } if (disc_sys_info_report_freq_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_sys_info_report_freq_list_r13, bref, 1, 8)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sidelink_ue_info_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (comm_tx_res_req_uc_r13_present) { j.write_fieldname("commTxResourceReqUC-r13"); comm_tx_res_req_uc_r13.to_json(j); } if (comm_tx_res_info_req_relay_r13_present) { j.write_fieldname("commTxResourceInfoReqRelay-r13"); j.start_obj(); if (comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_r13_present) { j.write_fieldname("commTxResourceReqRelay-r13"); comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_r13.to_json(j); } if (comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_uc_r13_present) { j.write_fieldname("commTxResourceReqRelayUC-r13"); comm_tx_res_info_req_relay_r13.comm_tx_res_req_relay_uc_r13.to_json(j); } j.write_str("ue-Type-r13", comm_tx_res_info_req_relay_r13.ue_type_r13.to_string()); j.end_obj(); } if (disc_tx_res_req_v1310_present) { j.write_fieldname("discTxResourceReq-v1310"); j.start_obj(); if (disc_tx_res_req_v1310.carrier_freq_disc_tx_r13_present) { j.write_int("carrierFreqDiscTx-r13", disc_tx_res_req_v1310.carrier_freq_disc_tx_r13); } if (disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13_present) { j.start_array("discTxResourceReqAddFreq-r13"); for (uint32_t i1 = 0; i1 < disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13.size(); ++i1) { disc_tx_res_req_v1310.disc_tx_res_req_add_freq_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } if (disc_tx_res_req_ps_r13_present) { j.write_fieldname("discTxResourceReqPS-r13"); disc_tx_res_req_ps_r13.to_json(j); } if (disc_rx_gap_req_r13_present) { j.start_array("discRxGapReq-r13"); for (uint32_t i1 = 0; i1 < disc_rx_gap_req_r13.size(); ++i1) { disc_rx_gap_req_r13[i1].to_json(j); } j.end_array(); } if (disc_tx_gap_req_r13_present) { j.start_array("discTxGapReq-r13"); for (uint32_t i1 = 0; i1 < disc_tx_gap_req_r13.size(); ++i1) { disc_tx_gap_req_r13[i1].to_json(j); } j.end_array(); } if (disc_sys_info_report_freq_list_r13_present) { j.start_array("discSysInfoReportFreqList-r13"); for (uint32_t i1 = 0; i1 < disc_sys_info_report_freq_list_r13.size(); ++i1) { disc_sys_info_report_freq_list_r13[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // TDM-AssistanceInfo-r11 ::= CHOICE void tdm_assist_info_r11_c::destroy_() { switch (type_) { case types::drx_assist_info_r11: c.destroy(); break; case types::idc_sf_pattern_list_r11: c.destroy(); break; default: break; } } void tdm_assist_info_r11_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::drx_assist_info_r11: c.init(); break; case types::idc_sf_pattern_list_r11: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "tdm_assist_info_r11_c"); } } tdm_assist_info_r11_c::tdm_assist_info_r11_c(const tdm_assist_info_r11_c& other) { type_ = other.type(); switch (type_) { case types::drx_assist_info_r11: c.init(other.c.get()); break; case types::idc_sf_pattern_list_r11: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "tdm_assist_info_r11_c"); } } tdm_assist_info_r11_c& tdm_assist_info_r11_c::operator=(const tdm_assist_info_r11_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::drx_assist_info_r11: c.set(other.c.get()); break; case types::idc_sf_pattern_list_r11: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "tdm_assist_info_r11_c"); } return *this; } void tdm_assist_info_r11_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::drx_assist_info_r11: j.write_fieldname("drx-AssistanceInfo-r11"); j.start_obj(); j.write_str("drx-CycleLength-r11", c.get().drx_cycle_len_r11.to_string()); if (c.get().drx_offset_r11_present) { j.write_int("drx-Offset-r11", c.get().drx_offset_r11); } j.write_str("drx-ActiveTime-r11", c.get().drx_active_time_r11.to_string()); j.end_obj(); break; case types::idc_sf_pattern_list_r11: j.start_array("idc-SubframePatternList-r11"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } j.end_array(); break; default: log_invalid_choice_id(type_, "tdm_assist_info_r11_c"); } j.end_obj(); } SRSASN_CODE tdm_assist_info_r11_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::drx_assist_info_r11: HANDLE_CODE(bref.pack(c.get().drx_offset_r11_present, 1)); HANDLE_CODE(pack_enum(bref, c.get().drx_cycle_len_r11)); if (c.get().drx_offset_r11_present) { HANDLE_CODE( pack_unalign_integer(bref, c.get().drx_offset_r11, (uint8_t)0, (uint8_t)255)); } HANDLE_CODE(pack_enum(bref, c.get().drx_active_time_r11)); break; case types::idc_sf_pattern_list_r11: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8)); break; default: log_invalid_choice_id(type_, "tdm_assist_info_r11_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE tdm_assist_info_r11_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::drx_assist_info_r11: HANDLE_CODE(bref.unpack(c.get().drx_offset_r11_present, 1)); HANDLE_CODE(unpack_enum(c.get().drx_cycle_len_r11, bref)); if (c.get().drx_offset_r11_present) { HANDLE_CODE( unpack_unalign_integer(c.get().drx_offset_r11, bref, (uint8_t)0, (uint8_t)255)); } HANDLE_CODE(unpack_enum(c.get().drx_active_time_r11, bref)); break; case types::idc_sf_pattern_list_r11: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8)); break; default: log_invalid_choice_id(type_, "tdm_assist_info_r11_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UEAssistanceInformation-v1430-IEs ::= SEQUENCE SRSASN_CODE ueassist_info_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(bw_pref_r14_present, 1)); HANDLE_CODE(bref.pack(sps_assist_info_r14_present, 1)); HANDLE_CODE(bref.pack(rlm_report_r14_present, 1)); HANDLE_CODE(bref.pack(delay_budget_report_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (bw_pref_r14_present) { HANDLE_CODE(bw_pref_r14.pack(bref)); } if (sps_assist_info_r14_present) { HANDLE_CODE(bref.pack(sps_assist_info_r14.traffic_pattern_info_list_sl_r14_present, 1)); HANDLE_CODE(bref.pack(sps_assist_info_r14.traffic_pattern_info_list_ul_r14_present, 1)); if (sps_assist_info_r14.traffic_pattern_info_list_sl_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_assist_info_r14.traffic_pattern_info_list_sl_r14, 1, 8)); } if (sps_assist_info_r14.traffic_pattern_info_list_ul_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, sps_assist_info_r14.traffic_pattern_info_list_ul_r14, 1, 8)); } } if (rlm_report_r14_present) { HANDLE_CODE(bref.pack(rlm_report_r14.excess_rep_mpdcch_r14_present, 1)); HANDLE_CODE(pack_enum(bref, rlm_report_r14.rlm_event_r14)); if (rlm_report_r14.excess_rep_mpdcch_r14_present) { HANDLE_CODE(pack_enum(bref, rlm_report_r14.excess_rep_mpdcch_r14)); } } if (delay_budget_report_r14_present) { HANDLE_CODE(delay_budget_report_r14.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ueassist_info_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(bw_pref_r14_present, 1)); HANDLE_CODE(bref.unpack(sps_assist_info_r14_present, 1)); HANDLE_CODE(bref.unpack(rlm_report_r14_present, 1)); HANDLE_CODE(bref.unpack(delay_budget_report_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (bw_pref_r14_present) { HANDLE_CODE(bw_pref_r14.unpack(bref)); } if (sps_assist_info_r14_present) { HANDLE_CODE(bref.unpack(sps_assist_info_r14.traffic_pattern_info_list_sl_r14_present, 1)); HANDLE_CODE(bref.unpack(sps_assist_info_r14.traffic_pattern_info_list_ul_r14_present, 1)); if (sps_assist_info_r14.traffic_pattern_info_list_sl_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_assist_info_r14.traffic_pattern_info_list_sl_r14, bref, 1, 8)); } if (sps_assist_info_r14.traffic_pattern_info_list_ul_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(sps_assist_info_r14.traffic_pattern_info_list_ul_r14, bref, 1, 8)); } } if (rlm_report_r14_present) { HANDLE_CODE(bref.unpack(rlm_report_r14.excess_rep_mpdcch_r14_present, 1)); HANDLE_CODE(unpack_enum(rlm_report_r14.rlm_event_r14, bref)); if (rlm_report_r14.excess_rep_mpdcch_r14_present) { HANDLE_CODE(unpack_enum(rlm_report_r14.excess_rep_mpdcch_r14, bref)); } } if (delay_budget_report_r14_present) { HANDLE_CODE(delay_budget_report_r14.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ueassist_info_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (bw_pref_r14_present) { j.write_fieldname("bw-Preference-r14"); bw_pref_r14.to_json(j); } if (sps_assist_info_r14_present) { j.write_fieldname("sps-AssistanceInformation-r14"); j.start_obj(); if (sps_assist_info_r14.traffic_pattern_info_list_sl_r14_present) { j.start_array("trafficPatternInfoListSL-r14"); for (uint32_t i1 = 0; i1 < sps_assist_info_r14.traffic_pattern_info_list_sl_r14.size(); ++i1) { sps_assist_info_r14.traffic_pattern_info_list_sl_r14[i1].to_json(j); } j.end_array(); } if (sps_assist_info_r14.traffic_pattern_info_list_ul_r14_present) { j.start_array("trafficPatternInfoListUL-r14"); for (uint32_t i1 = 0; i1 < sps_assist_info_r14.traffic_pattern_info_list_ul_r14.size(); ++i1) { sps_assist_info_r14.traffic_pattern_info_list_ul_r14[i1].to_json(j); } j.end_array(); } j.end_obj(); } if (rlm_report_r14_present) { j.write_fieldname("rlm-Report-r14"); j.start_obj(); j.write_str("rlm-Event-r14", rlm_report_r14.rlm_event_r14.to_string()); if (rlm_report_r14.excess_rep_mpdcch_r14_present) { j.write_str("excessRep-MPDCCH-r14", rlm_report_r14.excess_rep_mpdcch_r14.to_string()); } j.end_obj(); } if (delay_budget_report_r14_present) { j.write_fieldname("delayBudgetReport-r14"); delay_budget_report_r14.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UECapabilityInformation-v8a0-IEs ::= SEQUENCE SRSASN_CODE ue_cap_info_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_info_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_info_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationResponse-v930-IEs ::= SEQUENCE SRSASN_CODE ue_info_resp_v930_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_v930_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_resp_v930_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE SRSASN_CODE ul_ho_prep_transfer_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_ho_prep_transfer_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ul_ho_prep_transfer_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // ULInformationTransfer-v8a0-IEs ::= SEQUENCE SRSASN_CODE ul_info_transfer_v8a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_v8a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ul_info_transfer_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE SRSASN_CODE wlan_conn_status_report_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_enum(bref, wlan_status_v1430)); return SRSASN_SUCCESS; } SRSASN_CODE wlan_conn_status_report_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_enum(wlan_status_v1430, bref)); return SRSASN_SUCCESS; } void wlan_conn_status_report_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("wlan-Status-v1430", wlan_status_v1430.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE SRSASN_CODE csfb_params_request_cdma2000_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE csfb_params_request_cdma2000_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void csfb_params_request_cdma2000_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CounterCheckResponse-r8-IEs ::= SEQUENCE SRSASN_CODE counter_check_resp_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, drb_count_info_list, 0, 11)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_resp_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(drb_count_info_list, bref, 0, 11)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void counter_check_resp_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("drb-CountInfoList"); for (uint32_t i1 = 0; i1 < drb_count_info_list.size(); ++i1) { drb_count_info_list[i1].to_json(j); } j.end_array(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // FailedLogicalChannelInfo-r15 ::= SEQUENCE SRSASN_CODE failed_lc_ch_info_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(failed_lc_ch_id_r15.lc_ch_id_r15_present, 1)); HANDLE_CODE(bref.pack(failed_lc_ch_id_r15.lc_ch_id_ext_r15_present, 1)); HANDLE_CODE(pack_enum(bref, failed_lc_ch_id_r15.cell_group_ind_r15)); if (failed_lc_ch_id_r15.lc_ch_id_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, failed_lc_ch_id_r15.lc_ch_id_r15, (uint8_t)1, (uint8_t)10)); } if (failed_lc_ch_id_r15.lc_ch_id_ext_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, failed_lc_ch_id_r15.lc_ch_id_ext_r15, (uint8_t)32, (uint8_t)38)); } HANDLE_CODE(pack_enum(bref, fail_type)); return SRSASN_SUCCESS; } SRSASN_CODE failed_lc_ch_info_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(failed_lc_ch_id_r15.lc_ch_id_r15_present, 1)); HANDLE_CODE(bref.unpack(failed_lc_ch_id_r15.lc_ch_id_ext_r15_present, 1)); HANDLE_CODE(unpack_enum(failed_lc_ch_id_r15.cell_group_ind_r15, bref)); if (failed_lc_ch_id_r15.lc_ch_id_r15_present) { HANDLE_CODE(unpack_unalign_integer(failed_lc_ch_id_r15.lc_ch_id_r15, bref, (uint8_t)1, (uint8_t)10)); } if (failed_lc_ch_id_r15.lc_ch_id_ext_r15_present) { HANDLE_CODE(unpack_unalign_integer(failed_lc_ch_id_r15.lc_ch_id_ext_r15, bref, (uint8_t)32, (uint8_t)38)); } HANDLE_CODE(unpack_enum(fail_type, bref)); return SRSASN_SUCCESS; } void failed_lc_ch_info_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("failedLogicalChannelIdentity-r15"); j.start_obj(); j.write_str("cellGroupIndication-r15", failed_lc_ch_id_r15.cell_group_ind_r15.to_string()); if (failed_lc_ch_id_r15.lc_ch_id_r15_present) { j.write_int("logicalChannelIdentity-r15", failed_lc_ch_id_r15.lc_ch_id_r15); } if (failed_lc_ch_id_r15.lc_ch_id_ext_r15_present) { j.write_int("logicalChannelIdentityExt-r15", failed_lc_ch_id_r15.lc_ch_id_ext_r15); } j.end_obj(); j.write_str("failureType", fail_type.to_string()); j.end_obj(); } // InDeviceCoexIndication-r11-IEs ::= SEQUENCE SRSASN_CODE in_dev_coex_ind_r11_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(affected_carrier_freq_list_r11_present, 1)); HANDLE_CODE(bref.pack(tdm_assist_info_r11_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (affected_carrier_freq_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, affected_carrier_freq_list_r11, 1, 32)); } if (tdm_assist_info_r11_present) { HANDLE_CODE(tdm_assist_info_r11.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE in_dev_coex_ind_r11_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(affected_carrier_freq_list_r11_present, 1)); HANDLE_CODE(bref.unpack(tdm_assist_info_r11_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (affected_carrier_freq_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(affected_carrier_freq_list_r11, bref, 1, 32)); } if (tdm_assist_info_r11_present) { HANDLE_CODE(tdm_assist_info_r11.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void in_dev_coex_ind_r11_ies_s::to_json(json_writer& j) const { j.start_obj(); if (affected_carrier_freq_list_r11_present) { j.start_array("affectedCarrierFreqList-r11"); for (uint32_t i1 = 0; i1 < affected_carrier_freq_list_r11.size(); ++i1) { affected_carrier_freq_list_r11[i1].to_json(j); } j.end_array(); } if (tdm_assist_info_r11_present) { j.write_fieldname("tdm-AssistanceInfo-r11"); tdm_assist_info_r11.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE SRSASN_CODE inter_freq_rstd_meas_ind_r10_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(rstd_inter_freq_ind_r10.pack(bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_rstd_meas_ind_r10_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(rstd_inter_freq_ind_r10.unpack(bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void inter_freq_rstd_meas_ind_r10_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("rstd-InterFreqIndication-r10"); rstd_inter_freq_ind_r10.to_json(j); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } void inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::set(types::options e) { type_ = e; } void inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::start: j.write_fieldname("start"); j.start_obj(); j.start_array("rstd-InterFreqInfoList-r10"); for (uint32_t i1 = 0; i1 < c.rstd_inter_freq_info_list_r10.size(); ++i1) { c.rstd_inter_freq_info_list_r10[i1].to_json(j); } j.end_array(); j.end_obj(); break; case types::stop: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_"); } j.end_obj(); } SRSASN_CODE inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::start: HANDLE_CODE(pack_dyn_seq_of(bref, c.rstd_inter_freq_info_list_r10, 1, 3)); break; case types::stop: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::start: HANDLE_CODE(unpack_dyn_seq_of(c.rstd_inter_freq_info_list_r10, bref, 1, 3)); break; case types::stop: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MBMSCountingResponse-r10-IEs ::= SEQUENCE SRSASN_CODE mbms_count_resp_r10_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mbsfn_area_idx_r10_present, 1)); HANDLE_CODE(bref.pack(count_resp_list_r10_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mbsfn_area_idx_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, mbsfn_area_idx_r10, (uint8_t)0, (uint8_t)7)); } if (count_resp_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, count_resp_list_r10, 1, 16)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mbms_count_resp_r10_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mbsfn_area_idx_r10_present, 1)); HANDLE_CODE(bref.unpack(count_resp_list_r10_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mbsfn_area_idx_r10_present) { HANDLE_CODE(unpack_unalign_integer(mbsfn_area_idx_r10, bref, (uint8_t)0, (uint8_t)7)); } if (count_resp_list_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(count_resp_list_r10, bref, 1, 16)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mbms_count_resp_r10_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mbsfn_area_idx_r10_present) { j.write_int("mbsfn-AreaIndex-r10", mbsfn_area_idx_r10); } if (count_resp_list_r10_present) { j.start_array("countingResponseList-r10"); for (uint32_t i1 = 0; i1 < count_resp_list_r10.size(); ++i1) { count_resp_list_r10[i1].to_json(j); } j.end_array(); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // MBMSInterestIndication-r11-IEs ::= SEQUENCE SRSASN_CODE mbms_interest_ind_r11_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mbms_freq_list_r11_present, 1)); HANDLE_CODE(bref.pack(mbms_prio_r11_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mbms_freq_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mbms_freq_list_r11, 1, 5, UnalignedIntegerPacker(0, 262143))); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mbms_interest_ind_r11_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mbms_freq_list_r11_present, 1)); HANDLE_CODE(bref.unpack(mbms_prio_r11_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mbms_freq_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(mbms_freq_list_r11, bref, 1, 5, UnalignedIntegerPacker(0, 262143))); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void mbms_interest_ind_r11_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mbms_freq_list_r11_present) { j.start_array("mbms-FreqList-r11"); for (uint32_t i1 = 0; i1 < mbms_freq_list_r11.size(); ++i1) { j.write_int(mbms_freq_list_r11[i1]); } j.end_array(); } if (mbms_prio_r11_present) { j.write_str("mbms-Priority-r11", "true"); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MeasReportAppLayer-r15-IEs ::= SEQUENCE SRSASN_CODE meas_report_app_layer_r15_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_report_app_layer_container_r15_present, 1)); HANDLE_CODE(bref.pack(service_type_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (meas_report_app_layer_container_r15_present) { HANDLE_CODE(meas_report_app_layer_container_r15.pack(bref)); } if (service_type_present) { HANDLE_CODE(pack_enum(bref, service_type)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_report_app_layer_r15_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_report_app_layer_container_r15_present, 1)); HANDLE_CODE(bref.unpack(service_type_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (meas_report_app_layer_container_r15_present) { HANDLE_CODE(meas_report_app_layer_container_r15.unpack(bref)); } if (service_type_present) { HANDLE_CODE(unpack_enum(service_type, bref)); } return SRSASN_SUCCESS; } void meas_report_app_layer_r15_ies_s::to_json(json_writer& j) const { j.start_obj(); if (meas_report_app_layer_container_r15_present) { j.write_str("measReportAppLayerContainer-r15", meas_report_app_layer_container_r15.to_string()); } if (service_type_present) { j.write_str("serviceType", service_type.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // MeasurementReport-r8-IEs ::= SEQUENCE SRSASN_CODE meas_report_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(meas_results.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_report_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(meas_results.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void meas_report_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("measResults"); meas_results.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // ProximityIndication-r9-IEs ::= SEQUENCE SRSASN_CODE proximity_ind_r9_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_enum(bref, type_r9)); HANDLE_CODE(carrier_freq_r9.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE proximity_ind_r9_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_enum(type_r9, bref)); HANDLE_CODE(carrier_freq_r9.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void proximity_ind_r9_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("type-r9", type_r9.to_string()); j.write_fieldname("carrierFreq-r9"); carrier_freq_r9.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void proximity_ind_r9_ies_s::carrier_freq_r9_c_::destroy_() {} void proximity_ind_r9_ies_s::carrier_freq_r9_c_::set(types::options e) { destroy_(); type_ = e; } proximity_ind_r9_ies_s::carrier_freq_r9_c_::carrier_freq_r9_c_(const proximity_ind_r9_ies_s::carrier_freq_r9_c_& other) { type_ = other.type(); switch (type_) { case types::eutra_r9: c.init(other.c.get()); break; case types::utra_r9: c.init(other.c.get()); break; case types::eutra2_v9e0: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_ies_s::carrier_freq_r9_c_"); } } proximity_ind_r9_ies_s::carrier_freq_r9_c_& proximity_ind_r9_ies_s::carrier_freq_r9_c_:: operator=(const proximity_ind_r9_ies_s::carrier_freq_r9_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::eutra_r9: c.set(other.c.get()); break; case types::utra_r9: c.set(other.c.get()); break; case types::eutra2_v9e0: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_ies_s::carrier_freq_r9_c_"); } return *this; } void proximity_ind_r9_ies_s::carrier_freq_r9_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::eutra_r9: j.write_int("eutra-r9", c.get()); break; case types::utra_r9: j.write_int("utra-r9", c.get()); break; case types::eutra2_v9e0: j.write_int("eutra2-v9e0", c.get()); break; default: log_invalid_choice_id(type_, "proximity_ind_r9_ies_s::carrier_freq_r9_c_"); } j.end_obj(); } SRSASN_CODE proximity_ind_r9_ies_s::carrier_freq_r9_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::eutra_r9: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)65535)); break; case types::utra_r9: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)16383)); break; case types::eutra2_v9e0: { varlength_field_pack_guard scope(bref); HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint32_t)65536, (uint32_t)262143)); } break; default: log_invalid_choice_id(type_, "proximity_ind_r9_ies_s::carrier_freq_r9_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE proximity_ind_r9_ies_s::carrier_freq_r9_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::eutra_r9: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)65535)); break; case types::utra_r9: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)16383)); break; case types::eutra2_v9e0: { varlength_field_unpack_guard scope(bref); HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint32_t)65536, (uint32_t)262143)); } break; default: log_invalid_choice_id(type_, "proximity_ind_r9_ies_s::carrier_freq_r9_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RNReconfigurationComplete-r10-IEs ::= SEQUENCE SRSASN_CODE rn_recfg_complete_r10_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rn_recfg_complete_r10_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rn_recfg_complete_r10_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_reest_complete_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_reest_complete_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_resume_complete_r13_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(sel_plmn_id_r13_present, 1)); HANDLE_CODE(bref.pack(ded_info_nas_r13_present, 1)); HANDLE_CODE(bref.pack(rlf_info_available_r13_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_r13_present, 1)); HANDLE_CODE(bref.pack(conn_est_fail_info_available_r13_present, 1)); HANDLE_CODE(bref.pack(mob_state_r13_present, 1)); HANDLE_CODE(bref.pack(mob_history_avail_r13_present, 1)); HANDLE_CODE(bref.pack(log_meas_available_mbsfn_r13_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (sel_plmn_id_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, sel_plmn_id_r13, (uint8_t)1, (uint8_t)6)); } if (ded_info_nas_r13_present) { HANDLE_CODE(ded_info_nas_r13.pack(bref)); } if (mob_state_r13_present) { HANDLE_CODE(pack_enum(bref, mob_state_r13)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_complete_r13_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(sel_plmn_id_r13_present, 1)); HANDLE_CODE(bref.unpack(ded_info_nas_r13_present, 1)); HANDLE_CODE(bref.unpack(rlf_info_available_r13_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_r13_present, 1)); HANDLE_CODE(bref.unpack(conn_est_fail_info_available_r13_present, 1)); HANDLE_CODE(bref.unpack(mob_state_r13_present, 1)); HANDLE_CODE(bref.unpack(mob_history_avail_r13_present, 1)); HANDLE_CODE(bref.unpack(log_meas_available_mbsfn_r13_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (sel_plmn_id_r13_present) { HANDLE_CODE(unpack_unalign_integer(sel_plmn_id_r13, bref, (uint8_t)1, (uint8_t)6)); } if (ded_info_nas_r13_present) { HANDLE_CODE(ded_info_nas_r13.unpack(bref)); } if (mob_state_r13_present) { HANDLE_CODE(unpack_enum(mob_state_r13, bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_resume_complete_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); if (sel_plmn_id_r13_present) { j.write_int("selectedPLMN-Identity-r13", sel_plmn_id_r13); } if (ded_info_nas_r13_present) { j.write_str("dedicatedInfoNAS-r13", ded_info_nas_r13.to_string()); } if (rlf_info_available_r13_present) { j.write_str("rlf-InfoAvailable-r13", "true"); } if (log_meas_available_r13_present) { j.write_str("logMeasAvailable-r13", "true"); } if (conn_est_fail_info_available_r13_present) { j.write_str("connEstFailInfoAvailable-r13", "true"); } if (mob_state_r13_present) { j.write_str("mobilityState-r13", mob_state_r13.to_string()); } if (mob_history_avail_r13_present) { j.write_str("mobilityHistoryAvail-r13", "true"); } if (log_meas_available_mbsfn_r13_present) { j.write_str("logMeasAvailableMBSFN-r13", "true"); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(registered_mme_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, sel_plmn_id, (uint8_t)1, (uint8_t)6)); if (registered_mme_present) { HANDLE_CODE(registered_mme.pack(bref)); } HANDLE_CODE(ded_info_nas.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(registered_mme_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_unalign_integer(sel_plmn_id, bref, (uint8_t)1, (uint8_t)6)); if (registered_mme_present) { HANDLE_CODE(registered_mme.unpack(bref)); } HANDLE_CODE(ded_info_nas.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("selectedPLMN-Identity", sel_plmn_id); if (registered_mme_present) { j.write_fieldname("registeredMME"); registered_mme.to_json(j); } j.write_str("dedicatedInfoNAS", ded_info_nas.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SCGFailureInformation-r12-IEs ::= SEQUENCE SRSASN_CODE scg_fail_info_r12_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(fail_report_scg_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (fail_report_scg_r12_present) { HANDLE_CODE(fail_report_scg_r12.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_r12_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(fail_report_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (fail_report_scg_r12_present) { HANDLE_CODE(fail_report_scg_r12.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void scg_fail_info_r12_ies_s::to_json(json_writer& j) const { j.start_obj(); if (fail_report_scg_r12_present) { j.write_fieldname("failureReportSCG-r12"); fail_report_scg_r12.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SCGFailureInformationNR-r15-IEs ::= SEQUENCE SRSASN_CODE scg_fail_info_nr_r15_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(fail_report_scg_nr_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (fail_report_scg_nr_r15_present) { HANDLE_CODE(fail_report_scg_nr_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_nr_r15_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(fail_report_scg_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (fail_report_scg_nr_r15_present) { HANDLE_CODE(fail_report_scg_nr_r15.unpack(bref)); } return SRSASN_SUCCESS; } void scg_fail_info_nr_r15_ies_s::to_json(json_writer& j) const { j.start_obj(); if (fail_report_scg_nr_r15_present) { j.write_fieldname("failureReportSCG-NR-r15"); fail_report_scg_nr_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SecurityModeComplete-r8-IEs ::= SEQUENCE SRSASN_CODE security_mode_complete_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_complete_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void security_mode_complete_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SecurityModeFailure-r8-IEs ::= SEQUENCE SRSASN_CODE security_mode_fail_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_fail_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void security_mode_fail_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SidelinkUEInformation-r12-IEs ::= SEQUENCE SRSASN_CODE sidelink_ue_info_r12_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(comm_rx_interested_freq_r12_present, 1)); HANDLE_CODE(bref.pack(comm_tx_res_req_r12_present, 1)); HANDLE_CODE(bref.pack(disc_rx_interest_r12_present, 1)); HANDLE_CODE(bref.pack(disc_tx_res_req_r12_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (comm_rx_interested_freq_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, comm_rx_interested_freq_r12, (uint32_t)0, (uint32_t)262143)); } if (comm_tx_res_req_r12_present) { HANDLE_CODE(comm_tx_res_req_r12.pack(bref)); } if (disc_tx_res_req_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, disc_tx_res_req_r12, (uint8_t)1, (uint8_t)63)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE sidelink_ue_info_r12_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(comm_rx_interested_freq_r12_present, 1)); HANDLE_CODE(bref.unpack(comm_tx_res_req_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_rx_interest_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_tx_res_req_r12_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (comm_rx_interested_freq_r12_present) { HANDLE_CODE(unpack_unalign_integer(comm_rx_interested_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); } if (comm_tx_res_req_r12_present) { HANDLE_CODE(comm_tx_res_req_r12.unpack(bref)); } if (disc_tx_res_req_r12_present) { HANDLE_CODE(unpack_unalign_integer(disc_tx_res_req_r12, bref, (uint8_t)1, (uint8_t)63)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void sidelink_ue_info_r12_ies_s::to_json(json_writer& j) const { j.start_obj(); if (comm_rx_interested_freq_r12_present) { j.write_int("commRxInterestedFreq-r12", comm_rx_interested_freq_r12); } if (comm_tx_res_req_r12_present) { j.write_fieldname("commTxResourceReq-r12"); comm_tx_res_req_r12.to_json(j); } if (disc_rx_interest_r12_present) { j.write_str("discRxInterest-r12", "true"); } if (disc_tx_res_req_r12_present) { j.write_int("discTxResourceReq-r12", disc_tx_res_req_r12); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEAssistanceInformation-r11-IEs ::= SEQUENCE SRSASN_CODE ueassist_info_r11_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pwr_pref_ind_r11_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (pwr_pref_ind_r11_present) { HANDLE_CODE(pack_enum(bref, pwr_pref_ind_r11)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ueassist_info_r11_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pwr_pref_ind_r11_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (pwr_pref_ind_r11_present) { HANDLE_CODE(unpack_enum(pwr_pref_ind_r11, bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ueassist_info_r11_ies_s::to_json(json_writer& j) const { j.start_obj(); if (pwr_pref_ind_r11_present) { j.write_str("powerPrefIndication-r11", pwr_pref_ind_r11.to_string()); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UECapabilityInformation-r8-IEs ::= SEQUENCE SRSASN_CODE ue_cap_info_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, ue_cap_rat_container_list, 0, 8)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_info_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(ue_cap_rat_container_list, bref, 0, 8)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_cap_info_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("ue-CapabilityRAT-ContainerList"); for (uint32_t i1 = 0; i1 < ue_cap_rat_container_list.size(); ++i1) { ue_cap_rat_container_list[i1].to_json(j); } j.end_array(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UEInformationResponse-r9-IEs ::= SEQUENCE SRSASN_CODE ue_info_resp_r9_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rach_report_r9_present, 1)); HANDLE_CODE(bref.pack(rlf_report_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rach_report_r9_present) { HANDLE_CODE(pack_unalign_integer(bref, rach_report_r9.nof_preambs_sent_r9, (uint8_t)1, (uint8_t)200)); HANDLE_CODE(bref.pack(rach_report_r9.contention_detected_r9, 1)); } if (rlf_report_r9_present) { HANDLE_CODE(rlf_report_r9.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_r9_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rach_report_r9_present, 1)); HANDLE_CODE(bref.unpack(rlf_report_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rach_report_r9_present) { HANDLE_CODE(unpack_unalign_integer(rach_report_r9.nof_preambs_sent_r9, bref, (uint8_t)1, (uint8_t)200)); HANDLE_CODE(bref.unpack(rach_report_r9.contention_detected_r9, 1)); } if (rlf_report_r9_present) { HANDLE_CODE(rlf_report_r9.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_info_resp_r9_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rach_report_r9_present) { j.write_fieldname("rach-Report-r9"); j.start_obj(); j.write_int("numberOfPreamblesSent-r9", rach_report_r9.nof_preambs_sent_r9); j.write_bool("contentionDetected-r9", rach_report_r9.contention_detected_r9); j.end_obj(); } if (rlf_report_r9_present) { j.write_fieldname("rlf-Report-r9"); rlf_report_r9.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE SRSASN_CODE ul_ho_prep_transfer_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meid_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_enum(bref, cdma2000_type)); if (meid_present) { HANDLE_CODE(meid.pack(bref)); } HANDLE_CODE(ded_info.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_ho_prep_transfer_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meid_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_enum(cdma2000_type, bref)); if (meid_present) { HANDLE_CODE(meid.unpack(bref)); } HANDLE_CODE(ded_info.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ul_ho_prep_transfer_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cdma2000-Type", cdma2000_type.to_string()); if (meid_present) { j.write_str("meid", meid.to_string()); } j.write_str("dedicatedInfo", ded_info.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // ULInformationTransfer-r8-IEs ::= SEQUENCE SRSASN_CODE ul_info_transfer_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(ded_info_type.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(ded_info_type.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ul_info_transfer_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("dedicatedInfoType"); ded_info_type.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } void ul_info_transfer_r8_ies_s::ded_info_type_c_::destroy_() { switch (type_) { case types::ded_info_nas: c.destroy(); break; case types::ded_info_cdma2000_minus1_xrtt: c.destroy(); break; case types::ded_info_cdma2000_hrpd: c.destroy(); break; default: break; } } void ul_info_transfer_r8_ies_s::ded_info_type_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ded_info_nas: c.init(); break; case types::ded_info_cdma2000_minus1_xrtt: c.init(); break; case types::ded_info_cdma2000_hrpd: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_r8_ies_s::ded_info_type_c_"); } } ul_info_transfer_r8_ies_s::ded_info_type_c_::ded_info_type_c_(const ul_info_transfer_r8_ies_s::ded_info_type_c_& other) { type_ = other.type(); switch (type_) { case types::ded_info_nas: c.init(other.c.get()); break; case types::ded_info_cdma2000_minus1_xrtt: c.init(other.c.get()); break; case types::ded_info_cdma2000_hrpd: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_r8_ies_s::ded_info_type_c_"); } } ul_info_transfer_r8_ies_s::ded_info_type_c_& ul_info_transfer_r8_ies_s::ded_info_type_c_:: operator=(const ul_info_transfer_r8_ies_s::ded_info_type_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ded_info_nas: c.set(other.c.get()); break; case types::ded_info_cdma2000_minus1_xrtt: c.set(other.c.get()); break; case types::ded_info_cdma2000_hrpd: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_r8_ies_s::ded_info_type_c_"); } return *this; } void ul_info_transfer_r8_ies_s::ded_info_type_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ded_info_nas: j.write_str("dedicatedInfoNAS", c.get().to_string()); break; case types::ded_info_cdma2000_minus1_xrtt: j.write_str("dedicatedInfoCDMA2000-1XRTT", c.get().to_string()); break; case types::ded_info_cdma2000_hrpd: j.write_str("dedicatedInfoCDMA2000-HRPD", c.get().to_string()); break; default: log_invalid_choice_id(type_, "ul_info_transfer_r8_ies_s::ded_info_type_c_"); } j.end_obj(); } SRSASN_CODE ul_info_transfer_r8_ies_s::ded_info_type_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ded_info_nas: HANDLE_CODE(c.get().pack(bref)); break; case types::ded_info_cdma2000_minus1_xrtt: HANDLE_CODE(c.get().pack(bref)); break; case types::ded_info_cdma2000_hrpd: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "ul_info_transfer_r8_ies_s::ded_info_type_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_r8_ies_s::ded_info_type_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ded_info_nas: HANDLE_CODE(c.get().unpack(bref)); break; case types::ded_info_cdma2000_minus1_xrtt: HANDLE_CODE(c.get().unpack(bref)); break; case types::ded_info_cdma2000_hrpd: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "ul_info_transfer_r8_ies_s::ded_info_type_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ULInformationTransferMRDC-r15-IEs ::= SEQUENCE SRSASN_CODE ul_info_transfer_mrdc_r15_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_dcch_msg_nr_r15_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ul_dcch_msg_nr_r15_present) { HANDLE_CODE(ul_dcch_msg_nr_r15.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_mrdc_r15_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_dcch_msg_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ul_dcch_msg_nr_r15_present) { HANDLE_CODE(ul_dcch_msg_nr_r15.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ul_info_transfer_mrdc_r15_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ul_dcch_msg_nr_r15_present) { j.write_str("ul-DCCH-MessageNR-r15", ul_dcch_msg_nr_r15.to_string()); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // WLANConnectionStatusReport-r13-IEs ::= SEQUENCE SRSASN_CODE wlan_conn_status_report_r13_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_enum(bref, wlan_status_r13)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE wlan_conn_status_report_r13_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_enum(wlan_status_r13, bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void wlan_conn_status_report_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("wlan-Status-r13", wlan_status_r13.to_string()); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CSFBParametersRequestCDMA2000 ::= SEQUENCE SRSASN_CODE csfb_params_request_cdma2000_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE csfb_params_request_cdma2000_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void csfb_params_request_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void csfb_params_request_cdma2000_s::crit_exts_c_::destroy_() { switch (type_) { case types::csfb_params_request_cdma2000_r8: c.destroy(); break; default: break; } } void csfb_params_request_cdma2000_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::csfb_params_request_cdma2000_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); } } csfb_params_request_cdma2000_s::crit_exts_c_::crit_exts_c_(const csfb_params_request_cdma2000_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::csfb_params_request_cdma2000_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); } } csfb_params_request_cdma2000_s::crit_exts_c_& csfb_params_request_cdma2000_s::crit_exts_c_:: operator=(const csfb_params_request_cdma2000_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::csfb_params_request_cdma2000_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); } return *this; } void csfb_params_request_cdma2000_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::csfb_params_request_cdma2000_r8: j.write_fieldname("csfbParametersRequestCDMA2000-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE csfb_params_request_cdma2000_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::csfb_params_request_cdma2000_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE csfb_params_request_cdma2000_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::csfb_params_request_cdma2000_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CounterCheckResponse ::= SEQUENCE SRSASN_CODE counter_check_resp_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE counter_check_resp_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void counter_check_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void counter_check_resp_s::crit_exts_c_::destroy_() { switch (type_) { case types::counter_check_resp_r8: c.destroy(); break; default: break; } } void counter_check_resp_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::counter_check_resp_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); } } counter_check_resp_s::crit_exts_c_::crit_exts_c_(const counter_check_resp_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::counter_check_resp_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); } } counter_check_resp_s::crit_exts_c_& counter_check_resp_s::crit_exts_c_:: operator=(const counter_check_resp_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::counter_check_resp_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); } return *this; } void counter_check_resp_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::counter_check_resp_r8: j.write_fieldname("counterCheckResponse-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE counter_check_resp_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::counter_check_resp_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE counter_check_resp_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::counter_check_resp_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // FailureInformation-r15 ::= SEQUENCE SRSASN_CODE fail_info_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(failed_lc_ch_info_r15_present, 1)); if (failed_lc_ch_info_r15_present) { HANDLE_CODE(failed_lc_ch_info_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE fail_info_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(failed_lc_ch_info_r15_present, 1)); if (failed_lc_ch_info_r15_present) { HANDLE_CODE(failed_lc_ch_info_r15.unpack(bref)); } return SRSASN_SUCCESS; } void fail_info_r15_s::to_json(json_writer& j) const { j.start_obj(); if (failed_lc_ch_info_r15_present) { j.write_fieldname("failedLogicalChannelInfo-r15"); failed_lc_ch_info_r15.to_json(j); } j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); j.end_obj(); } // InDeviceCoexIndication-r11 ::= SEQUENCE SRSASN_CODE in_dev_coex_ind_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE in_dev_coex_ind_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void in_dev_coex_ind_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void in_dev_coex_ind_r11_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void in_dev_coex_ind_r11_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); } } in_dev_coex_ind_r11_s::crit_exts_c_::crit_exts_c_(const in_dev_coex_ind_r11_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); } } in_dev_coex_ind_r11_s::crit_exts_c_& in_dev_coex_ind_r11_s::crit_exts_c_:: operator=(const in_dev_coex_ind_r11_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); } return *this; } void in_dev_coex_ind_r11_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE in_dev_coex_ind_r11_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE in_dev_coex_ind_r11_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::in_dev_coex_ind_r11: j.write_fieldname("inDeviceCoexIndication-r11"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::in_dev_coex_ind_r11: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::in_dev_coex_ind_r11: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void inter_freq_rstd_meas_ind_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); } } inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::crit_exts_c_(const inter_freq_rstd_meas_ind_r10_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); } } inter_freq_rstd_meas_ind_r10_s::crit_exts_c_& inter_freq_rstd_meas_ind_r10_s::crit_exts_c_:: operator=(const inter_freq_rstd_meas_ind_r10_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); } return *this; } void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::inter_freq_rstd_meas_ind_r10: j.write_fieldname("interFreqRSTDMeasurementIndication-r10"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::inter_freq_rstd_meas_ind_r10: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::inter_freq_rstd_meas_ind_r10: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MBMSCountingResponse-r10 ::= SEQUENCE SRSASN_CODE mbms_count_resp_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_count_resp_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void mbms_count_resp_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void mbms_count_resp_r10_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void mbms_count_resp_r10_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); } } mbms_count_resp_r10_s::crit_exts_c_::crit_exts_c_(const mbms_count_resp_r10_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); } } mbms_count_resp_r10_s::crit_exts_c_& mbms_count_resp_r10_s::crit_exts_c_:: operator=(const mbms_count_resp_r10_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); } return *this; } void mbms_count_resp_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE mbms_count_resp_r10_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mbms_count_resp_r10_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mbms_count_resp_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void mbms_count_resp_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::count_resp_r10: j.write_fieldname("countingResponse-r10"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE mbms_count_resp_r10_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::count_resp_r10: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mbms_count_resp_r10_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::count_resp_r10: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MBMSInterestIndication-r11 ::= SEQUENCE SRSASN_CODE mbms_interest_ind_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_interest_ind_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void mbms_interest_ind_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void mbms_interest_ind_r11_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void mbms_interest_ind_r11_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); } } mbms_interest_ind_r11_s::crit_exts_c_::crit_exts_c_(const mbms_interest_ind_r11_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); } } mbms_interest_ind_r11_s::crit_exts_c_& mbms_interest_ind_r11_s::crit_exts_c_:: operator=(const mbms_interest_ind_r11_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); } return *this; } void mbms_interest_ind_r11_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE mbms_interest_ind_r11_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mbms_interest_ind_r11_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::interest_ind_r11: j.write_fieldname("interestIndication-r11"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::interest_ind_r11: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::interest_ind_r11: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasReportAppLayer-r15 ::= SEQUENCE SRSASN_CODE meas_report_app_layer_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_report_app_layer_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void meas_report_app_layer_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void meas_report_app_layer_r15_s::crit_exts_c_::destroy_() { switch (type_) { case types::meas_report_app_layer_r15: c.destroy(); break; default: break; } } void meas_report_app_layer_r15_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::meas_report_app_layer_r15: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); } } meas_report_app_layer_r15_s::crit_exts_c_::crit_exts_c_(const meas_report_app_layer_r15_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::meas_report_app_layer_r15: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); } } meas_report_app_layer_r15_s::crit_exts_c_& meas_report_app_layer_r15_s::crit_exts_c_:: operator=(const meas_report_app_layer_r15_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::meas_report_app_layer_r15: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); } return *this; } void meas_report_app_layer_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::meas_report_app_layer_r15: j.write_fieldname("measReportAppLayer-r15"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE meas_report_app_layer_r15_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::meas_report_app_layer_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_report_app_layer_r15_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::meas_report_app_layer_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // MeasurementReport ::= SEQUENCE SRSASN_CODE meas_report_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_report_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void meas_report_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void meas_report_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void meas_report_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); } } meas_report_s::crit_exts_c_::crit_exts_c_(const meas_report_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); } } meas_report_s::crit_exts_c_& meas_report_s::crit_exts_c_::operator=(const meas_report_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); } return *this; } void meas_report_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE meas_report_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_report_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void meas_report_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void meas_report_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::meas_report_r8: j.write_fieldname("measurementReport-r8"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE meas_report_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::meas_report_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE meas_report_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::meas_report_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ProximityIndication-r9 ::= SEQUENCE SRSASN_CODE proximity_ind_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE proximity_ind_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void proximity_ind_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void proximity_ind_r9_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void proximity_ind_r9_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); } } proximity_ind_r9_s::crit_exts_c_::crit_exts_c_(const proximity_ind_r9_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); } } proximity_ind_r9_s::crit_exts_c_& proximity_ind_r9_s::crit_exts_c_:: operator=(const proximity_ind_r9_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); } return *this; } void proximity_ind_r9_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE proximity_ind_r9_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE proximity_ind_r9_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void proximity_ind_r9_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void proximity_ind_r9_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::proximity_ind_r9: j.write_fieldname("proximityIndication-r9"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE proximity_ind_r9_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::proximity_ind_r9: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE proximity_ind_r9_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::proximity_ind_r9: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RNReconfigurationComplete-r10 ::= SEQUENCE SRSASN_CODE rn_recfg_complete_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rn_recfg_complete_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rn_recfg_complete_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rn_recfg_complete_r10_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rn_recfg_complete_r10_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); } } rn_recfg_complete_r10_s::crit_exts_c_::crit_exts_c_(const rn_recfg_complete_r10_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); } } rn_recfg_complete_r10_s::crit_exts_c_& rn_recfg_complete_r10_s::crit_exts_c_:: operator=(const rn_recfg_complete_r10_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); } return *this; } void rn_recfg_complete_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rn_recfg_complete_r10_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_recfg_complete_r10_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rn_recfg_complete_r10: j.write_fieldname("rnReconfigurationComplete-r10"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rn_recfg_complete_r10: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rn_recfg_complete_r10: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReconfigurationComplete ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_recfg_complete_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_recfg_complete_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_conn_recfg_complete_r8: c.destroy(); break; default: break; } } void rrc_conn_recfg_complete_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_recfg_complete_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); } } rrc_conn_recfg_complete_s::crit_exts_c_::crit_exts_c_(const rrc_conn_recfg_complete_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_recfg_complete_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); } } rrc_conn_recfg_complete_s::crit_exts_c_& rrc_conn_recfg_complete_s::crit_exts_c_:: operator=(const rrc_conn_recfg_complete_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_recfg_complete_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); } return *this; } void rrc_conn_recfg_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_recfg_complete_r8: j.write_fieldname("rrcConnectionReconfigurationComplete-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_recfg_complete_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_recfg_complete_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_recfg_complete_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_recfg_complete_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionReestablishmentComplete ::= SEQUENCE SRSASN_CODE rrc_conn_reest_complete_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_reest_complete_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_reest_complete_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_conn_reest_complete_r8: c.destroy(); break; default: break; } } void rrc_conn_reest_complete_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_reest_complete_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); } } rrc_conn_reest_complete_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_complete_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_reest_complete_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); } } rrc_conn_reest_complete_s::crit_exts_c_& rrc_conn_reest_complete_s::crit_exts_c_:: operator=(const rrc_conn_reest_complete_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_reest_complete_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); } return *this; } void rrc_conn_reest_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_reest_complete_r8: j.write_fieldname("rrcConnectionReestablishmentComplete-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_reest_complete_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_reest_complete_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_reest_complete_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_reest_complete_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionResumeComplete-r13 ::= SEQUENCE SRSASN_CODE rrc_conn_resume_complete_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_complete_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_resume_complete_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_resume_complete_r13_s::crit_exts_c_::destroy_() { switch (type_) { case types::rrc_conn_resume_complete_r13: c.destroy(); break; default: break; } } void rrc_conn_resume_complete_r13_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::rrc_conn_resume_complete_r13: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); } } rrc_conn_resume_complete_r13_s::crit_exts_c_::crit_exts_c_(const rrc_conn_resume_complete_r13_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::rrc_conn_resume_complete_r13: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); } } rrc_conn_resume_complete_r13_s::crit_exts_c_& rrc_conn_resume_complete_r13_s::crit_exts_c_:: operator=(const rrc_conn_resume_complete_r13_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::rrc_conn_resume_complete_r13: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); } return *this; } void rrc_conn_resume_complete_r13_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_resume_complete_r13: j.write_fieldname("rrcConnectionResumeComplete-r13"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_resume_complete_r13_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_resume_complete_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_resume_complete_r13_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_resume_complete_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // RRCConnectionSetupComplete ::= SEQUENCE SRSASN_CODE rrc_conn_setup_complete_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void rrc_conn_setup_complete_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void rrc_conn_setup_complete_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void rrc_conn_setup_complete_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); } } rrc_conn_setup_complete_s::crit_exts_c_::crit_exts_c_(const rrc_conn_setup_complete_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); } } rrc_conn_setup_complete_s::crit_exts_c_& rrc_conn_setup_complete_s::crit_exts_c_:: operator=(const rrc_conn_setup_complete_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); } return *this; } void rrc_conn_setup_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_setup_complete_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::rrc_conn_setup_complete_r8: j.write_fieldname("rrcConnectionSetupComplete-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::rrc_conn_setup_complete_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::rrc_conn_setup_complete_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SCGFailureInformation-r12 ::= SEQUENCE SRSASN_CODE scg_fail_info_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void scg_fail_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void scg_fail_info_r12_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void scg_fail_info_r12_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); } } scg_fail_info_r12_s::crit_exts_c_::crit_exts_c_(const scg_fail_info_r12_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); } } scg_fail_info_r12_s::crit_exts_c_& scg_fail_info_r12_s::crit_exts_c_:: operator=(const scg_fail_info_r12_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); } return *this; } void scg_fail_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE scg_fail_info_r12_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_r12_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void scg_fail_info_r12_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void scg_fail_info_r12_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::scg_fail_info_r12: j.write_fieldname("scgFailureInformation-r12"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE scg_fail_info_r12_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::scg_fail_info_r12: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_r12_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::scg_fail_info_r12: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SCGFailureInformationNR-r15 ::= SEQUENCE SRSASN_CODE scg_fail_info_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void scg_fail_info_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void scg_fail_info_nr_r15_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void scg_fail_info_nr_r15_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); } } scg_fail_info_nr_r15_s::crit_exts_c_::crit_exts_c_(const scg_fail_info_nr_r15_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); } } scg_fail_info_nr_r15_s::crit_exts_c_& scg_fail_info_nr_r15_s::crit_exts_c_:: operator=(const scg_fail_info_nr_r15_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); } return *this; } void scg_fail_info_nr_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE scg_fail_info_nr_r15_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_nr_r15_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::scg_fail_info_nr_r15: j.write_fieldname("scgFailureInformationNR-r15"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::scg_fail_info_nr_r15: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::scg_fail_info_nr_r15: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SecurityModeComplete ::= SEQUENCE SRSASN_CODE security_mode_complete_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE security_mode_complete_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void security_mode_complete_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void security_mode_complete_s::crit_exts_c_::destroy_() { switch (type_) { case types::security_mode_complete_r8: c.destroy(); break; default: break; } } void security_mode_complete_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::security_mode_complete_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); } } security_mode_complete_s::crit_exts_c_::crit_exts_c_(const security_mode_complete_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::security_mode_complete_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); } } security_mode_complete_s::crit_exts_c_& security_mode_complete_s::crit_exts_c_:: operator=(const security_mode_complete_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::security_mode_complete_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); } return *this; } void security_mode_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::security_mode_complete_r8: j.write_fieldname("securityModeComplete-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE security_mode_complete_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::security_mode_complete_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_complete_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::security_mode_complete_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SecurityModeFailure ::= SEQUENCE SRSASN_CODE security_mode_fail_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE security_mode_fail_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void security_mode_fail_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void security_mode_fail_s::crit_exts_c_::destroy_() { switch (type_) { case types::security_mode_fail_r8: c.destroy(); break; default: break; } } void security_mode_fail_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::security_mode_fail_r8: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); } } security_mode_fail_s::crit_exts_c_::crit_exts_c_(const security_mode_fail_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::security_mode_fail_r8: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); } } security_mode_fail_s::crit_exts_c_& security_mode_fail_s::crit_exts_c_:: operator=(const security_mode_fail_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::security_mode_fail_r8: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); } return *this; } void security_mode_fail_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::security_mode_fail_r8: j.write_fieldname("securityModeFailure-r8"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE security_mode_fail_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::security_mode_fail_r8: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE security_mode_fail_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::security_mode_fail_r8: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SidelinkUEInformation-r12 ::= SEQUENCE SRSASN_CODE sidelink_ue_info_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sidelink_ue_info_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void sidelink_ue_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void sidelink_ue_info_r12_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void sidelink_ue_info_r12_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); } } sidelink_ue_info_r12_s::crit_exts_c_::crit_exts_c_(const sidelink_ue_info_r12_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); } } sidelink_ue_info_r12_s::crit_exts_c_& sidelink_ue_info_r12_s::crit_exts_c_:: operator=(const sidelink_ue_info_r12_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); } return *this; } void sidelink_ue_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE sidelink_ue_info_r12_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sidelink_ue_info_r12_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::sidelink_ue_info_r12: j.write_fieldname("sidelinkUEInformation-r12"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::sidelink_ue_info_r12: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::sidelink_ue_info_r12: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UEAssistanceInformation-r11 ::= SEQUENCE SRSASN_CODE ueassist_info_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ueassist_info_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ueassist_info_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ueassist_info_r11_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ueassist_info_r11_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); } } ueassist_info_r11_s::crit_exts_c_::crit_exts_c_(const ueassist_info_r11_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); } } ueassist_info_r11_s::crit_exts_c_& ueassist_info_r11_s::crit_exts_c_:: operator=(const ueassist_info_r11_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); } return *this; } void ueassist_info_r11_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ueassist_info_r11_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ueassist_info_r11_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ueassist_info_r11_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ueassist_info_r11_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_assist_info_r11: j.write_fieldname("ueAssistanceInformation-r11"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ueassist_info_r11_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_assist_info_r11: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ueassist_info_r11_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_assist_info_r11: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UECapabilityInformation ::= SEQUENCE SRSASN_CODE ue_cap_info_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_info_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ue_cap_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ue_cap_info_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ue_cap_info_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); } } ue_cap_info_s::crit_exts_c_::crit_exts_c_(const ue_cap_info_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); } } ue_cap_info_s::crit_exts_c_& ue_cap_info_s::crit_exts_c_::operator=(const ue_cap_info_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); } return *this; } void ue_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ue_cap_info_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_info_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ue_cap_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ue_cap_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_cap_info_r8: j.write_fieldname("ueCapabilityInformation-r8"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ue_cap_info_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_cap_info_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_cap_info_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_cap_info_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UEInformationResponse-r9 ::= SEQUENCE SRSASN_CODE ue_info_resp_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, rrc_transaction_id, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(rrc_transaction_id, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ue_info_resp_r9_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ue_info_resp_r9_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ue_info_resp_r9_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); } } ue_info_resp_r9_s::crit_exts_c_::crit_exts_c_(const ue_info_resp_r9_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); } } ue_info_resp_r9_s::crit_exts_c_& ue_info_resp_r9_s::crit_exts_c_:: operator=(const ue_info_resp_r9_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); } return *this; } void ue_info_resp_r9_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ue_info_resp_r9_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_r9_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ue_info_resp_r9_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ue_info_resp_r9_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_info_resp_r9: j.write_fieldname("ueInformationResponse-r9"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ue_info_resp_r9_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_info_resp_r9: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_info_resp_r9_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_info_resp_r9: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ULHandoverPreparationTransfer ::= SEQUENCE SRSASN_CODE ul_ho_prep_transfer_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ul_ho_prep_transfer_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ul_ho_prep_transfer_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ul_ho_prep_transfer_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ul_ho_prep_transfer_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); } } ul_ho_prep_transfer_s::crit_exts_c_::crit_exts_c_(const ul_ho_prep_transfer_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); } } ul_ho_prep_transfer_s::crit_exts_c_& ul_ho_prep_transfer_s::crit_exts_c_:: operator=(const ul_ho_prep_transfer_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); } return *this; } void ul_ho_prep_transfer_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ul_ho_prep_transfer_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_ho_prep_transfer_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ul_ho_prep_transfer_r8: j.write_fieldname("ulHandoverPreparationTransfer-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ul_ho_prep_transfer_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ul_ho_prep_transfer_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ULInformationTransfer ::= SEQUENCE SRSASN_CODE ul_info_transfer_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ul_info_transfer_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ul_info_transfer_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ul_info_transfer_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); } } ul_info_transfer_s::crit_exts_c_::crit_exts_c_(const ul_info_transfer_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); } } ul_info_transfer_s::crit_exts_c_& ul_info_transfer_s::crit_exts_c_:: operator=(const ul_info_transfer_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); } return *this; } void ul_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ul_info_transfer_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_info_transfer_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ul_info_transfer_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ul_info_transfer_r8: j.write_fieldname("ulInformationTransfer-r8"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ul_info_transfer_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ul_info_transfer_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ul_info_transfer_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // ULInformationTransferMRDC-r15 ::= SEQUENCE SRSASN_CODE ul_info_transfer_mrdc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_mrdc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ul_info_transfer_mrdc_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ul_info_transfer_mrdc_r15_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ul_info_transfer_mrdc_r15_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); } } ul_info_transfer_mrdc_r15_s::crit_exts_c_::crit_exts_c_(const ul_info_transfer_mrdc_r15_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); } } ul_info_transfer_mrdc_r15_s::crit_exts_c_& ul_info_transfer_mrdc_r15_s::crit_exts_c_:: operator=(const ul_info_transfer_mrdc_r15_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); } return *this; } void ul_info_transfer_mrdc_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ul_info_transfer_mrdc_r15_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_mrdc_r15_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ul_info_transfer_mrdc_r15: j.write_fieldname("ulInformationTransferMRDC-r15"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ul_info_transfer_mrdc_r15: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ul_info_transfer_mrdc_r15: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // WLANConnectionStatusReport-r13 ::= SEQUENCE SRSASN_CODE wlan_conn_status_report_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE wlan_conn_status_report_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void wlan_conn_status_report_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void wlan_conn_status_report_r13_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void wlan_conn_status_report_r13_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); } } wlan_conn_status_report_r13_s::crit_exts_c_::crit_exts_c_(const wlan_conn_status_report_r13_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); } } wlan_conn_status_report_r13_s::crit_exts_c_& wlan_conn_status_report_r13_s::crit_exts_c_:: operator=(const wlan_conn_status_report_r13_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); } return *this; } void wlan_conn_status_report_r13_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE wlan_conn_status_report_r13_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE wlan_conn_status_report_r13_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::wlan_conn_status_report_r13: j.write_fieldname("wlanConnectionStatusReport-r13"); c.to_json(j); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::wlan_conn_status_report_r13: HANDLE_CODE(c.pack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::wlan_conn_status_report_r13: HANDLE_CODE(c.unpack(bref)); break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UL-DCCH-MessageType ::= CHOICE void ul_dcch_msg_type_c::destroy_() { switch (type_) { case types::c1: c.destroy(); break; case types::msg_class_ext: c.destroy(); break; default: break; } } void ul_dcch_msg_type_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::msg_class_ext: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); } } ul_dcch_msg_type_c::ul_dcch_msg_type_c(const ul_dcch_msg_type_c& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::msg_class_ext: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); } } ul_dcch_msg_type_c& ul_dcch_msg_type_c::operator=(const ul_dcch_msg_type_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::msg_class_ext: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); } return *this; } void ul_dcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::msg_class_ext: j.write_fieldname("messageClassExtension"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); } j.end_obj(); } SRSASN_CODE ul_dcch_msg_type_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_dcch_msg_type_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_dcch_msg_type_c::c1_c_::destroy_() { switch (type_) { case types::csfb_params_request_cdma2000: c.destroy(); break; case types::meas_report: c.destroy(); break; case types::rrc_conn_recfg_complete: c.destroy(); break; case types::rrc_conn_reest_complete: c.destroy(); break; case types::rrc_conn_setup_complete: c.destroy(); break; case types::security_mode_complete: c.destroy(); break; case types::security_mode_fail: c.destroy(); break; case types::ue_cap_info: c.destroy(); break; case types::ul_ho_prep_transfer: c.destroy(); break; case types::ul_info_transfer: c.destroy(); break; case types::counter_check_resp: c.destroy(); break; case types::ue_info_resp_r9: c.destroy(); break; case types::proximity_ind_r9: c.destroy(); break; case types::rn_recfg_complete_r10: c.destroy(); break; case types::mbms_count_resp_r10: c.destroy(); break; case types::inter_freq_rstd_meas_ind_r10: c.destroy(); break; default: break; } } void ul_dcch_msg_type_c::c1_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::csfb_params_request_cdma2000: c.init(); break; case types::meas_report: c.init(); break; case types::rrc_conn_recfg_complete: c.init(); break; case types::rrc_conn_reest_complete: c.init(); break; case types::rrc_conn_setup_complete: c.init(); break; case types::security_mode_complete: c.init(); break; case types::security_mode_fail: c.init(); break; case types::ue_cap_info: c.init(); break; case types::ul_ho_prep_transfer: c.init(); break; case types::ul_info_transfer: c.init(); break; case types::counter_check_resp: c.init(); break; case types::ue_info_resp_r9: c.init(); break; case types::proximity_ind_r9: c.init(); break; case types::rn_recfg_complete_r10: c.init(); break; case types::mbms_count_resp_r10: c.init(); break; case types::inter_freq_rstd_meas_ind_r10: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::c1_c_"); } } ul_dcch_msg_type_c::c1_c_::c1_c_(const ul_dcch_msg_type_c::c1_c_& other) { type_ = other.type(); switch (type_) { case types::csfb_params_request_cdma2000: c.init(other.c.get()); break; case types::meas_report: c.init(other.c.get()); break; case types::rrc_conn_recfg_complete: c.init(other.c.get()); break; case types::rrc_conn_reest_complete: c.init(other.c.get()); break; case types::rrc_conn_setup_complete: c.init(other.c.get()); break; case types::security_mode_complete: c.init(other.c.get()); break; case types::security_mode_fail: c.init(other.c.get()); break; case types::ue_cap_info: c.init(other.c.get()); break; case types::ul_ho_prep_transfer: c.init(other.c.get()); break; case types::ul_info_transfer: c.init(other.c.get()); break; case types::counter_check_resp: c.init(other.c.get()); break; case types::ue_info_resp_r9: c.init(other.c.get()); break; case types::proximity_ind_r9: c.init(other.c.get()); break; case types::rn_recfg_complete_r10: c.init(other.c.get()); break; case types::mbms_count_resp_r10: c.init(other.c.get()); break; case types::inter_freq_rstd_meas_ind_r10: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::c1_c_"); } } ul_dcch_msg_type_c::c1_c_& ul_dcch_msg_type_c::c1_c_::operator=(const ul_dcch_msg_type_c::c1_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::csfb_params_request_cdma2000: c.set(other.c.get()); break; case types::meas_report: c.set(other.c.get()); break; case types::rrc_conn_recfg_complete: c.set(other.c.get()); break; case types::rrc_conn_reest_complete: c.set(other.c.get()); break; case types::rrc_conn_setup_complete: c.set(other.c.get()); break; case types::security_mode_complete: c.set(other.c.get()); break; case types::security_mode_fail: c.set(other.c.get()); break; case types::ue_cap_info: c.set(other.c.get()); break; case types::ul_ho_prep_transfer: c.set(other.c.get()); break; case types::ul_info_transfer: c.set(other.c.get()); break; case types::counter_check_resp: c.set(other.c.get()); break; case types::ue_info_resp_r9: c.set(other.c.get()); break; case types::proximity_ind_r9: c.set(other.c.get()); break; case types::rn_recfg_complete_r10: c.set(other.c.get()); break; case types::mbms_count_resp_r10: c.set(other.c.get()); break; case types::inter_freq_rstd_meas_ind_r10: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::c1_c_"); } return *this; } void ul_dcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::csfb_params_request_cdma2000: j.write_fieldname("csfbParametersRequestCDMA2000"); c.get().to_json(j); break; case types::meas_report: j.write_fieldname("measurementReport"); c.get().to_json(j); break; case types::rrc_conn_recfg_complete: j.write_fieldname("rrcConnectionReconfigurationComplete"); c.get().to_json(j); break; case types::rrc_conn_reest_complete: j.write_fieldname("rrcConnectionReestablishmentComplete"); c.get().to_json(j); break; case types::rrc_conn_setup_complete: j.write_fieldname("rrcConnectionSetupComplete"); c.get().to_json(j); break; case types::security_mode_complete: j.write_fieldname("securityModeComplete"); c.get().to_json(j); break; case types::security_mode_fail: j.write_fieldname("securityModeFailure"); c.get().to_json(j); break; case types::ue_cap_info: j.write_fieldname("ueCapabilityInformation"); c.get().to_json(j); break; case types::ul_ho_prep_transfer: j.write_fieldname("ulHandoverPreparationTransfer"); c.get().to_json(j); break; case types::ul_info_transfer: j.write_fieldname("ulInformationTransfer"); c.get().to_json(j); break; case types::counter_check_resp: j.write_fieldname("counterCheckResponse"); c.get().to_json(j); break; case types::ue_info_resp_r9: j.write_fieldname("ueInformationResponse-r9"); c.get().to_json(j); break; case types::proximity_ind_r9: j.write_fieldname("proximityIndication-r9"); c.get().to_json(j); break; case types::rn_recfg_complete_r10: j.write_fieldname("rnReconfigurationComplete-r10"); c.get().to_json(j); break; case types::mbms_count_resp_r10: j.write_fieldname("mbmsCountingResponse-r10"); c.get().to_json(j); break; case types::inter_freq_rstd_meas_ind_r10: j.write_fieldname("interFreqRSTDMeasurementIndication-r10"); c.get().to_json(j); break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::c1_c_"); } j.end_obj(); } SRSASN_CODE ul_dcch_msg_type_c::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::csfb_params_request_cdma2000: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_report: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_recfg_complete: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_reest_complete: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_setup_complete: HANDLE_CODE(c.get().pack(bref)); break; case types::security_mode_complete: HANDLE_CODE(c.get().pack(bref)); break; case types::security_mode_fail: HANDLE_CODE(c.get().pack(bref)); break; case types::ue_cap_info: HANDLE_CODE(c.get().pack(bref)); break; case types::ul_ho_prep_transfer: HANDLE_CODE(c.get().pack(bref)); break; case types::ul_info_transfer: HANDLE_CODE(c.get().pack(bref)); break; case types::counter_check_resp: HANDLE_CODE(c.get().pack(bref)); break; case types::ue_info_resp_r9: HANDLE_CODE(c.get().pack(bref)); break; case types::proximity_ind_r9: HANDLE_CODE(c.get().pack(bref)); break; case types::rn_recfg_complete_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::mbms_count_resp_r10: HANDLE_CODE(c.get().pack(bref)); break; case types::inter_freq_rstd_meas_ind_r10: HANDLE_CODE(c.get().pack(bref)); break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_dcch_msg_type_c::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::csfb_params_request_cdma2000: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_report: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_recfg_complete: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_reest_complete: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_setup_complete: HANDLE_CODE(c.get().unpack(bref)); break; case types::security_mode_complete: HANDLE_CODE(c.get().unpack(bref)); break; case types::security_mode_fail: HANDLE_CODE(c.get().unpack(bref)); break; case types::ue_cap_info: HANDLE_CODE(c.get().unpack(bref)); break; case types::ul_ho_prep_transfer: HANDLE_CODE(c.get().unpack(bref)); break; case types::ul_info_transfer: HANDLE_CODE(c.get().unpack(bref)); break; case types::counter_check_resp: HANDLE_CODE(c.get().unpack(bref)); break; case types::ue_info_resp_r9: HANDLE_CODE(c.get().unpack(bref)); break; case types::proximity_ind_r9: HANDLE_CODE(c.get().unpack(bref)); break; case types::rn_recfg_complete_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::mbms_count_resp_r10: HANDLE_CODE(c.get().unpack(bref)); break; case types::inter_freq_rstd_meas_ind_r10: HANDLE_CODE(c.get().unpack(bref)); break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_dcch_msg_type_c::msg_class_ext_c_::destroy_() { switch (type_) { case types::c2: c.destroy(); break; default: break; } } void ul_dcch_msg_type_c::msg_class_ext_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c2: c.init(); break; case types::msg_class_ext_future_r11: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); } } ul_dcch_msg_type_c::msg_class_ext_c_::msg_class_ext_c_(const ul_dcch_msg_type_c::msg_class_ext_c_& other) { type_ = other.type(); switch (type_) { case types::c2: c.init(other.c.get()); break; case types::msg_class_ext_future_r11: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); } } ul_dcch_msg_type_c::msg_class_ext_c_& ul_dcch_msg_type_c::msg_class_ext_c_:: operator=(const ul_dcch_msg_type_c::msg_class_ext_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c2: c.set(other.c.get()); break; case types::msg_class_ext_future_r11: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); } return *this; } void ul_dcch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c2: j.write_fieldname("c2"); c.get().to_json(j); break; case types::msg_class_ext_future_r11: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); } j.end_obj(); } SRSASN_CODE ul_dcch_msg_type_c::msg_class_ext_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c2: HANDLE_CODE(c.get().pack(bref)); break; case types::msg_class_ext_future_r11: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_dcch_msg_type_c::msg_class_ext_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c2: HANDLE_CODE(c.get().unpack(bref)); break; case types::msg_class_ext_future_r11: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::destroy_() { switch (type_) { case types::ue_assist_info_r11: c.destroy(); break; case types::in_dev_coex_ind_r11: c.destroy(); break; case types::mbms_interest_ind_r11: c.destroy(); break; case types::scg_fail_info_r12: c.destroy(); break; case types::sidelink_ue_info_r12: c.destroy(); break; case types::wlan_conn_status_report_r13: c.destroy(); break; case types::rrc_conn_resume_complete_r13: c.destroy(); break; case types::ul_info_transfer_mrdc_r15: c.destroy(); break; case types::scg_fail_info_nr_r15: c.destroy(); break; case types::meas_report_app_layer_r15: c.destroy(); break; case types::fail_info_r15: c.destroy(); break; default: break; } } void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::ue_assist_info_r11: c.init(); break; case types::in_dev_coex_ind_r11: c.init(); break; case types::mbms_interest_ind_r11: c.init(); break; case types::scg_fail_info_r12: c.init(); break; case types::sidelink_ue_info_r12: c.init(); break; case types::wlan_conn_status_report_r13: c.init(); break; case types::rrc_conn_resume_complete_r13: c.init(); break; case types::ul_info_transfer_mrdc_r15: c.init(); break; case types::scg_fail_info_nr_r15: c.init(); break; case types::meas_report_app_layer_r15: c.init(); break; case types::fail_info_r15: c.init(); break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_"); } } ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::c2_c_(const ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_& other) { type_ = other.type(); switch (type_) { case types::ue_assist_info_r11: c.init(other.c.get()); break; case types::in_dev_coex_ind_r11: c.init(other.c.get()); break; case types::mbms_interest_ind_r11: c.init(other.c.get()); break; case types::scg_fail_info_r12: c.init(other.c.get()); break; case types::sidelink_ue_info_r12: c.init(other.c.get()); break; case types::wlan_conn_status_report_r13: c.init(other.c.get()); break; case types::rrc_conn_resume_complete_r13: c.init(other.c.get()); break; case types::ul_info_transfer_mrdc_r15: c.init(other.c.get()); break; case types::scg_fail_info_nr_r15: c.init(other.c.get()); break; case types::meas_report_app_layer_r15: c.init(other.c.get()); break; case types::fail_info_r15: c.init(other.c.get()); break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_"); } } ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_:: operator=(const ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::ue_assist_info_r11: c.set(other.c.get()); break; case types::in_dev_coex_ind_r11: c.set(other.c.get()); break; case types::mbms_interest_ind_r11: c.set(other.c.get()); break; case types::scg_fail_info_r12: c.set(other.c.get()); break; case types::sidelink_ue_info_r12: c.set(other.c.get()); break; case types::wlan_conn_status_report_r13: c.set(other.c.get()); break; case types::rrc_conn_resume_complete_r13: c.set(other.c.get()); break; case types::ul_info_transfer_mrdc_r15: c.set(other.c.get()); break; case types::scg_fail_info_nr_r15: c.set(other.c.get()); break; case types::meas_report_app_layer_r15: c.set(other.c.get()); break; case types::fail_info_r15: c.set(other.c.get()); break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_"); } return *this; } void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_assist_info_r11: j.write_fieldname("ueAssistanceInformation-r11"); c.get().to_json(j); break; case types::in_dev_coex_ind_r11: j.write_fieldname("inDeviceCoexIndication-r11"); c.get().to_json(j); break; case types::mbms_interest_ind_r11: j.write_fieldname("mbmsInterestIndication-r11"); c.get().to_json(j); break; case types::scg_fail_info_r12: j.write_fieldname("scgFailureInformation-r12"); c.get().to_json(j); break; case types::sidelink_ue_info_r12: j.write_fieldname("sidelinkUEInformation-r12"); c.get().to_json(j); break; case types::wlan_conn_status_report_r13: j.write_fieldname("wlanConnectionStatusReport-r13"); c.get().to_json(j); break; case types::rrc_conn_resume_complete_r13: j.write_fieldname("rrcConnectionResumeComplete-r13"); c.get().to_json(j); break; case types::ul_info_transfer_mrdc_r15: j.write_fieldname("ulInformationTransferMRDC-r15"); c.get().to_json(j); break; case types::scg_fail_info_nr_r15: j.write_fieldname("scgFailureInformationNR-r15"); c.get().to_json(j); break; case types::meas_report_app_layer_r15: j.write_fieldname("measReportAppLayer-r15"); c.get().to_json(j); break; case types::fail_info_r15: j.write_fieldname("failureInformation-r15"); c.get().to_json(j); break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_"); } j.end_obj(); } SRSASN_CODE ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_assist_info_r11: HANDLE_CODE(c.get().pack(bref)); break; case types::in_dev_coex_ind_r11: HANDLE_CODE(c.get().pack(bref)); break; case types::mbms_interest_ind_r11: HANDLE_CODE(c.get().pack(bref)); break; case types::scg_fail_info_r12: HANDLE_CODE(c.get().pack(bref)); break; case types::sidelink_ue_info_r12: HANDLE_CODE(c.get().pack(bref)); break; case types::wlan_conn_status_report_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::rrc_conn_resume_complete_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::ul_info_transfer_mrdc_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::scg_fail_info_nr_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::meas_report_app_layer_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::fail_info_r15: HANDLE_CODE(c.get().pack(bref)); break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_assist_info_r11: HANDLE_CODE(c.get().unpack(bref)); break; case types::in_dev_coex_ind_r11: HANDLE_CODE(c.get().unpack(bref)); break; case types::mbms_interest_ind_r11: HANDLE_CODE(c.get().unpack(bref)); break; case types::scg_fail_info_r12: HANDLE_CODE(c.get().unpack(bref)); break; case types::sidelink_ue_info_r12: HANDLE_CODE(c.get().unpack(bref)); break; case types::wlan_conn_status_report_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::rrc_conn_resume_complete_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::ul_info_transfer_mrdc_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::scg_fail_info_nr_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::meas_report_app_layer_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::fail_info_r15: HANDLE_CODE(c.get().unpack(bref)); break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UL-DCCH-Message ::= SEQUENCE SRSASN_CODE ul_dcch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE ul_dcch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void ul_dcch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("UL-DCCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // InterFreqBandInfo ::= SEQUENCE SRSASN_CODE inter_freq_band_info_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_freq_need_for_gaps, 1)); return SRSASN_SUCCESS; } SRSASN_CODE inter_freq_band_info_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_freq_need_for_gaps, 1)); return SRSASN_SUCCESS; } void inter_freq_band_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("interFreqNeedForGaps", inter_freq_need_for_gaps); j.end_obj(); } // InterRAT-BandInfo ::= SEQUENCE SRSASN_CODE inter_rat_band_info_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_rat_need_for_gaps, 1)); return SRSASN_SUCCESS; } SRSASN_CODE inter_rat_band_info_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_rat_need_for_gaps, 1)); return SRSASN_SUCCESS; } void inter_rat_band_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("interRAT-NeedForGaps", inter_rat_need_for_gaps); j.end_obj(); } // BandInfoEUTRA ::= SEQUENCE SRSASN_CODE band_info_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_rat_band_list_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_band_list, 1, 64)); if (inter_rat_band_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_rat_band_list, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE band_info_eutra_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_rat_band_list_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(inter_freq_band_list, bref, 1, 64)); if (inter_rat_band_list_present) { HANDLE_CODE(unpack_dyn_seq_of(inter_rat_band_list, bref, 1, 64)); } return SRSASN_SUCCESS; } void band_info_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("interFreqBandList"); for (uint32_t i1 = 0; i1 < inter_freq_band_list.size(); ++i1) { inter_freq_band_list[i1].to_json(j); } j.end_array(); if (inter_rat_band_list_present) { j.start_array("interRAT-BandList"); for (uint32_t i1 = 0; i1 < inter_rat_band_list.size(); ++i1) { inter_rat_band_list[i1].to_json(j); } j.end_array(); } j.end_obj(); } // CA-MIMO-ParametersDL-r10 ::= SEQUENCE SRSASN_CODE ca_mimo_params_dl_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_mimo_cap_dl_r10_present, 1)); HANDLE_CODE(pack_enum(bref, ca_bw_class_dl_r10)); if (supported_mimo_cap_dl_r10_present) { HANDLE_CODE(pack_enum(bref, supported_mimo_cap_dl_r10)); } return SRSASN_SUCCESS; } SRSASN_CODE ca_mimo_params_dl_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_mimo_cap_dl_r10_present, 1)); HANDLE_CODE(unpack_enum(ca_bw_class_dl_r10, bref)); if (supported_mimo_cap_dl_r10_present) { HANDLE_CODE(unpack_enum(supported_mimo_cap_dl_r10, bref)); } return SRSASN_SUCCESS; } void ca_mimo_params_dl_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("ca-BandwidthClassDL-r10", ca_bw_class_dl_r10.to_string()); if (supported_mimo_cap_dl_r10_present) { j.write_str("supportedMIMO-CapabilityDL-r10", supported_mimo_cap_dl_r10.to_string()); } j.end_obj(); } // CA-MIMO-ParametersUL-r10 ::= SEQUENCE SRSASN_CODE ca_mimo_params_ul_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_mimo_cap_ul_r10_present, 1)); HANDLE_CODE(pack_enum(bref, ca_bw_class_ul_r10)); if (supported_mimo_cap_ul_r10_present) { HANDLE_CODE(pack_enum(bref, supported_mimo_cap_ul_r10)); } return SRSASN_SUCCESS; } SRSASN_CODE ca_mimo_params_ul_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_mimo_cap_ul_r10_present, 1)); HANDLE_CODE(unpack_enum(ca_bw_class_ul_r10, bref)); if (supported_mimo_cap_ul_r10_present) { HANDLE_CODE(unpack_enum(supported_mimo_cap_ul_r10, bref)); } return SRSASN_SUCCESS; } void ca_mimo_params_ul_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("ca-BandwidthClassUL-r10", ca_bw_class_ul_r10.to_string()); if (supported_mimo_cap_ul_r10_present) { j.write_str("supportedMIMO-CapabilityUL-r10", supported_mimo_cap_ul_r10.to_string()); } j.end_obj(); } // BandParameters-r10 ::= SEQUENCE SRSASN_CODE band_params_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_params_ul_r10_present, 1)); HANDLE_CODE(bref.pack(band_params_dl_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, band_eutra_r10, (uint8_t)1, (uint8_t)64)); if (band_params_ul_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_params_ul_r10, 1, 16)); } if (band_params_dl_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_params_dl_r10, 1, 16)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_params_ul_r10_present, 1)); HANDLE_CODE(bref.unpack(band_params_dl_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(band_eutra_r10, bref, (uint8_t)1, (uint8_t)64)); if (band_params_ul_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(band_params_ul_r10, bref, 1, 16)); } if (band_params_dl_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(band_params_dl_r10, bref, 1, 16)); } return SRSASN_SUCCESS; } void band_params_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("bandEUTRA-r10", band_eutra_r10); if (band_params_ul_r10_present) { j.start_array("bandParametersUL-r10"); for (uint32_t i1 = 0; i1 < band_params_ul_r10.size(); ++i1) { band_params_ul_r10[i1].to_json(j); } j.end_array(); } if (band_params_dl_r10_present) { j.start_array("bandParametersDL-r10"); for (uint32_t i1 = 0; i1 < band_params_dl_r10.size(); ++i1) { band_params_dl_r10[i1].to_json(j); } j.end_array(); } j.end_obj(); } // BandParameters-r11 ::= SEQUENCE SRSASN_CODE band_params_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_params_ul_r11_present, 1)); HANDLE_CODE(bref.pack(band_params_dl_r11_present, 1)); HANDLE_CODE(bref.pack(supported_csi_proc_r11_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, band_eutra_r11, (uint16_t)1, (uint16_t)256)); if (band_params_ul_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_params_ul_r11, 1, 16)); } if (band_params_dl_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_params_dl_r11, 1, 16)); } if (supported_csi_proc_r11_present) { HANDLE_CODE(pack_enum(bref, supported_csi_proc_r11)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_params_ul_r11_present, 1)); HANDLE_CODE(bref.unpack(band_params_dl_r11_present, 1)); HANDLE_CODE(bref.unpack(supported_csi_proc_r11_present, 1)); HANDLE_CODE(unpack_unalign_integer(band_eutra_r11, bref, (uint16_t)1, (uint16_t)256)); if (band_params_ul_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(band_params_ul_r11, bref, 1, 16)); } if (band_params_dl_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(band_params_dl_r11, bref, 1, 16)); } if (supported_csi_proc_r11_present) { HANDLE_CODE(unpack_enum(supported_csi_proc_r11, bref)); } return SRSASN_SUCCESS; } void band_params_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("bandEUTRA-r11", band_eutra_r11); if (band_params_ul_r11_present) { j.start_array("bandParametersUL-r11"); for (uint32_t i1 = 0; i1 < band_params_ul_r11.size(); ++i1) { band_params_ul_r11[i1].to_json(j); } j.end_array(); } if (band_params_dl_r11_present) { j.start_array("bandParametersDL-r11"); for (uint32_t i1 = 0; i1 < band_params_dl_r11.size(); ++i1) { band_params_dl_r11[i1].to_json(j); } j.end_array(); } if (supported_csi_proc_r11_present) { j.write_str("supportedCSI-Proc-r11", supported_csi_proc_r11.to_string()); } j.end_obj(); } // BandCombinationParameters-r11 ::= SEQUENCE SRSASN_CODE band_combination_params_r11_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(supported_bw_combination_set_r11_present, 1)); HANDLE_CODE(bref.pack(multiple_timing_advance_r11_present, 1)); HANDLE_CODE(bref.pack(simul_rx_tx_r11_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_r11, 1, 64)); if (supported_bw_combination_set_r11_present) { HANDLE_CODE(supported_bw_combination_set_r11.pack(bref)); } HANDLE_CODE(band_info_eutra_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_r11_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(supported_bw_combination_set_r11_present, 1)); HANDLE_CODE(bref.unpack(multiple_timing_advance_r11_present, 1)); HANDLE_CODE(bref.unpack(simul_rx_tx_r11_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(band_param_list_r11, bref, 1, 64)); if (supported_bw_combination_set_r11_present) { HANDLE_CODE(supported_bw_combination_set_r11.unpack(bref)); } HANDLE_CODE(band_info_eutra_r11.unpack(bref)); return SRSASN_SUCCESS; } void band_combination_params_r11_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("bandParameterList-r11"); for (uint32_t i1 = 0; i1 < band_param_list_r11.size(); ++i1) { band_param_list_r11[i1].to_json(j); } j.end_array(); if (supported_bw_combination_set_r11_present) { j.write_str("supportedBandwidthCombinationSet-r11", supported_bw_combination_set_r11.to_string()); } if (multiple_timing_advance_r11_present) { j.write_str("multipleTimingAdvance-r11", "supported"); } if (simul_rx_tx_r11_present) { j.write_str("simultaneousRx-Tx-r11", "supported"); } j.write_fieldname("bandInfoEUTRA-r11"); band_info_eutra_r11.to_json(j); j.end_obj(); } // IntraBandContiguousCC-Info-r12 ::= SEQUENCE SRSASN_CODE intra_band_contiguous_cc_info_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(four_layer_tm3_tm4_per_cc_r12_present, 1)); HANDLE_CODE(bref.pack(supported_mimo_cap_dl_r12_present, 1)); HANDLE_CODE(bref.pack(supported_csi_proc_r12_present, 1)); if (supported_mimo_cap_dl_r12_present) { HANDLE_CODE(pack_enum(bref, supported_mimo_cap_dl_r12)); } if (supported_csi_proc_r12_present) { HANDLE_CODE(pack_enum(bref, supported_csi_proc_r12)); } return SRSASN_SUCCESS; } SRSASN_CODE intra_band_contiguous_cc_info_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(four_layer_tm3_tm4_per_cc_r12_present, 1)); HANDLE_CODE(bref.unpack(supported_mimo_cap_dl_r12_present, 1)); HANDLE_CODE(bref.unpack(supported_csi_proc_r12_present, 1)); if (supported_mimo_cap_dl_r12_present) { HANDLE_CODE(unpack_enum(supported_mimo_cap_dl_r12, bref)); } if (supported_csi_proc_r12_present) { HANDLE_CODE(unpack_enum(supported_csi_proc_r12, bref)); } return SRSASN_SUCCESS; } void intra_band_contiguous_cc_info_r12_s::to_json(json_writer& j) const { j.start_obj(); if (four_layer_tm3_tm4_per_cc_r12_present) { j.write_str("fourLayerTM3-TM4-perCC-r12", "supported"); } if (supported_mimo_cap_dl_r12_present) { j.write_str("supportedMIMO-CapabilityDL-r12", supported_mimo_cap_dl_r12.to_string()); } if (supported_csi_proc_r12_present) { j.write_str("supportedCSI-Proc-r12", supported_csi_proc_r12.to_string()); } j.end_obj(); } // CA-MIMO-ParametersDL-r13 ::= SEQUENCE SRSASN_CODE ca_mimo_params_dl_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_mimo_cap_dl_r13_present, 1)); HANDLE_CODE(bref.pack(four_layer_tm3_tm4_r13_present, 1)); HANDLE_CODE(pack_enum(bref, ca_bw_class_dl_r13)); if (supported_mimo_cap_dl_r13_present) { HANDLE_CODE(pack_enum(bref, supported_mimo_cap_dl_r13)); } HANDLE_CODE(pack_dyn_seq_of(bref, intra_band_contiguous_cc_info_list_r13, 1, 32)); return SRSASN_SUCCESS; } SRSASN_CODE ca_mimo_params_dl_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_mimo_cap_dl_r13_present, 1)); HANDLE_CODE(bref.unpack(four_layer_tm3_tm4_r13_present, 1)); HANDLE_CODE(unpack_enum(ca_bw_class_dl_r13, bref)); if (supported_mimo_cap_dl_r13_present) { HANDLE_CODE(unpack_enum(supported_mimo_cap_dl_r13, bref)); } HANDLE_CODE(unpack_dyn_seq_of(intra_band_contiguous_cc_info_list_r13, bref, 1, 32)); return SRSASN_SUCCESS; } void ca_mimo_params_dl_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("ca-BandwidthClassDL-r13", ca_bw_class_dl_r13.to_string()); if (supported_mimo_cap_dl_r13_present) { j.write_str("supportedMIMO-CapabilityDL-r13", supported_mimo_cap_dl_r13.to_string()); } if (four_layer_tm3_tm4_r13_present) { j.write_str("fourLayerTM3-TM4-r13", "supported"); } j.start_array("intraBandContiguousCC-InfoList-r13"); for (uint32_t i1 = 0; i1 < intra_band_contiguous_cc_info_list_r13.size(); ++i1) { intra_band_contiguous_cc_info_list_r13[i1].to_json(j); } j.end_array(); j.end_obj(); } // BandParameters-r13 ::= SEQUENCE SRSASN_CODE band_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_params_ul_r13_present, 1)); HANDLE_CODE(bref.pack(band_params_dl_r13_present, 1)); HANDLE_CODE(bref.pack(supported_csi_proc_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, band_eutra_r13, (uint16_t)1, (uint16_t)256)); if (band_params_ul_r13_present) { HANDLE_CODE(band_params_ul_r13.pack(bref)); } if (band_params_dl_r13_present) { HANDLE_CODE(band_params_dl_r13.pack(bref)); } if (supported_csi_proc_r13_present) { HANDLE_CODE(pack_enum(bref, supported_csi_proc_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_params_ul_r13_present, 1)); HANDLE_CODE(bref.unpack(band_params_dl_r13_present, 1)); HANDLE_CODE(bref.unpack(supported_csi_proc_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(band_eutra_r13, bref, (uint16_t)1, (uint16_t)256)); if (band_params_ul_r13_present) { HANDLE_CODE(band_params_ul_r13.unpack(bref)); } if (band_params_dl_r13_present) { HANDLE_CODE(band_params_dl_r13.unpack(bref)); } if (supported_csi_proc_r13_present) { HANDLE_CODE(unpack_enum(supported_csi_proc_r13, bref)); } return SRSASN_SUCCESS; } void band_params_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("bandEUTRA-r13", band_eutra_r13); if (band_params_ul_r13_present) { j.write_fieldname("bandParametersUL-r13"); band_params_ul_r13.to_json(j); } if (band_params_dl_r13_present) { j.write_fieldname("bandParametersDL-r13"); band_params_dl_r13.to_json(j); } if (supported_csi_proc_r13_present) { j.write_str("supportedCSI-Proc-r13", supported_csi_proc_r13.to_string()); } j.end_obj(); } // BandCombinationParameters-r13 ::= SEQUENCE SRSASN_CODE band_combination_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(different_fallback_supported_r13_present, 1)); HANDLE_CODE(bref.pack(supported_bw_combination_set_r13_present, 1)); HANDLE_CODE(bref.pack(multiple_timing_advance_r13_present, 1)); HANDLE_CODE(bref.pack(simul_rx_tx_r13_present, 1)); HANDLE_CODE(bref.pack(dc_support_r13_present, 1)); HANDLE_CODE(bref.pack(supported_naics_minus2_crs_ap_r13_present, 1)); HANDLE_CODE(bref.pack(comm_supported_bands_per_bc_r13_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_r13, 1, 64)); if (supported_bw_combination_set_r13_present) { HANDLE_CODE(supported_bw_combination_set_r13.pack(bref)); } HANDLE_CODE(band_info_eutra_r13.pack(bref)); if (dc_support_r13_present) { HANDLE_CODE(bref.pack(dc_support_r13.async_r13_present, 1)); HANDLE_CODE(bref.pack(dc_support_r13.supported_cell_grouping_r13_present, 1)); if (dc_support_r13.supported_cell_grouping_r13_present) { HANDLE_CODE(dc_support_r13.supported_cell_grouping_r13.pack(bref)); } } if (supported_naics_minus2_crs_ap_r13_present) { HANDLE_CODE(supported_naics_minus2_crs_ap_r13.pack(bref)); } if (comm_supported_bands_per_bc_r13_present) { HANDLE_CODE(comm_supported_bands_per_bc_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(different_fallback_supported_r13_present, 1)); HANDLE_CODE(bref.unpack(supported_bw_combination_set_r13_present, 1)); HANDLE_CODE(bref.unpack(multiple_timing_advance_r13_present, 1)); HANDLE_CODE(bref.unpack(simul_rx_tx_r13_present, 1)); HANDLE_CODE(bref.unpack(dc_support_r13_present, 1)); HANDLE_CODE(bref.unpack(supported_naics_minus2_crs_ap_r13_present, 1)); HANDLE_CODE(bref.unpack(comm_supported_bands_per_bc_r13_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(band_param_list_r13, bref, 1, 64)); if (supported_bw_combination_set_r13_present) { HANDLE_CODE(supported_bw_combination_set_r13.unpack(bref)); } HANDLE_CODE(band_info_eutra_r13.unpack(bref)); if (dc_support_r13_present) { HANDLE_CODE(bref.unpack(dc_support_r13.async_r13_present, 1)); HANDLE_CODE(bref.unpack(dc_support_r13.supported_cell_grouping_r13_present, 1)); if (dc_support_r13.supported_cell_grouping_r13_present) { HANDLE_CODE(dc_support_r13.supported_cell_grouping_r13.unpack(bref)); } } if (supported_naics_minus2_crs_ap_r13_present) { HANDLE_CODE(supported_naics_minus2_crs_ap_r13.unpack(bref)); } if (comm_supported_bands_per_bc_r13_present) { HANDLE_CODE(comm_supported_bands_per_bc_r13.unpack(bref)); } return SRSASN_SUCCESS; } void band_combination_params_r13_s::to_json(json_writer& j) const { j.start_obj(); if (different_fallback_supported_r13_present) { j.write_str("differentFallbackSupported-r13", "true"); } j.start_array("bandParameterList-r13"); for (uint32_t i1 = 0; i1 < band_param_list_r13.size(); ++i1) { band_param_list_r13[i1].to_json(j); } j.end_array(); if (supported_bw_combination_set_r13_present) { j.write_str("supportedBandwidthCombinationSet-r13", supported_bw_combination_set_r13.to_string()); } if (multiple_timing_advance_r13_present) { j.write_str("multipleTimingAdvance-r13", "supported"); } if (simul_rx_tx_r13_present) { j.write_str("simultaneousRx-Tx-r13", "supported"); } j.write_fieldname("bandInfoEUTRA-r13"); band_info_eutra_r13.to_json(j); if (dc_support_r13_present) { j.write_fieldname("dc-Support-r13"); j.start_obj(); if (dc_support_r13.async_r13_present) { j.write_str("asynchronous-r13", "supported"); } if (dc_support_r13.supported_cell_grouping_r13_present) { j.write_fieldname("supportedCellGrouping-r13"); dc_support_r13.supported_cell_grouping_r13.to_json(j); } j.end_obj(); } if (supported_naics_minus2_crs_ap_r13_present) { j.write_str("supportedNAICS-2CRS-AP-r13", supported_naics_minus2_crs_ap_r13.to_string()); } if (comm_supported_bands_per_bc_r13_present) { j.write_str("commSupportedBandsPerBC-r13", comm_supported_bands_per_bc_r13.to_string()); } j.end_obj(); } void band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::destroy_() { switch (type_) { case types::three_entries_r13: c.destroy >(); break; case types::four_entries_r13: c.destroy >(); break; case types::five_entries_r13: c.destroy >(); break; default: break; } } void band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::three_entries_r13: c.init >(); break; case types::four_entries_r13: c.init >(); break; case types::five_entries_r13: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_"); } } band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::supported_cell_grouping_r13_c_( const band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_& other) { type_ = other.type(); switch (type_) { case types::three_entries_r13: c.init(other.c.get >()); break; case types::four_entries_r13: c.init(other.c.get >()); break; case types::five_entries_r13: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_"); } } band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_& band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_:: operator=(const band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::three_entries_r13: c.set(other.c.get >()); break; case types::four_entries_r13: c.set(other.c.get >()); break; case types::five_entries_r13: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_"); } return *this; } void band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::three_entries_r13: j.write_str("threeEntries-r13", c.get >().to_string()); break; case types::four_entries_r13: j.write_str("fourEntries-r13", c.get >().to_string()); break; case types::five_entries_r13: j.write_str("fiveEntries-r13", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_"); } j.end_obj(); } SRSASN_CODE band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::three_entries_r13: HANDLE_CODE(c.get >().pack(bref)); break; case types::four_entries_r13: HANDLE_CODE(c.get >().pack(bref)); break; case types::five_entries_r13: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::three_entries_r13: HANDLE_CODE(c.get >().unpack(bref)); break; case types::four_entries_r13: HANDLE_CODE(c.get >().unpack(bref)); break; case types::five_entries_r13: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // BandParameters-v1090 ::= SEQUENCE SRSASN_CODE band_params_v1090_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(band_eutra_v1090_present, 1)); if (band_eutra_v1090_present) { HANDLE_CODE(pack_unalign_integer(bref, band_eutra_v1090, (uint16_t)65, (uint16_t)256)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1090_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(band_eutra_v1090_present, 1)); if (band_eutra_v1090_present) { HANDLE_CODE(unpack_unalign_integer(band_eutra_v1090, bref, (uint16_t)65, (uint16_t)256)); } return SRSASN_SUCCESS; } void band_params_v1090_s::to_json(json_writer& j) const { j.start_obj(); if (band_eutra_v1090_present) { j.write_int("bandEUTRA-v1090", band_eutra_v1090); } j.end_obj(); } // CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE SRSASN_CODE ca_mimo_params_dl_v10i0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(four_layer_tm3_tm4_r10_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ca_mimo_params_dl_v10i0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(four_layer_tm3_tm4_r10_present, 1)); return SRSASN_SUCCESS; } void ca_mimo_params_dl_v10i0_s::to_json(json_writer& j) const { j.start_obj(); if (four_layer_tm3_tm4_r10_present) { j.write_str("fourLayerTM3-TM4-r10", "supported"); } j.end_obj(); } // BandParameters-v10i0 ::= SEQUENCE SRSASN_CODE band_params_v10i0_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, band_params_dl_v10i0, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE band_params_v10i0_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(band_params_dl_v10i0, bref, 1, 16)); return SRSASN_SUCCESS; } void band_params_v10i0_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("bandParametersDL-v10i0"); for (uint32_t i1 = 0; i1 < band_params_dl_v10i0.size(); ++i1) { band_params_dl_v10i0[i1].to_json(j); } j.end_array(); j.end_obj(); } // BandCombinationParameters-v10i0 ::= SEQUENCE SRSASN_CODE band_combination_params_v10i0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_param_list_v10i0_present, 1)); if (band_param_list_v10i0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_v10i0, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v10i0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_param_list_v10i0_present, 1)); if (band_param_list_v10i0_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_v10i0, bref, 1, 64)); } return SRSASN_SUCCESS; } void band_combination_params_v10i0_s::to_json(json_writer& j) const { j.start_obj(); if (band_param_list_v10i0_present) { j.start_array("bandParameterList-v10i0"); for (uint32_t i1 = 0; i1 < band_param_list_v10i0.size(); ++i1) { band_param_list_v10i0[i1].to_json(j); } j.end_array(); } j.end_obj(); } // BandParameters-v1130 ::= SEQUENCE SRSASN_CODE band_params_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, supported_csi_proc_r11)); return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(supported_csi_proc_r11, bref)); return SRSASN_SUCCESS; } void band_params_v1130_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("supportedCSI-Proc-r11", supported_csi_proc_r11.to_string()); j.end_obj(); } // BandCombinationParameters-v1130 ::= SEQUENCE SRSASN_CODE band_combination_params_v1130_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(multiple_timing_advance_r11_present, 1)); HANDLE_CODE(bref.pack(simul_rx_tx_r11_present, 1)); HANDLE_CODE(bref.pack(band_param_list_r11_present, 1)); if (band_param_list_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_r11, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1130_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(multiple_timing_advance_r11_present, 1)); HANDLE_CODE(bref.unpack(simul_rx_tx_r11_present, 1)); HANDLE_CODE(bref.unpack(band_param_list_r11_present, 1)); if (band_param_list_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_r11, bref, 1, 64)); } return SRSASN_SUCCESS; } void band_combination_params_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (multiple_timing_advance_r11_present) { j.write_str("multipleTimingAdvance-r11", "supported"); } if (simul_rx_tx_r11_present) { j.write_str("simultaneousRx-Tx-r11", "supported"); } if (band_param_list_r11_present) { j.start_array("bandParameterList-r11"); for (uint32_t i1 = 0; i1 < band_param_list_r11.size(); ++i1) { band_param_list_r11[i1].to_json(j); } j.end_array(); } j.end_obj(); } // BandCombinationParameters-v1250 ::= SEQUENCE SRSASN_CODE band_combination_params_v1250_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(dc_support_r12_present, 1)); HANDLE_CODE(bref.pack(supported_naics_minus2_crs_ap_r12_present, 1)); HANDLE_CODE(bref.pack(comm_supported_bands_per_bc_r12_present, 1)); if (dc_support_r12_present) { HANDLE_CODE(bref.pack(dc_support_r12.async_r12_present, 1)); HANDLE_CODE(bref.pack(dc_support_r12.supported_cell_grouping_r12_present, 1)); if (dc_support_r12.supported_cell_grouping_r12_present) { HANDLE_CODE(dc_support_r12.supported_cell_grouping_r12.pack(bref)); } } if (supported_naics_minus2_crs_ap_r12_present) { HANDLE_CODE(supported_naics_minus2_crs_ap_r12.pack(bref)); } if (comm_supported_bands_per_bc_r12_present) { HANDLE_CODE(comm_supported_bands_per_bc_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1250_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(dc_support_r12_present, 1)); HANDLE_CODE(bref.unpack(supported_naics_minus2_crs_ap_r12_present, 1)); HANDLE_CODE(bref.unpack(comm_supported_bands_per_bc_r12_present, 1)); if (dc_support_r12_present) { HANDLE_CODE(bref.unpack(dc_support_r12.async_r12_present, 1)); HANDLE_CODE(bref.unpack(dc_support_r12.supported_cell_grouping_r12_present, 1)); if (dc_support_r12.supported_cell_grouping_r12_present) { HANDLE_CODE(dc_support_r12.supported_cell_grouping_r12.unpack(bref)); } } if (supported_naics_minus2_crs_ap_r12_present) { HANDLE_CODE(supported_naics_minus2_crs_ap_r12.unpack(bref)); } if (comm_supported_bands_per_bc_r12_present) { HANDLE_CODE(comm_supported_bands_per_bc_r12.unpack(bref)); } return SRSASN_SUCCESS; } void band_combination_params_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (dc_support_r12_present) { j.write_fieldname("dc-Support-r12"); j.start_obj(); if (dc_support_r12.async_r12_present) { j.write_str("asynchronous-r12", "supported"); } if (dc_support_r12.supported_cell_grouping_r12_present) { j.write_fieldname("supportedCellGrouping-r12"); dc_support_r12.supported_cell_grouping_r12.to_json(j); } j.end_obj(); } if (supported_naics_minus2_crs_ap_r12_present) { j.write_str("supportedNAICS-2CRS-AP-r12", supported_naics_minus2_crs_ap_r12.to_string()); } if (comm_supported_bands_per_bc_r12_present) { j.write_str("commSupportedBandsPerBC-r12", comm_supported_bands_per_bc_r12.to_string()); } j.end_obj(); } void band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::destroy_() { switch (type_) { case types::three_entries_r12: c.destroy >(); break; case types::four_entries_r12: c.destroy >(); break; case types::five_entries_r12: c.destroy >(); break; default: break; } } void band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::three_entries_r12: c.init >(); break; case types::four_entries_r12: c.init >(); break; case types::five_entries_r12: c.init >(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_"); } } band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::supported_cell_grouping_r12_c_( const band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_& other) { type_ = other.type(); switch (type_) { case types::three_entries_r12: c.init(other.c.get >()); break; case types::four_entries_r12: c.init(other.c.get >()); break; case types::five_entries_r12: c.init(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_"); } } band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_& band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_:: operator=(const band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::three_entries_r12: c.set(other.c.get >()); break; case types::four_entries_r12: c.set(other.c.get >()); break; case types::five_entries_r12: c.set(other.c.get >()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_"); } return *this; } void band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::three_entries_r12: j.write_str("threeEntries-r12", c.get >().to_string()); break; case types::four_entries_r12: j.write_str("fourEntries-r12", c.get >().to_string()); break; case types::five_entries_r12: j.write_str("fiveEntries-r12", c.get >().to_string()); break; default: log_invalid_choice_id(type_, "band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_"); } j.end_obj(); } SRSASN_CODE band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::three_entries_r12: HANDLE_CODE(c.get >().pack(bref)); break; case types::four_entries_r12: HANDLE_CODE(c.get >().pack(bref)); break; case types::five_entries_r12: HANDLE_CODE(c.get >().pack(bref)); break; default: log_invalid_choice_id(type_, "band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::three_entries_r12: HANDLE_CODE(c.get >().unpack(bref)); break; case types::four_entries_r12: HANDLE_CODE(c.get >().unpack(bref)); break; case types::five_entries_r12: HANDLE_CODE(c.get >().unpack(bref)); break; default: log_invalid_choice_id(type_, "band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // CA-MIMO-ParametersDL-v1270 ::= SEQUENCE SRSASN_CODE ca_mimo_params_dl_v1270_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, intra_band_contiguous_cc_info_list_r12, 1, 5)); return SRSASN_SUCCESS; } SRSASN_CODE ca_mimo_params_dl_v1270_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(intra_band_contiguous_cc_info_list_r12, bref, 1, 5)); return SRSASN_SUCCESS; } void ca_mimo_params_dl_v1270_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("intraBandContiguousCC-InfoList-r12"); for (uint32_t i1 = 0; i1 < intra_band_contiguous_cc_info_list_r12.size(); ++i1) { intra_band_contiguous_cc_info_list_r12[i1].to_json(j); } j.end_array(); j.end_obj(); } // BandParameters-v1270 ::= SEQUENCE SRSASN_CODE band_params_v1270_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, band_params_dl_v1270, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1270_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(band_params_dl_v1270, bref, 1, 16)); return SRSASN_SUCCESS; } void band_params_v1270_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("bandParametersDL-v1270"); for (uint32_t i1 = 0; i1 < band_params_dl_v1270.size(); ++i1) { band_params_dl_v1270[i1].to_json(j); } j.end_array(); j.end_obj(); } // BandCombinationParameters-v1270 ::= SEQUENCE SRSASN_CODE band_combination_params_v1270_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_param_list_v1270_present, 1)); if (band_param_list_v1270_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_v1270, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1270_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_param_list_v1270_present, 1)); if (band_param_list_v1270_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_v1270, bref, 1, 64)); } return SRSASN_SUCCESS; } void band_combination_params_v1270_s::to_json(json_writer& j) const { j.start_obj(); if (band_param_list_v1270_present) { j.start_array("bandParameterList-v1270"); for (uint32_t i1 = 0; i1 < band_param_list_v1270.size(); ++i1) { band_param_list_v1270[i1].to_json(j); } j.end_array(); } j.end_obj(); } // MIMO-BeamformedCapabilities-r13 ::= SEQUENCE SRSASN_CODE mimo_beamformed_capabilities_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(n_max_list_r13_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, k_max_r13, (uint8_t)1, (uint8_t)8)); if (n_max_list_r13_present) { HANDLE_CODE(n_max_list_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_beamformed_capabilities_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(n_max_list_r13_present, 1)); HANDLE_CODE(unpack_unalign_integer(k_max_r13, bref, (uint8_t)1, (uint8_t)8)); if (n_max_list_r13_present) { HANDLE_CODE(n_max_list_r13.unpack(bref)); } return SRSASN_SUCCESS; } void mimo_beamformed_capabilities_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("k-Max-r13", k_max_r13); if (n_max_list_r13_present) { j.write_str("n-MaxList-r13", n_max_list_r13.to_string()); } j.end_obj(); } // MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE SRSASN_CODE mimo_non_precoded_capabilities_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cfg1_r13_present, 1)); HANDLE_CODE(bref.pack(cfg2_r13_present, 1)); HANDLE_CODE(bref.pack(cfg3_r13_present, 1)); HANDLE_CODE(bref.pack(cfg4_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mimo_non_precoded_capabilities_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cfg1_r13_present, 1)); HANDLE_CODE(bref.unpack(cfg2_r13_present, 1)); HANDLE_CODE(bref.unpack(cfg3_r13_present, 1)); HANDLE_CODE(bref.unpack(cfg4_r13_present, 1)); return SRSASN_SUCCESS; } void mimo_non_precoded_capabilities_r13_s::to_json(json_writer& j) const { j.start_obj(); if (cfg1_r13_present) { j.write_str("config1-r13", "supported"); } if (cfg2_r13_present) { j.write_str("config2-r13", "supported"); } if (cfg3_r13_present) { j.write_str("config3-r13", "supported"); } if (cfg4_r13_present) { j.write_str("config4-r13", "supported"); } j.end_obj(); } // MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE SRSASN_CODE mimo_ca_params_per_bo_bc_per_tm_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_precoded_r13_present, 1)); HANDLE_CODE(bref.pack(beamformed_r13_present, 1)); HANDLE_CODE(bref.pack(dmrs_enhance_r13_present, 1)); if (non_precoded_r13_present) { HANDLE_CODE(non_precoded_r13.pack(bref)); } if (beamformed_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, beamformed_r13, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ca_params_per_bo_bc_per_tm_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_precoded_r13_present, 1)); HANDLE_CODE(bref.unpack(beamformed_r13_present, 1)); HANDLE_CODE(bref.unpack(dmrs_enhance_r13_present, 1)); if (non_precoded_r13_present) { HANDLE_CODE(non_precoded_r13.unpack(bref)); } if (beamformed_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(beamformed_r13, bref, 1, 4)); } return SRSASN_SUCCESS; } void mimo_ca_params_per_bo_bc_per_tm_r13_s::to_json(json_writer& j) const { j.start_obj(); if (non_precoded_r13_present) { j.write_fieldname("nonPrecoded-r13"); non_precoded_r13.to_json(j); } if (beamformed_r13_present) { j.start_array("beamformed-r13"); for (uint32_t i1 = 0; i1 < beamformed_r13.size(); ++i1) { beamformed_r13[i1].to_json(j); } j.end_array(); } if (dmrs_enhance_r13_present) { j.write_str("dmrs-Enhancements-r13", "different"); } j.end_obj(); } // MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE SRSASN_CODE mimo_ca_params_per_bo_bc_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(params_tm9_r13_present, 1)); HANDLE_CODE(bref.pack(params_tm10_r13_present, 1)); if (params_tm9_r13_present) { HANDLE_CODE(params_tm9_r13.pack(bref)); } if (params_tm10_r13_present) { HANDLE_CODE(params_tm10_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ca_params_per_bo_bc_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(params_tm9_r13_present, 1)); HANDLE_CODE(bref.unpack(params_tm10_r13_present, 1)); if (params_tm9_r13_present) { HANDLE_CODE(params_tm9_r13.unpack(bref)); } if (params_tm10_r13_present) { HANDLE_CODE(params_tm10_r13.unpack(bref)); } return SRSASN_SUCCESS; } void mimo_ca_params_per_bo_bc_r13_s::to_json(json_writer& j) const { j.start_obj(); if (params_tm9_r13_present) { j.write_fieldname("parametersTM9-r13"); params_tm9_r13.to_json(j); } if (params_tm10_r13_present) { j.write_fieldname("parametersTM10-r13"); params_tm10_r13.to_json(j); } j.end_obj(); } // BandParameters-v1320 ::= SEQUENCE SRSASN_CODE band_params_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(band_params_dl_v1320.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(band_params_dl_v1320.unpack(bref)); return SRSASN_SUCCESS; } void band_params_v1320_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("bandParametersDL-v1320"); band_params_dl_v1320.to_json(j); j.end_obj(); } // BandCombinationParameters-v1320 ::= SEQUENCE SRSASN_CODE band_combination_params_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_param_list_v1320_present, 1)); HANDLE_CODE(bref.pack(add_rx_tx_performance_req_r13_present, 1)); if (band_param_list_v1320_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_v1320, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_param_list_v1320_present, 1)); HANDLE_CODE(bref.unpack(add_rx_tx_performance_req_r13_present, 1)); if (band_param_list_v1320_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_v1320, bref, 1, 64)); } return SRSASN_SUCCESS; } void band_combination_params_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (band_param_list_v1320_present) { j.start_array("bandParameterList-v1320"); for (uint32_t i1 = 0; i1 < band_param_list_v1320.size(); ++i1) { band_param_list_v1320[i1].to_json(j); } j.end_array(); } if (add_rx_tx_performance_req_r13_present) { j.write_str("additionalRx-Tx-PerformanceReq-r13", "supported"); } j.end_obj(); } // BandParameters-v1380 ::= SEQUENCE SRSASN_CODE band_params_v1380_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tx_ant_switch_dl_r13_present, 1)); HANDLE_CODE(bref.pack(tx_ant_switch_ul_r13_present, 1)); if (tx_ant_switch_dl_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, tx_ant_switch_dl_r13, (uint8_t)1, (uint8_t)32)); } if (tx_ant_switch_ul_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, tx_ant_switch_ul_r13, (uint8_t)1, (uint8_t)32)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1380_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tx_ant_switch_dl_r13_present, 1)); HANDLE_CODE(bref.unpack(tx_ant_switch_ul_r13_present, 1)); if (tx_ant_switch_dl_r13_present) { HANDLE_CODE(unpack_unalign_integer(tx_ant_switch_dl_r13, bref, (uint8_t)1, (uint8_t)32)); } if (tx_ant_switch_ul_r13_present) { HANDLE_CODE(unpack_unalign_integer(tx_ant_switch_ul_r13, bref, (uint8_t)1, (uint8_t)32)); } return SRSASN_SUCCESS; } void band_params_v1380_s::to_json(json_writer& j) const { j.start_obj(); if (tx_ant_switch_dl_r13_present) { j.write_int("txAntennaSwitchDL-r13", tx_ant_switch_dl_r13); } if (tx_ant_switch_ul_r13_present) { j.write_int("txAntennaSwitchUL-r13", tx_ant_switch_ul_r13); } j.end_obj(); } // BandCombinationParameters-v1380 ::= SEQUENCE SRSASN_CODE band_combination_params_v1380_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_param_list_v1380_present, 1)); if (band_param_list_v1380_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_v1380, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1380_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_param_list_v1380_present, 1)); if (band_param_list_v1380_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_v1380, bref, 1, 64)); } return SRSASN_SUCCESS; } void band_combination_params_v1380_s::to_json(json_writer& j) const { j.start_obj(); if (band_param_list_v1380_present) { j.start_array("bandParameterList-v1380"); for (uint32_t i1 = 0; i1 < band_param_list_v1380.size(); ++i1) { band_param_list_v1380[i1].to_json(j); } j.end_array(); } j.end_obj(); } // MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE SRSASN_CODE mimo_ca_params_per_bo_bc_per_tm_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_report_np_r14_present, 1)); HANDLE_CODE(bref.pack(csi_report_advanced_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mimo_ca_params_per_bo_bc_per_tm_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_report_np_r14_present, 1)); HANDLE_CODE(bref.unpack(csi_report_advanced_r14_present, 1)); return SRSASN_SUCCESS; } void mimo_ca_params_per_bo_bc_per_tm_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (csi_report_np_r14_present) { j.write_str("csi-ReportingNP-r14", "different"); } if (csi_report_advanced_r14_present) { j.write_str("csi-ReportingAdvanced-r14", "different"); } j.end_obj(); } // MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE SRSASN_CODE mimo_ca_params_per_bo_bc_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(params_tm9_v1430_present, 1)); HANDLE_CODE(bref.pack(params_tm10_v1430_present, 1)); if (params_tm9_v1430_present) { HANDLE_CODE(params_tm9_v1430.pack(bref)); } if (params_tm10_v1430_present) { HANDLE_CODE(params_tm10_v1430.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ca_params_per_bo_bc_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(params_tm9_v1430_present, 1)); HANDLE_CODE(bref.unpack(params_tm10_v1430_present, 1)); if (params_tm9_v1430_present) { HANDLE_CODE(params_tm9_v1430.unpack(bref)); } if (params_tm10_v1430_present) { HANDLE_CODE(params_tm10_v1430.unpack(bref)); } return SRSASN_SUCCESS; } void mimo_ca_params_per_bo_bc_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (params_tm9_v1430_present) { j.write_fieldname("parametersTM9-v1430"); params_tm9_v1430.to_json(j); } if (params_tm10_v1430_present) { j.write_fieldname("parametersTM10-v1430"); params_tm10_v1430.to_json(j); } j.end_obj(); } // RetuningTimeInfo-r14 ::= SEQUENCE SRSASN_CODE retuning_time_info_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(retuning_info.rf_retuning_time_dl_r14_present, 1)); HANDLE_CODE(bref.pack(retuning_info.rf_retuning_time_ul_r14_present, 1)); if (retuning_info.rf_retuning_time_dl_r14_present) { HANDLE_CODE(pack_enum(bref, retuning_info.rf_retuning_time_dl_r14)); } if (retuning_info.rf_retuning_time_ul_r14_present) { HANDLE_CODE(pack_enum(bref, retuning_info.rf_retuning_time_ul_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE retuning_time_info_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(retuning_info.rf_retuning_time_dl_r14_present, 1)); HANDLE_CODE(bref.unpack(retuning_info.rf_retuning_time_ul_r14_present, 1)); if (retuning_info.rf_retuning_time_dl_r14_present) { HANDLE_CODE(unpack_enum(retuning_info.rf_retuning_time_dl_r14, bref)); } if (retuning_info.rf_retuning_time_ul_r14_present) { HANDLE_CODE(unpack_enum(retuning_info.rf_retuning_time_ul_r14, bref)); } return SRSASN_SUCCESS; } void retuning_time_info_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("retuningInfo"); j.start_obj(); if (retuning_info.rf_retuning_time_dl_r14_present) { j.write_str("rf-RetuningTimeDL-r14", retuning_info.rf_retuning_time_dl_r14.to_string()); } if (retuning_info.rf_retuning_time_ul_r14_present) { j.write_str("rf-RetuningTimeUL-r14", retuning_info.rf_retuning_time_ul_r14.to_string()); } j.end_obj(); j.end_obj(); } // UL-256QAM-perCC-Info-r14 ::= SEQUENCE SRSASN_CODE ul_minus256_qam_per_cc_info_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ul_minus256_qam_per_cc_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ul_minus256_qam_per_cc_info_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ul_minus256_qam_per_cc_r14_present, 1)); return SRSASN_SUCCESS; } void ul_minus256_qam_per_cc_info_r14_s::to_json(json_writer& j) const { j.start_obj(); if (ul_minus256_qam_per_cc_r14_present) { j.write_str("ul-256QAM-perCC-r14", "supported"); } j.end_obj(); } // BandParameters-v1430 ::= SEQUENCE SRSASN_CODE band_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_params_dl_v1430_present, 1)); HANDLE_CODE(bref.pack(ul_minus256_qam_r14_present, 1)); HANDLE_CODE(bref.pack(ul_minus256_qam_per_cc_info_list_r14_present, 1)); HANDLE_CODE(bref.pack(retuning_time_info_band_list_r14_present, 1)); if (band_params_dl_v1430_present) { HANDLE_CODE(band_params_dl_v1430.pack(bref)); } if (ul_minus256_qam_per_cc_info_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ul_minus256_qam_per_cc_info_list_r14, 2, 32)); } if (retuning_time_info_band_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, retuning_time_info_band_list_r14, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_params_dl_v1430_present, 1)); HANDLE_CODE(bref.unpack(ul_minus256_qam_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_minus256_qam_per_cc_info_list_r14_present, 1)); HANDLE_CODE(bref.unpack(retuning_time_info_band_list_r14_present, 1)); if (band_params_dl_v1430_present) { HANDLE_CODE(band_params_dl_v1430.unpack(bref)); } if (ul_minus256_qam_per_cc_info_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(ul_minus256_qam_per_cc_info_list_r14, bref, 2, 32)); } if (retuning_time_info_band_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(retuning_time_info_band_list_r14, bref, 1, 64)); } return SRSASN_SUCCESS; } void band_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (band_params_dl_v1430_present) { j.write_fieldname("bandParametersDL-v1430"); band_params_dl_v1430.to_json(j); } if (ul_minus256_qam_r14_present) { j.write_str("ul-256QAM-r14", "supported"); } if (ul_minus256_qam_per_cc_info_list_r14_present) { j.start_array("ul-256QAM-perCC-InfoList-r14"); for (uint32_t i1 = 0; i1 < ul_minus256_qam_per_cc_info_list_r14.size(); ++i1) { ul_minus256_qam_per_cc_info_list_r14[i1].to_json(j); } j.end_array(); } if (retuning_time_info_band_list_r14_present) { j.start_array("retuningTimeInfoBandList-r14"); for (uint32_t i1 = 0; i1 < retuning_time_info_band_list_r14.size(); ++i1) { retuning_time_info_band_list_r14[i1].to_json(j); } j.end_array(); } j.end_obj(); } // BandCombinationParameters-v1430 ::= SEQUENCE SRSASN_CODE band_combination_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_param_list_v1430_present, 1)); HANDLE_CODE(bref.pack(v2x_supported_tx_band_comb_list_per_bc_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_supported_rx_band_comb_list_per_bc_r14_present, 1)); if (band_param_list_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_v1430, 1, 64)); } if (v2x_supported_tx_band_comb_list_per_bc_r14_present) { HANDLE_CODE(v2x_supported_tx_band_comb_list_per_bc_r14.pack(bref)); } if (v2x_supported_rx_band_comb_list_per_bc_r14_present) { HANDLE_CODE(v2x_supported_rx_band_comb_list_per_bc_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_param_list_v1430_present, 1)); HANDLE_CODE(bref.unpack(v2x_supported_tx_band_comb_list_per_bc_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_supported_rx_band_comb_list_per_bc_r14_present, 1)); if (band_param_list_v1430_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_v1430, bref, 1, 64)); } if (v2x_supported_tx_band_comb_list_per_bc_r14_present) { HANDLE_CODE(v2x_supported_tx_band_comb_list_per_bc_r14.unpack(bref)); } if (v2x_supported_rx_band_comb_list_per_bc_r14_present) { HANDLE_CODE(v2x_supported_rx_band_comb_list_per_bc_r14.unpack(bref)); } return SRSASN_SUCCESS; } void band_combination_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (band_param_list_v1430_present) { j.start_array("bandParameterList-v1430"); for (uint32_t i1 = 0; i1 < band_param_list_v1430.size(); ++i1) { band_param_list_v1430[i1].to_json(j); } j.end_array(); } if (v2x_supported_tx_band_comb_list_per_bc_r14_present) { j.write_str("v2x-SupportedTxBandCombListPerBC-r14", v2x_supported_tx_band_comb_list_per_bc_r14.to_string()); } if (v2x_supported_rx_band_comb_list_per_bc_r14_present) { j.write_str("v2x-SupportedRxBandCombListPerBC-r14", v2x_supported_rx_band_comb_list_per_bc_r14.to_string()); } j.end_obj(); } // MUST-Parameters-r14 ::= SEQUENCE SRSASN_CODE must_params_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(must_tm234_up_to2_tx_r14_present, 1)); HANDLE_CODE(bref.pack(must_tm89_up_to_one_interfering_layer_r14_present, 1)); HANDLE_CODE(bref.pack(must_tm10_up_to_one_interfering_layer_r14_present, 1)); HANDLE_CODE(bref.pack(must_tm89_up_to_three_interfering_layers_r14_present, 1)); HANDLE_CODE(bref.pack(must_tm10_up_to_three_interfering_layers_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE must_params_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(must_tm234_up_to2_tx_r14_present, 1)); HANDLE_CODE(bref.unpack(must_tm89_up_to_one_interfering_layer_r14_present, 1)); HANDLE_CODE(bref.unpack(must_tm10_up_to_one_interfering_layer_r14_present, 1)); HANDLE_CODE(bref.unpack(must_tm89_up_to_three_interfering_layers_r14_present, 1)); HANDLE_CODE(bref.unpack(must_tm10_up_to_three_interfering_layers_r14_present, 1)); return SRSASN_SUCCESS; } void must_params_r14_s::to_json(json_writer& j) const { j.start_obj(); if (must_tm234_up_to2_tx_r14_present) { j.write_str("must-TM234-UpTo2Tx-r14", "supported"); } if (must_tm89_up_to_one_interfering_layer_r14_present) { j.write_str("must-TM89-UpToOneInterferingLayer-r14", "supported"); } if (must_tm10_up_to_one_interfering_layer_r14_present) { j.write_str("must-TM10-UpToOneInterferingLayer-r14", "supported"); } if (must_tm89_up_to_three_interfering_layers_r14_present) { j.write_str("must-TM89-UpToThreeInterferingLayers-r14", "supported"); } if (must_tm10_up_to_three_interfering_layers_r14_present) { j.write_str("must-TM10-UpToThreeInterferingLayers-r14", "supported"); } j.end_obj(); } // BandParameters-v1450 ::= SEQUENCE SRSASN_CODE band_params_v1450_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(must_cap_per_band_r14_present, 1)); if (must_cap_per_band_r14_present) { HANDLE_CODE(must_cap_per_band_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1450_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(must_cap_per_band_r14_present, 1)); if (must_cap_per_band_r14_present) { HANDLE_CODE(must_cap_per_band_r14.unpack(bref)); } return SRSASN_SUCCESS; } void band_params_v1450_s::to_json(json_writer& j) const { j.start_obj(); if (must_cap_per_band_r14_present) { j.write_fieldname("must-CapabilityPerBand-r14"); must_cap_per_band_r14.to_json(j); } j.end_obj(); } // BandCombinationParameters-v1450 ::= SEQUENCE SRSASN_CODE band_combination_params_v1450_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_param_list_v1450_present, 1)); if (band_param_list_v1450_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_v1450, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1450_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_param_list_v1450_present, 1)); if (band_param_list_v1450_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_v1450, bref, 1, 64)); } return SRSASN_SUCCESS; } void band_combination_params_v1450_s::to_json(json_writer& j) const { j.start_obj(); if (band_param_list_v1450_present) { j.start_array("bandParameterList-v1450"); for (uint32_t i1 = 0; i1 < band_param_list_v1450.size(); ++i1) { band_param_list_v1450[i1].to_json(j); } j.end_array(); } j.end_obj(); } // MIMO-CA-ParametersPerBoBCPerTM-v1470 ::= SEQUENCE SRSASN_CODE mimo_ca_params_per_bo_bc_per_tm_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_report_advanced_max_ports_r14_present, 1)); if (csi_report_advanced_max_ports_r14_present) { HANDLE_CODE(pack_enum(bref, csi_report_advanced_max_ports_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ca_params_per_bo_bc_per_tm_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_report_advanced_max_ports_r14_present, 1)); if (csi_report_advanced_max_ports_r14_present) { HANDLE_CODE(unpack_enum(csi_report_advanced_max_ports_r14, bref)); } return SRSASN_SUCCESS; } void mimo_ca_params_per_bo_bc_per_tm_v1470_s::to_json(json_writer& j) const { j.start_obj(); if (csi_report_advanced_max_ports_r14_present) { j.write_str("csi-ReportingAdvancedMaxPorts-r14", csi_report_advanced_max_ports_r14.to_string()); } j.end_obj(); } // MIMO-CA-ParametersPerBoBC-v1470 ::= SEQUENCE SRSASN_CODE mimo_ca_params_per_bo_bc_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(params_tm9_v1470.pack(bref)); HANDLE_CODE(params_tm10_v1470.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mimo_ca_params_per_bo_bc_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(params_tm9_v1470.unpack(bref)); HANDLE_CODE(params_tm10_v1470.unpack(bref)); return SRSASN_SUCCESS; } void mimo_ca_params_per_bo_bc_v1470_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("parametersTM9-v1470"); params_tm9_v1470.to_json(j); j.write_fieldname("parametersTM10-v1470"); params_tm10_v1470.to_json(j); j.end_obj(); } // BandParameters-v1470 ::= SEQUENCE SRSASN_CODE band_params_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_params_dl_v1470_present, 1)); if (band_params_dl_v1470_present) { HANDLE_CODE(band_params_dl_v1470.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_params_dl_v1470_present, 1)); if (band_params_dl_v1470_present) { HANDLE_CODE(band_params_dl_v1470.unpack(bref)); } return SRSASN_SUCCESS; } void band_params_v1470_s::to_json(json_writer& j) const { j.start_obj(); if (band_params_dl_v1470_present) { j.write_fieldname("bandParametersDL-v1470"); band_params_dl_v1470.to_json(j); } j.end_obj(); } // BandCombinationParameters-v1470 ::= SEQUENCE SRSASN_CODE band_combination_params_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_param_list_v1470_present, 1)); HANDLE_CODE(bref.pack(srs_max_simul_ccs_r14_present, 1)); if (band_param_list_v1470_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_v1470, 1, 64)); } if (srs_max_simul_ccs_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, srs_max_simul_ccs_r14, (uint8_t)1, (uint8_t)31)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_param_list_v1470_present, 1)); HANDLE_CODE(bref.unpack(srs_max_simul_ccs_r14_present, 1)); if (band_param_list_v1470_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_v1470, bref, 1, 64)); } if (srs_max_simul_ccs_r14_present) { HANDLE_CODE(unpack_unalign_integer(srs_max_simul_ccs_r14, bref, (uint8_t)1, (uint8_t)31)); } return SRSASN_SUCCESS; } void band_combination_params_v1470_s::to_json(json_writer& j) const { j.start_obj(); if (band_param_list_v1470_present) { j.start_array("bandParameterList-v1470"); for (uint32_t i1 = 0; i1 < band_param_list_v1470.size(); ++i1) { band_param_list_v1470[i1].to_json(j); } j.end_array(); } if (srs_max_simul_ccs_r14_present) { j.write_int("srs-MaxSimultaneousCCs-r14", srs_max_simul_ccs_r14); } j.end_obj(); } // DL-UL-CCs-r15 ::= SEQUENCE SRSASN_CODE dl_ul_ccs_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(max_num_dl_ccs_r15_present, 1)); HANDLE_CODE(bref.pack(max_num_ul_ccs_r15_present, 1)); if (max_num_dl_ccs_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, max_num_dl_ccs_r15, (uint8_t)1, (uint8_t)32)); } if (max_num_ul_ccs_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, max_num_ul_ccs_r15, (uint8_t)1, (uint8_t)32)); } return SRSASN_SUCCESS; } SRSASN_CODE dl_ul_ccs_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(max_num_dl_ccs_r15_present, 1)); HANDLE_CODE(bref.unpack(max_num_ul_ccs_r15_present, 1)); if (max_num_dl_ccs_r15_present) { HANDLE_CODE(unpack_unalign_integer(max_num_dl_ccs_r15, bref, (uint8_t)1, (uint8_t)32)); } if (max_num_ul_ccs_r15_present) { HANDLE_CODE(unpack_unalign_integer(max_num_ul_ccs_r15, bref, (uint8_t)1, (uint8_t)32)); } return SRSASN_SUCCESS; } void dl_ul_ccs_r15_s::to_json(json_writer& j) const { j.start_obj(); if (max_num_dl_ccs_r15_present) { j.write_int("maxNumberDL-CCs-r15", max_num_dl_ccs_r15); } if (max_num_ul_ccs_r15_present) { j.write_int("maxNumberUL-CCs-r15", max_num_ul_ccs_r15); } j.end_obj(); } // CA-MIMO-ParametersDL-r15 ::= SEQUENCE SRSASN_CODE ca_mimo_params_dl_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_mimo_cap_dl_r15_present, 1)); HANDLE_CODE(bref.pack(four_layer_tm3_tm4_r15_present, 1)); HANDLE_CODE(bref.pack(intra_band_contiguous_cc_info_list_r15_present, 1)); if (supported_mimo_cap_dl_r15_present) { HANDLE_CODE(pack_enum(bref, supported_mimo_cap_dl_r15)); } if (intra_band_contiguous_cc_info_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, intra_band_contiguous_cc_info_list_r15, 1, 32)); } return SRSASN_SUCCESS; } SRSASN_CODE ca_mimo_params_dl_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_mimo_cap_dl_r15_present, 1)); HANDLE_CODE(bref.unpack(four_layer_tm3_tm4_r15_present, 1)); HANDLE_CODE(bref.unpack(intra_band_contiguous_cc_info_list_r15_present, 1)); if (supported_mimo_cap_dl_r15_present) { HANDLE_CODE(unpack_enum(supported_mimo_cap_dl_r15, bref)); } if (intra_band_contiguous_cc_info_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(intra_band_contiguous_cc_info_list_r15, bref, 1, 32)); } return SRSASN_SUCCESS; } void ca_mimo_params_dl_r15_s::to_json(json_writer& j) const { j.start_obj(); if (supported_mimo_cap_dl_r15_present) { j.write_str("supportedMIMO-CapabilityDL-r15", supported_mimo_cap_dl_r15.to_string()); } if (four_layer_tm3_tm4_r15_present) { j.write_str("fourLayerTM3-TM4-r15", "supported"); } if (intra_band_contiguous_cc_info_list_r15_present) { j.start_array("intraBandContiguousCC-InfoList-r15"); for (uint32_t i1 = 0; i1 < intra_band_contiguous_cc_info_list_r15.size(); ++i1) { intra_band_contiguous_cc_info_list_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // CA-MIMO-ParametersUL-r15 ::= SEQUENCE SRSASN_CODE ca_mimo_params_ul_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_mimo_cap_ul_r15_present, 1)); if (supported_mimo_cap_ul_r15_present) { HANDLE_CODE(pack_enum(bref, supported_mimo_cap_ul_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE ca_mimo_params_ul_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_mimo_cap_ul_r15_present, 1)); if (supported_mimo_cap_ul_r15_present) { HANDLE_CODE(unpack_enum(supported_mimo_cap_ul_r15, bref)); } return SRSASN_SUCCESS; } void ca_mimo_params_ul_r15_s::to_json(json_writer& j) const { j.start_obj(); if (supported_mimo_cap_ul_r15_present) { j.write_str("supportedMIMO-CapabilityUL-r15", supported_mimo_cap_ul_r15.to_string()); } j.end_obj(); } // STTI-SupportedCombinations-r15 ::= SEQUENCE SRSASN_CODE stti_supported_combinations_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(combination_minus22_r15_present, 1)); HANDLE_CODE(bref.pack(combination_minus77_r15_present, 1)); HANDLE_CODE(bref.pack(combination_minus27_r15_present, 1)); HANDLE_CODE(bref.pack(combination_minus22_minus27_r15_present, 1)); HANDLE_CODE(bref.pack(combination_minus77_minus22_r15_present, 1)); HANDLE_CODE(bref.pack(combination_minus77_minus27_r15_present, 1)); if (combination_minus22_r15_present) { HANDLE_CODE(combination_minus22_r15.pack(bref)); } if (combination_minus77_r15_present) { HANDLE_CODE(combination_minus77_r15.pack(bref)); } if (combination_minus27_r15_present) { HANDLE_CODE(combination_minus27_r15.pack(bref)); } if (combination_minus22_minus27_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, combination_minus22_minus27_r15, 1, 2)); } if (combination_minus77_minus22_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, combination_minus77_minus22_r15, 1, 2)); } if (combination_minus77_minus27_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, combination_minus77_minus27_r15, 1, 2)); } return SRSASN_SUCCESS; } SRSASN_CODE stti_supported_combinations_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(combination_minus22_r15_present, 1)); HANDLE_CODE(bref.unpack(combination_minus77_r15_present, 1)); HANDLE_CODE(bref.unpack(combination_minus27_r15_present, 1)); HANDLE_CODE(bref.unpack(combination_minus22_minus27_r15_present, 1)); HANDLE_CODE(bref.unpack(combination_minus77_minus22_r15_present, 1)); HANDLE_CODE(bref.unpack(combination_minus77_minus27_r15_present, 1)); if (combination_minus22_r15_present) { HANDLE_CODE(combination_minus22_r15.unpack(bref)); } if (combination_minus77_r15_present) { HANDLE_CODE(combination_minus77_r15.unpack(bref)); } if (combination_minus27_r15_present) { HANDLE_CODE(combination_minus27_r15.unpack(bref)); } if (combination_minus22_minus27_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(combination_minus22_minus27_r15, bref, 1, 2)); } if (combination_minus77_minus22_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(combination_minus77_minus22_r15, bref, 1, 2)); } if (combination_minus77_minus27_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(combination_minus77_minus27_r15, bref, 1, 2)); } return SRSASN_SUCCESS; } void stti_supported_combinations_r15_s::to_json(json_writer& j) const { j.start_obj(); if (combination_minus22_r15_present) { j.write_fieldname("combination-22-r15"); combination_minus22_r15.to_json(j); } if (combination_minus77_r15_present) { j.write_fieldname("combination-77-r15"); combination_minus77_r15.to_json(j); } if (combination_minus27_r15_present) { j.write_fieldname("combination-27-r15"); combination_minus27_r15.to_json(j); } if (combination_minus22_minus27_r15_present) { j.start_array("combination-22-27-r15"); for (uint32_t i1 = 0; i1 < combination_minus22_minus27_r15.size(); ++i1) { combination_minus22_minus27_r15[i1].to_json(j); } j.end_array(); } if (combination_minus77_minus22_r15_present) { j.start_array("combination-77-22-r15"); for (uint32_t i1 = 0; i1 < combination_minus77_minus22_r15.size(); ++i1) { combination_minus77_minus22_r15[i1].to_json(j); } j.end_array(); } if (combination_minus77_minus27_r15_present) { j.start_array("combination-77-27-r15"); for (uint32_t i1 = 0; i1 < combination_minus77_minus27_r15.size(); ++i1) { combination_minus77_minus27_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // STTI-SPT-BandParameters-r15 ::= SEQUENCE SRSASN_CODE stti_spt_band_params_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(dl_minus1024_qam_slot_r15_present, 1)); HANDLE_CODE(bref.pack(dl_minus1024_qam_subslot_ta_minus1_r15_present, 1)); HANDLE_CODE(bref.pack(dl_minus1024_qam_subslot_ta_minus2_r15_present, 1)); HANDLE_CODE(bref.pack(simul_tx_different_tx_dur_r15_present, 1)); HANDLE_CODE(bref.pack(s_tti_ca_mimo_params_dl_r15_present, 1)); HANDLE_CODE(bref.pack(s_tti_fd_mimo_coexistence_present, 1)); HANDLE_CODE(bref.pack(s_tti_mimo_ca_params_per_bo_bcs_r15_present, 1)); HANDLE_CODE(bref.pack(s_tti_mimo_ca_params_per_bo_bcs_v1530_present, 1)); HANDLE_CODE(bref.pack(s_tti_supported_combinations_r15_present, 1)); HANDLE_CODE(bref.pack(s_tti_supported_csi_proc_r15_present, 1)); HANDLE_CODE(bref.pack(ul_minus256_qam_slot_r15_present, 1)); HANDLE_CODE(bref.pack(ul_minus256_qam_subslot_r15_present, 1)); if (s_tti_ca_mimo_params_dl_r15_present) { HANDLE_CODE(s_tti_ca_mimo_params_dl_r15.pack(bref)); } HANDLE_CODE(s_tti_ca_mimo_params_ul_r15.pack(bref)); if (s_tti_mimo_ca_params_per_bo_bcs_r15_present) { HANDLE_CODE(s_tti_mimo_ca_params_per_bo_bcs_r15.pack(bref)); } if (s_tti_mimo_ca_params_per_bo_bcs_v1530_present) { HANDLE_CODE(s_tti_mimo_ca_params_per_bo_bcs_v1530.pack(bref)); } if (s_tti_supported_combinations_r15_present) { HANDLE_CODE(s_tti_supported_combinations_r15.pack(bref)); } if (s_tti_supported_csi_proc_r15_present) { HANDLE_CODE(pack_enum(bref, s_tti_supported_csi_proc_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE stti_spt_band_params_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(dl_minus1024_qam_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(dl_minus1024_qam_subslot_ta_minus1_r15_present, 1)); HANDLE_CODE(bref.unpack(dl_minus1024_qam_subslot_ta_minus2_r15_present, 1)); HANDLE_CODE(bref.unpack(simul_tx_different_tx_dur_r15_present, 1)); HANDLE_CODE(bref.unpack(s_tti_ca_mimo_params_dl_r15_present, 1)); HANDLE_CODE(bref.unpack(s_tti_fd_mimo_coexistence_present, 1)); HANDLE_CODE(bref.unpack(s_tti_mimo_ca_params_per_bo_bcs_r15_present, 1)); HANDLE_CODE(bref.unpack(s_tti_mimo_ca_params_per_bo_bcs_v1530_present, 1)); HANDLE_CODE(bref.unpack(s_tti_supported_combinations_r15_present, 1)); HANDLE_CODE(bref.unpack(s_tti_supported_csi_proc_r15_present, 1)); HANDLE_CODE(bref.unpack(ul_minus256_qam_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(ul_minus256_qam_subslot_r15_present, 1)); if (s_tti_ca_mimo_params_dl_r15_present) { HANDLE_CODE(s_tti_ca_mimo_params_dl_r15.unpack(bref)); } HANDLE_CODE(s_tti_ca_mimo_params_ul_r15.unpack(bref)); if (s_tti_mimo_ca_params_per_bo_bcs_r15_present) { HANDLE_CODE(s_tti_mimo_ca_params_per_bo_bcs_r15.unpack(bref)); } if (s_tti_mimo_ca_params_per_bo_bcs_v1530_present) { HANDLE_CODE(s_tti_mimo_ca_params_per_bo_bcs_v1530.unpack(bref)); } if (s_tti_supported_combinations_r15_present) { HANDLE_CODE(s_tti_supported_combinations_r15.unpack(bref)); } if (s_tti_supported_csi_proc_r15_present) { HANDLE_CODE(unpack_enum(s_tti_supported_csi_proc_r15, bref)); } return SRSASN_SUCCESS; } void stti_spt_band_params_r15_s::to_json(json_writer& j) const { j.start_obj(); if (dl_minus1024_qam_slot_r15_present) { j.write_str("dl-1024QAM-Slot-r15", "supported"); } if (dl_minus1024_qam_subslot_ta_minus1_r15_present) { j.write_str("dl-1024QAM-SubslotTA-1-r15", "supported"); } if (dl_minus1024_qam_subslot_ta_minus2_r15_present) { j.write_str("dl-1024QAM-SubslotTA-2-r15", "supported"); } if (simul_tx_different_tx_dur_r15_present) { j.write_str("simultaneousTx-differentTx-duration-r15", "supported"); } if (s_tti_ca_mimo_params_dl_r15_present) { j.write_fieldname("sTTI-CA-MIMO-ParametersDL-r15"); s_tti_ca_mimo_params_dl_r15.to_json(j); } j.write_fieldname("sTTI-CA-MIMO-ParametersUL-r15"); s_tti_ca_mimo_params_ul_r15.to_json(j); if (s_tti_fd_mimo_coexistence_present) { j.write_str("sTTI-FD-MIMO-Coexistence", "supported"); } if (s_tti_mimo_ca_params_per_bo_bcs_r15_present) { j.write_fieldname("sTTI-MIMO-CA-ParametersPerBoBCs-r15"); s_tti_mimo_ca_params_per_bo_bcs_r15.to_json(j); } if (s_tti_mimo_ca_params_per_bo_bcs_v1530_present) { j.write_fieldname("sTTI-MIMO-CA-ParametersPerBoBCs-v1530"); s_tti_mimo_ca_params_per_bo_bcs_v1530.to_json(j); } if (s_tti_supported_combinations_r15_present) { j.write_fieldname("sTTI-SupportedCombinations-r15"); s_tti_supported_combinations_r15.to_json(j); } if (s_tti_supported_csi_proc_r15_present) { j.write_str("sTTI-SupportedCSI-Proc-r15", s_tti_supported_csi_proc_r15.to_string()); } if (ul_minus256_qam_slot_r15_present) { j.write_str("ul-256QAM-Slot-r15", "supported"); } if (ul_minus256_qam_subslot_r15_present) { j.write_str("ul-256QAM-Subslot-r15", "supported"); } j.end_obj(); } // BandParameters-v1530 ::= SEQUENCE SRSASN_CODE band_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_tx_ant_sel_srs_minus1_t4_r_r15_present, 1)); HANDLE_CODE(bref.pack(ue_tx_ant_sel_srs_minus2_t4_r_minus2_pairs_r15_present, 1)); HANDLE_CODE(bref.pack(ue_tx_ant_sel_srs_minus2_t4_r_minus3_pairs_r15_present, 1)); HANDLE_CODE(bref.pack(dl_minus1024_qam_r15_present, 1)); HANDLE_CODE(bref.pack(qcl_type_c_operation_r15_present, 1)); HANDLE_CODE(bref.pack(qcl_cri_based_csi_report_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_band_params_r15_present, 1)); if (stti_spt_band_params_r15_present) { HANDLE_CODE(stti_spt_band_params_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE band_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_tx_ant_sel_srs_minus1_t4_r_r15_present, 1)); HANDLE_CODE(bref.unpack(ue_tx_ant_sel_srs_minus2_t4_r_minus2_pairs_r15_present, 1)); HANDLE_CODE(bref.unpack(ue_tx_ant_sel_srs_minus2_t4_r_minus3_pairs_r15_present, 1)); HANDLE_CODE(bref.unpack(dl_minus1024_qam_r15_present, 1)); HANDLE_CODE(bref.unpack(qcl_type_c_operation_r15_present, 1)); HANDLE_CODE(bref.unpack(qcl_cri_based_csi_report_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_band_params_r15_present, 1)); if (stti_spt_band_params_r15_present) { HANDLE_CODE(stti_spt_band_params_r15.unpack(bref)); } return SRSASN_SUCCESS; } void band_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (ue_tx_ant_sel_srs_minus1_t4_r_r15_present) { j.write_str("ue-TxAntennaSelection-SRS-1T4R-r15", "supported"); } if (ue_tx_ant_sel_srs_minus2_t4_r_minus2_pairs_r15_present) { j.write_str("ue-TxAntennaSelection-SRS-2T4R-2Pairs-r15", "supported"); } if (ue_tx_ant_sel_srs_minus2_t4_r_minus3_pairs_r15_present) { j.write_str("ue-TxAntennaSelection-SRS-2T4R-3Pairs-r15", "supported"); } if (dl_minus1024_qam_r15_present) { j.write_str("dl-1024QAM-r15", "supported"); } if (qcl_type_c_operation_r15_present) { j.write_str("qcl-TypeC-Operation-r15", "supported"); } if (qcl_cri_based_csi_report_r15_present) { j.write_str("qcl-CRI-BasedCSI-Reporting-r15", "supported"); } if (stti_spt_band_params_r15_present) { j.write_fieldname("stti-SPT-BandParameters-r15"); stti_spt_band_params_r15.to_json(j); } j.end_obj(); } // SPT-Parameters-r15 ::= SEQUENCE SRSASN_CODE spt_params_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(frame_structure_type_spt_r15_present, 1)); HANDLE_CODE(bref.pack(max_num_ccs_spt_r15_present, 1)); if (frame_structure_type_spt_r15_present) { HANDLE_CODE(frame_structure_type_spt_r15.pack(bref)); } if (max_num_ccs_spt_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, max_num_ccs_spt_r15, (uint8_t)1, (uint8_t)32)); } return SRSASN_SUCCESS; } SRSASN_CODE spt_params_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(frame_structure_type_spt_r15_present, 1)); HANDLE_CODE(bref.unpack(max_num_ccs_spt_r15_present, 1)); if (frame_structure_type_spt_r15_present) { HANDLE_CODE(frame_structure_type_spt_r15.unpack(bref)); } if (max_num_ccs_spt_r15_present) { HANDLE_CODE(unpack_unalign_integer(max_num_ccs_spt_r15, bref, (uint8_t)1, (uint8_t)32)); } return SRSASN_SUCCESS; } void spt_params_r15_s::to_json(json_writer& j) const { j.start_obj(); if (frame_structure_type_spt_r15_present) { j.write_str("frameStructureType-SPT-r15", frame_structure_type_spt_r15.to_string()); } if (max_num_ccs_spt_r15_present) { j.write_int("maxNumberCCs-SPT-r15", max_num_ccs_spt_r15); } j.end_obj(); } // BandCombinationParameters-v1530 ::= SEQUENCE SRSASN_CODE band_combination_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_param_list_v1530_present, 1)); HANDLE_CODE(bref.pack(spt_params_r15_present, 1)); if (band_param_list_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, band_param_list_v1530, 1, 64)); } if (spt_params_r15_present) { HANDLE_CODE(spt_params_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_param_list_v1530_present, 1)); HANDLE_CODE(bref.unpack(spt_params_r15_present, 1)); if (band_param_list_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(band_param_list_v1530, bref, 1, 64)); } if (spt_params_r15_present) { HANDLE_CODE(spt_params_r15.unpack(bref)); } return SRSASN_SUCCESS; } void band_combination_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (band_param_list_v1530_present) { j.start_array("bandParameterList-v1530"); for (uint32_t i1 = 0; i1 < band_param_list_v1530.size(); ++i1) { band_param_list_v1530[i1].to_json(j); } j.end_array(); } if (spt_params_r15_present) { j.write_fieldname("spt-Parameters-r15"); spt_params_r15.to_json(j); } j.end_obj(); } // BandCombinationParametersExt-r10 ::= SEQUENCE SRSASN_CODE band_combination_params_ext_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_bw_combination_set_r10_present, 1)); if (supported_bw_combination_set_r10_present) { HANDLE_CODE(supported_bw_combination_set_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_ext_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_bw_combination_set_r10_present, 1)); if (supported_bw_combination_set_r10_present) { HANDLE_CODE(supported_bw_combination_set_r10.unpack(bref)); } return SRSASN_SUCCESS; } void band_combination_params_ext_r10_s::to_json(json_writer& j) const { j.start_obj(); if (supported_bw_combination_set_r10_present) { j.write_str("supportedBandwidthCombinationSet-r10", supported_bw_combination_set_r10.to_string()); } j.end_obj(); } // BandParametersRxSL-r14 ::= SEQUENCE SRSASN_CODE band_params_rx_sl_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(v2x_high_reception_r14_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, v2x_bw_class_rx_sl_r14, 1, 16, EnumPacker())); return SRSASN_SUCCESS; } SRSASN_CODE band_params_rx_sl_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(v2x_high_reception_r14_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(v2x_bw_class_rx_sl_r14, bref, 1, 16, EnumPacker())); return SRSASN_SUCCESS; } void band_params_rx_sl_r14_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("v2x-BandwidthClassRxSL-r14"); for (uint32_t i1 = 0; i1 < v2x_bw_class_rx_sl_r14.size(); ++i1) { j.write_str(v2x_bw_class_rx_sl_r14[i1].to_string()); } j.end_array(); if (v2x_high_reception_r14_present) { j.write_str("v2x-HighReception-r14", "supported"); } j.end_obj(); } // BandParametersTxSL-r14 ::= SEQUENCE SRSASN_CODE band_params_tx_sl_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(v2x_e_nb_sched_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_high_pwr_r14_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, v2x_bw_class_tx_sl_r14, 1, 16, EnumPacker())); return SRSASN_SUCCESS; } SRSASN_CODE band_params_tx_sl_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(v2x_e_nb_sched_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_high_pwr_r14_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(v2x_bw_class_tx_sl_r14, bref, 1, 16, EnumPacker())); return SRSASN_SUCCESS; } void band_params_tx_sl_r14_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("v2x-BandwidthClassTxSL-r14"); for (uint32_t i1 = 0; i1 < v2x_bw_class_tx_sl_r14.size(); ++i1) { j.write_str(v2x_bw_class_tx_sl_r14[i1].to_string()); } j.end_array(); if (v2x_e_nb_sched_r14_present) { j.write_str("v2x-eNB-Scheduled-r14", "supported"); } if (v2x_high_pwr_r14_present) { j.write_str("v2x-HighPower-r14", "supported"); } j.end_obj(); } // FeatureSetDL-PerCC-r15 ::= SEQUENCE SRSASN_CODE feature_set_dl_per_cc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(four_layer_tm3_tm4_r15_present, 1)); HANDLE_CODE(bref.pack(supported_mimo_cap_dl_r15_present, 1)); HANDLE_CODE(bref.pack(supported_csi_proc_r15_present, 1)); if (supported_mimo_cap_dl_r15_present) { HANDLE_CODE(pack_enum(bref, supported_mimo_cap_dl_r15)); } if (supported_csi_proc_r15_present) { HANDLE_CODE(pack_enum(bref, supported_csi_proc_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE feature_set_dl_per_cc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(four_layer_tm3_tm4_r15_present, 1)); HANDLE_CODE(bref.unpack(supported_mimo_cap_dl_r15_present, 1)); HANDLE_CODE(bref.unpack(supported_csi_proc_r15_present, 1)); if (supported_mimo_cap_dl_r15_present) { HANDLE_CODE(unpack_enum(supported_mimo_cap_dl_r15, bref)); } if (supported_csi_proc_r15_present) { HANDLE_CODE(unpack_enum(supported_csi_proc_r15, bref)); } return SRSASN_SUCCESS; } void feature_set_dl_per_cc_r15_s::to_json(json_writer& j) const { j.start_obj(); if (four_layer_tm3_tm4_r15_present) { j.write_str("fourLayerTM3-TM4-r15", "supported"); } if (supported_mimo_cap_dl_r15_present) { j.write_str("supportedMIMO-CapabilityDL-r15", supported_mimo_cap_dl_r15.to_string()); } if (supported_csi_proc_r15_present) { j.write_str("supportedCSI-Proc-r15", supported_csi_proc_r15.to_string()); } j.end_obj(); } // MIMO-CA-ParametersPerBoBCPerTM-r15 ::= SEQUENCE SRSASN_CODE mimo_ca_params_per_bo_bc_per_tm_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_precoded_r13_present, 1)); HANDLE_CODE(bref.pack(beamformed_r13_present, 1)); HANDLE_CODE(bref.pack(dmrs_enhance_r13_present, 1)); HANDLE_CODE(bref.pack(csi_report_np_r14_present, 1)); HANDLE_CODE(bref.pack(csi_report_advanced_r14_present, 1)); if (non_precoded_r13_present) { HANDLE_CODE(non_precoded_r13.pack(bref)); } if (beamformed_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, beamformed_r13, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ca_params_per_bo_bc_per_tm_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_precoded_r13_present, 1)); HANDLE_CODE(bref.unpack(beamformed_r13_present, 1)); HANDLE_CODE(bref.unpack(dmrs_enhance_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_report_np_r14_present, 1)); HANDLE_CODE(bref.unpack(csi_report_advanced_r14_present, 1)); if (non_precoded_r13_present) { HANDLE_CODE(non_precoded_r13.unpack(bref)); } if (beamformed_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(beamformed_r13, bref, 1, 4)); } return SRSASN_SUCCESS; } void mimo_ca_params_per_bo_bc_per_tm_r15_s::to_json(json_writer& j) const { j.start_obj(); if (non_precoded_r13_present) { j.write_fieldname("nonPrecoded-r13"); non_precoded_r13.to_json(j); } if (beamformed_r13_present) { j.start_array("beamformed-r13"); for (uint32_t i1 = 0; i1 < beamformed_r13.size(); ++i1) { beamformed_r13[i1].to_json(j); } j.end_array(); } if (dmrs_enhance_r13_present) { j.write_str("dmrs-Enhancements-r13", "different"); } if (csi_report_np_r14_present) { j.write_str("csi-ReportingNP-r14", "different"); } if (csi_report_advanced_r14_present) { j.write_str("csi-ReportingAdvanced-r14", "different"); } j.end_obj(); } // MIMO-CA-ParametersPerBoBC-r15 ::= SEQUENCE SRSASN_CODE mimo_ca_params_per_bo_bc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(params_tm9_r15_present, 1)); HANDLE_CODE(bref.pack(params_tm10_r15_present, 1)); if (params_tm9_r15_present) { HANDLE_CODE(params_tm9_r15.pack(bref)); } if (params_tm10_r15_present) { HANDLE_CODE(params_tm10_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ca_params_per_bo_bc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(params_tm9_r15_present, 1)); HANDLE_CODE(bref.unpack(params_tm10_r15_present, 1)); if (params_tm9_r15_present) { HANDLE_CODE(params_tm9_r15.unpack(bref)); } if (params_tm10_r15_present) { HANDLE_CODE(params_tm10_r15.unpack(bref)); } return SRSASN_SUCCESS; } void mimo_ca_params_per_bo_bc_r15_s::to_json(json_writer& j) const { j.start_obj(); if (params_tm9_r15_present) { j.write_fieldname("parametersTM9-r15"); params_tm9_r15.to_json(j); } if (params_tm10_r15_present) { j.write_fieldname("parametersTM10-r15"); params_tm10_r15.to_json(j); } j.end_obj(); } // FeatureSetDL-r15 ::= SEQUENCE SRSASN_CODE feature_set_dl_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mimo_ca_params_per_bo_bc_r15_present, 1)); if (mimo_ca_params_per_bo_bc_r15_present) { HANDLE_CODE(mimo_ca_params_per_bo_bc_r15.pack(bref)); } HANDLE_CODE(pack_dyn_seq_of(bref, feature_set_per_cc_list_dl_r15, 1, 32, UnalignedIntegerPacker(0, 32))); return SRSASN_SUCCESS; } SRSASN_CODE feature_set_dl_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mimo_ca_params_per_bo_bc_r15_present, 1)); if (mimo_ca_params_per_bo_bc_r15_present) { HANDLE_CODE(mimo_ca_params_per_bo_bc_r15.unpack(bref)); } HANDLE_CODE(unpack_dyn_seq_of(feature_set_per_cc_list_dl_r15, bref, 1, 32, UnalignedIntegerPacker(0, 32))); return SRSASN_SUCCESS; } void feature_set_dl_r15_s::to_json(json_writer& j) const { j.start_obj(); if (mimo_ca_params_per_bo_bc_r15_present) { j.write_fieldname("mimo-CA-ParametersPerBoBC-r15"); mimo_ca_params_per_bo_bc_r15.to_json(j); } j.start_array("featureSetPerCC-ListDL-r15"); for (uint32_t i1 = 0; i1 < feature_set_per_cc_list_dl_r15.size(); ++i1) { j.write_int(feature_set_per_cc_list_dl_r15[i1]); } j.end_array(); j.end_obj(); } // FeatureSetUL-PerCC-r15 ::= SEQUENCE SRSASN_CODE feature_set_ul_per_cc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_mimo_cap_ul_r15_present, 1)); HANDLE_CODE(bref.pack(ul_minus256_qam_r15_present, 1)); if (supported_mimo_cap_ul_r15_present) { HANDLE_CODE(pack_enum(bref, supported_mimo_cap_ul_r15)); } return SRSASN_SUCCESS; } SRSASN_CODE feature_set_ul_per_cc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_mimo_cap_ul_r15_present, 1)); HANDLE_CODE(bref.unpack(ul_minus256_qam_r15_present, 1)); if (supported_mimo_cap_ul_r15_present) { HANDLE_CODE(unpack_enum(supported_mimo_cap_ul_r15, bref)); } return SRSASN_SUCCESS; } void feature_set_ul_per_cc_r15_s::to_json(json_writer& j) const { j.start_obj(); if (supported_mimo_cap_ul_r15_present) { j.write_str("supportedMIMO-CapabilityUL-r15", supported_mimo_cap_ul_r15.to_string()); } if (ul_minus256_qam_r15_present) { j.write_str("ul-256QAM-r15", "supported"); } j.end_obj(); } // FeatureSetUL-r15 ::= SEQUENCE SRSASN_CODE feature_set_ul_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, feature_set_per_cc_list_ul_r15, 1, 32, UnalignedIntegerPacker(0, 32))); return SRSASN_SUCCESS; } SRSASN_CODE feature_set_ul_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(feature_set_per_cc_list_ul_r15, bref, 1, 32, UnalignedIntegerPacker(0, 32))); return SRSASN_SUCCESS; } void feature_set_ul_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("featureSetPerCC-ListUL-r15"); for (uint32_t i1 = 0; i1 < feature_set_per_cc_list_ul_r15.size(); ++i1) { j.write_int(feature_set_per_cc_list_ul_r15[i1]); } j.end_array(); j.end_obj(); } // FeatureSetsEUTRA-r15 ::= SEQUENCE SRSASN_CODE feature_sets_eutra_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(feature_sets_dl_r15_present, 1)); HANDLE_CODE(bref.pack(feature_sets_dl_per_cc_r15_present, 1)); HANDLE_CODE(bref.pack(feature_sets_ul_r15_present, 1)); HANDLE_CODE(bref.pack(feature_sets_ul_per_cc_r15_present, 1)); if (feature_sets_dl_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_sets_dl_r15, 1, 256)); } if (feature_sets_dl_per_cc_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_sets_dl_per_cc_r15, 1, 32)); } if (feature_sets_ul_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_sets_ul_r15, 1, 256)); } if (feature_sets_ul_per_cc_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_sets_ul_per_cc_r15, 1, 32)); } return SRSASN_SUCCESS; } SRSASN_CODE feature_sets_eutra_r15_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(feature_sets_dl_r15_present, 1)); HANDLE_CODE(bref.unpack(feature_sets_dl_per_cc_r15_present, 1)); HANDLE_CODE(bref.unpack(feature_sets_ul_r15_present, 1)); HANDLE_CODE(bref.unpack(feature_sets_ul_per_cc_r15_present, 1)); if (feature_sets_dl_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(feature_sets_dl_r15, bref, 1, 256)); } if (feature_sets_dl_per_cc_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(feature_sets_dl_per_cc_r15, bref, 1, 32)); } if (feature_sets_ul_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(feature_sets_ul_r15, bref, 1, 256)); } if (feature_sets_ul_per_cc_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(feature_sets_ul_per_cc_r15, bref, 1, 32)); } return SRSASN_SUCCESS; } void feature_sets_eutra_r15_s::to_json(json_writer& j) const { j.start_obj(); if (feature_sets_dl_r15_present) { j.start_array("featureSetsDL-r15"); for (uint32_t i1 = 0; i1 < feature_sets_dl_r15.size(); ++i1) { feature_sets_dl_r15[i1].to_json(j); } j.end_array(); } if (feature_sets_dl_per_cc_r15_present) { j.start_array("featureSetsDL-PerCC-r15"); for (uint32_t i1 = 0; i1 < feature_sets_dl_per_cc_r15.size(); ++i1) { feature_sets_dl_per_cc_r15[i1].to_json(j); } j.end_array(); } if (feature_sets_ul_r15_present) { j.start_array("featureSetsUL-r15"); for (uint32_t i1 = 0; i1 < feature_sets_ul_r15.size(); ++i1) { feature_sets_ul_r15[i1].to_json(j); } j.end_array(); } if (feature_sets_ul_per_cc_r15_present) { j.start_array("featureSetsUL-PerCC-r15"); for (uint32_t i1 = 0; i1 < feature_sets_ul_per_cc_r15.size(); ++i1) { feature_sets_ul_per_cc_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE SRSASN_CODE irat_params_cdma2000_minus1_xrtt_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list1_xrtt, 1, 32, EnumPacker())); HANDLE_CODE(pack_enum(bref, tx_cfg1_xrtt)); HANDLE_CODE(pack_enum(bref, rx_cfg1_xrtt)); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_cdma2000_minus1_xrtt_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list1_xrtt, bref, 1, 32, EnumPacker())); HANDLE_CODE(unpack_enum(tx_cfg1_xrtt, bref)); HANDLE_CODE(unpack_enum(rx_cfg1_xrtt, bref)); return SRSASN_SUCCESS; } void irat_params_cdma2000_minus1_xrtt_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandList1XRTT"); for (uint32_t i1 = 0; i1 < supported_band_list1_xrtt.size(); ++i1) { j.write_str(supported_band_list1_xrtt[i1].to_string()); } j.end_array(); j.write_str("tx-Config1XRTT", tx_cfg1_xrtt.to_string()); j.write_str("rx-Config1XRTT", rx_cfg1_xrtt.to_string()); j.end_obj(); } // IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE SRSASN_CODE irat_params_cdma2000_hrpd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_hrpd, 1, 32, EnumPacker())); HANDLE_CODE(pack_enum(bref, tx_cfg_hrpd)); HANDLE_CODE(pack_enum(bref, rx_cfg_hrpd)); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_cdma2000_hrpd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_hrpd, bref, 1, 32, EnumPacker())); HANDLE_CODE(unpack_enum(tx_cfg_hrpd, bref)); HANDLE_CODE(unpack_enum(rx_cfg_hrpd, bref)); return SRSASN_SUCCESS; } void irat_params_cdma2000_hrpd_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandListHRPD"); for (uint32_t i1 = 0; i1 < supported_band_list_hrpd.size(); ++i1) { j.write_str(supported_band_list_hrpd[i1].to_string()); } j.end_array(); j.write_str("tx-ConfigHRPD", tx_cfg_hrpd.to_string()); j.write_str("rx-ConfigHRPD", rx_cfg_hrpd.to_string()); j.end_obj(); } // IRAT-ParametersGERAN ::= SEQUENCE SRSASN_CODE irat_params_geran_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_geran, 1, 64, EnumPacker())); HANDLE_CODE(bref.pack(inter_rat_ps_ho_to_geran, 1)); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_geran_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_geran, bref, 1, 64, EnumPacker())); HANDLE_CODE(bref.unpack(inter_rat_ps_ho_to_geran, 1)); return SRSASN_SUCCESS; } void irat_params_geran_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandListGERAN"); for (uint32_t i1 = 0; i1 < supported_band_list_geran.size(); ++i1) { j.write_str(supported_band_list_geran[i1].to_string()); } j.end_array(); j.write_bool("interRAT-PS-HO-ToGERAN", inter_rat_ps_ho_to_geran); j.end_obj(); } // SupportedBandNR-r15 ::= SEQUENCE SRSASN_CODE supported_band_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, band_nr_r15, (uint16_t)1, (uint16_t)1024)); return SRSASN_SUCCESS; } SRSASN_CODE supported_band_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(band_nr_r15, bref, (uint16_t)1, (uint16_t)1024)); return SRSASN_SUCCESS; } void supported_band_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("bandNR-r15", band_nr_r15); j.end_obj(); } // IRAT-ParametersNR-r15 ::= SEQUENCE SRSASN_CODE irat_params_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(en_dc_r15_present, 1)); HANDLE_CODE(bref.pack(event_b2_r15_present, 1)); HANDLE_CODE(bref.pack(supported_band_list_nr_r15_present, 1)); if (supported_band_list_nr_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_nr_r15, 1, 1024)); } return SRSASN_SUCCESS; } SRSASN_CODE irat_params_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(en_dc_r15_present, 1)); HANDLE_CODE(bref.unpack(event_b2_r15_present, 1)); HANDLE_CODE(bref.unpack(supported_band_list_nr_r15_present, 1)); if (supported_band_list_nr_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_nr_r15, bref, 1, 1024)); } return SRSASN_SUCCESS; } void irat_params_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); if (en_dc_r15_present) { j.write_str("en-DC-r15", "supported"); } if (event_b2_r15_present) { j.write_str("eventB2-r15", "supported"); } if (supported_band_list_nr_r15_present) { j.start_array("supportedBandListNR-r15"); for (uint32_t i1 = 0; i1 < supported_band_list_nr_r15.size(); ++i1) { supported_band_list_nr_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // IRAT-ParametersUTRA-FDD ::= SEQUENCE SRSASN_CODE irat_params_utra_fdd_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_utra_fdd, 1, 64, EnumPacker())); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_utra_fdd_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_utra_fdd, bref, 1, 64, EnumPacker())); return SRSASN_SUCCESS; } void irat_params_utra_fdd_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandListUTRA-FDD"); for (uint32_t i1 = 0; i1 < supported_band_list_utra_fdd.size(); ++i1) { j.write_str(supported_band_list_utra_fdd[i1].to_string()); } j.end_array(); j.end_obj(); } // IRAT-ParametersUTRA-TDD128 ::= SEQUENCE SRSASN_CODE irat_params_utra_tdd128_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_utra_tdd128, 1, 64, EnumPacker())); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_utra_tdd128_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_utra_tdd128, bref, 1, 64, EnumPacker())); return SRSASN_SUCCESS; } void irat_params_utra_tdd128_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandListUTRA-TDD128"); for (uint32_t i1 = 0; i1 < supported_band_list_utra_tdd128.size(); ++i1) { j.write_str(supported_band_list_utra_tdd128[i1].to_string()); } j.end_array(); j.end_obj(); } // IRAT-ParametersUTRA-TDD384 ::= SEQUENCE SRSASN_CODE irat_params_utra_tdd384_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_utra_tdd384, 1, 64, EnumPacker())); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_utra_tdd384_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_utra_tdd384, bref, 1, 64, EnumPacker())); return SRSASN_SUCCESS; } void irat_params_utra_tdd384_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandListUTRA-TDD384"); for (uint32_t i1 = 0; i1 < supported_band_list_utra_tdd384.size(); ++i1) { j.write_str(supported_band_list_utra_tdd384[i1].to_string()); } j.end_array(); j.end_obj(); } // IRAT-ParametersUTRA-TDD768 ::= SEQUENCE SRSASN_CODE irat_params_utra_tdd768_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_utra_tdd768, 1, 64, EnumPacker())); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_utra_tdd768_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_utra_tdd768, bref, 1, 64, EnumPacker())); return SRSASN_SUCCESS; } void irat_params_utra_tdd768_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandListUTRA-TDD768"); for (uint32_t i1 = 0; i1 < supported_band_list_utra_tdd768.size(); ++i1) { j.write_str(supported_band_list_utra_tdd768[i1].to_string()); } j.end_array(); j.end_obj(); } // IRAT-ParametersWLAN-r13 ::= SEQUENCE SRSASN_CODE irat_params_wlan_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_list_wlan_r13_present, 1)); if (supported_band_list_wlan_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_wlan_r13, 1, 8, EnumPacker())); } return SRSASN_SUCCESS; } SRSASN_CODE irat_params_wlan_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_list_wlan_r13_present, 1)); if (supported_band_list_wlan_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_wlan_r13, bref, 1, 8, EnumPacker())); } return SRSASN_SUCCESS; } void irat_params_wlan_r13_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_list_wlan_r13_present) { j.start_array("supportedBandListWLAN-r13"); for (uint32_t i1 = 0; i1 < supported_band_list_wlan_r13.size(); ++i1) { j.write_str(supported_band_list_wlan_r13[i1].to_string()); } j.end_array(); } j.end_obj(); } // SkipSubframeProcessing-r15 ::= SEQUENCE SRSASN_CODE skip_sf_processing_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(skip_processing_dl_slot_r15_present, 1)); HANDLE_CODE(bref.pack(skip_processing_dl_sub_slot_r15_present, 1)); HANDLE_CODE(bref.pack(skip_processing_ul_slot_r15_present, 1)); HANDLE_CODE(bref.pack(skip_processing_ul_sub_slot_r15_present, 1)); if (skip_processing_dl_slot_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, skip_processing_dl_slot_r15, (uint8_t)0, (uint8_t)3)); } if (skip_processing_dl_sub_slot_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, skip_processing_dl_sub_slot_r15, (uint8_t)0, (uint8_t)3)); } if (skip_processing_ul_slot_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, skip_processing_ul_slot_r15, (uint8_t)0, (uint8_t)3)); } if (skip_processing_ul_sub_slot_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, skip_processing_ul_sub_slot_r15, (uint8_t)0, (uint8_t)3)); } return SRSASN_SUCCESS; } SRSASN_CODE skip_sf_processing_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(skip_processing_dl_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(skip_processing_dl_sub_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(skip_processing_ul_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(skip_processing_ul_sub_slot_r15_present, 1)); if (skip_processing_dl_slot_r15_present) { HANDLE_CODE(unpack_unalign_integer(skip_processing_dl_slot_r15, bref, (uint8_t)0, (uint8_t)3)); } if (skip_processing_dl_sub_slot_r15_present) { HANDLE_CODE(unpack_unalign_integer(skip_processing_dl_sub_slot_r15, bref, (uint8_t)0, (uint8_t)3)); } if (skip_processing_ul_slot_r15_present) { HANDLE_CODE(unpack_unalign_integer(skip_processing_ul_slot_r15, bref, (uint8_t)0, (uint8_t)3)); } if (skip_processing_ul_sub_slot_r15_present) { HANDLE_CODE(unpack_unalign_integer(skip_processing_ul_sub_slot_r15, bref, (uint8_t)0, (uint8_t)3)); } return SRSASN_SUCCESS; } void skip_sf_processing_r15_s::to_json(json_writer& j) const { j.start_obj(); if (skip_processing_dl_slot_r15_present) { j.write_int("skipProcessingDL-Slot-r15", skip_processing_dl_slot_r15); } if (skip_processing_dl_sub_slot_r15_present) { j.write_int("skipProcessingDL-SubSlot-r15", skip_processing_dl_sub_slot_r15); } if (skip_processing_ul_slot_r15_present) { j.write_int("skipProcessingUL-Slot-r15", skip_processing_ul_slot_r15); } if (skip_processing_ul_sub_slot_r15_present) { j.write_int("skipProcessingUL-SubSlot-r15", skip_processing_ul_sub_slot_r15); } j.end_obj(); } // MAC-Parameters-v1530 ::= SEQUENCE SRSASN_CODE mac_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(min_proc_timeline_subslot_r15_present, 1)); HANDLE_CODE(bref.pack(skip_sf_processing_r15_present, 1)); HANDLE_CODE(bref.pack(early_data_up_r15_present, 1)); HANDLE_CODE(bref.pack(dormant_scell_state_r15_present, 1)); HANDLE_CODE(bref.pack(direct_scell_activation_r15_present, 1)); HANDLE_CODE(bref.pack(direct_scell_hibernation_r15_present, 1)); HANDLE_CODE(bref.pack(extended_lcid_dupl_r15_present, 1)); HANDLE_CODE(bref.pack(sps_serving_cell_r15_present, 1)); if (min_proc_timeline_subslot_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, min_proc_timeline_subslot_r15, 1, 3, EnumPacker())); } if (skip_sf_processing_r15_present) { HANDLE_CODE(skip_sf_processing_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mac_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(min_proc_timeline_subslot_r15_present, 1)); HANDLE_CODE(bref.unpack(skip_sf_processing_r15_present, 1)); HANDLE_CODE(bref.unpack(early_data_up_r15_present, 1)); HANDLE_CODE(bref.unpack(dormant_scell_state_r15_present, 1)); HANDLE_CODE(bref.unpack(direct_scell_activation_r15_present, 1)); HANDLE_CODE(bref.unpack(direct_scell_hibernation_r15_present, 1)); HANDLE_CODE(bref.unpack(extended_lcid_dupl_r15_present, 1)); HANDLE_CODE(bref.unpack(sps_serving_cell_r15_present, 1)); if (min_proc_timeline_subslot_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(min_proc_timeline_subslot_r15, bref, 1, 3, EnumPacker())); } if (skip_sf_processing_r15_present) { HANDLE_CODE(skip_sf_processing_r15.unpack(bref)); } return SRSASN_SUCCESS; } void mac_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (min_proc_timeline_subslot_r15_present) { j.start_array("min-Proc-TimelineSubslot-r15"); for (uint32_t i1 = 0; i1 < min_proc_timeline_subslot_r15.size(); ++i1) { j.write_str(min_proc_timeline_subslot_r15[i1].to_string()); } j.end_array(); } if (skip_sf_processing_r15_present) { j.write_fieldname("skipSubframeProcessing-r15"); skip_sf_processing_r15.to_json(j); } if (early_data_up_r15_present) { j.write_str("earlyData-UP-r15", "supported"); } if (dormant_scell_state_r15_present) { j.write_str("dormantSCellState-r15", "supported"); } if (direct_scell_activation_r15_present) { j.write_str("directSCellActivation-r15", "supported"); } if (direct_scell_hibernation_r15_present) { j.write_str("directSCellHibernation-r15", "supported"); } if (extended_lcid_dupl_r15_present) { j.write_str("extendedLCID-Duplication-r15", "supported"); } if (sps_serving_cell_r15_present) { j.write_str("sps-ServingCell-r15", "supported"); } j.end_obj(); } // MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE SRSASN_CODE mimo_ue_beamformed_capabilities_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(alt_codebook_r13_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, mimo_beamformed_capabilities_r13, 1, 4)); return SRSASN_SUCCESS; } SRSASN_CODE mimo_ue_beamformed_capabilities_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(alt_codebook_r13_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(mimo_beamformed_capabilities_r13, bref, 1, 4)); return SRSASN_SUCCESS; } void mimo_ue_beamformed_capabilities_r13_s::to_json(json_writer& j) const { j.start_obj(); if (alt_codebook_r13_present) { j.write_str("altCodebook-r13", "supported"); } j.start_array("mimo-BeamformedCapabilities-r13"); for (uint32_t i1 = 0; i1 < mimo_beamformed_capabilities_r13.size(); ++i1) { mimo_beamformed_capabilities_r13[i1].to_json(j); } j.end_array(); j.end_obj(); } // MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE SRSASN_CODE mimo_ue_params_per_tm_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_precoded_r13_present, 1)); HANDLE_CODE(bref.pack(beamformed_r13_present, 1)); HANDLE_CODE(bref.pack(ch_meas_restrict_r13_present, 1)); HANDLE_CODE(bref.pack(dmrs_enhance_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_enhance_tdd_r13_present, 1)); if (non_precoded_r13_present) { HANDLE_CODE(non_precoded_r13.pack(bref)); } if (beamformed_r13_present) { HANDLE_CODE(beamformed_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ue_params_per_tm_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_precoded_r13_present, 1)); HANDLE_CODE(bref.unpack(beamformed_r13_present, 1)); HANDLE_CODE(bref.unpack(ch_meas_restrict_r13_present, 1)); HANDLE_CODE(bref.unpack(dmrs_enhance_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_enhance_tdd_r13_present, 1)); if (non_precoded_r13_present) { HANDLE_CODE(non_precoded_r13.unpack(bref)); } if (beamformed_r13_present) { HANDLE_CODE(beamformed_r13.unpack(bref)); } return SRSASN_SUCCESS; } void mimo_ue_params_per_tm_r13_s::to_json(json_writer& j) const { j.start_obj(); if (non_precoded_r13_present) { j.write_fieldname("nonPrecoded-r13"); non_precoded_r13.to_json(j); } if (beamformed_r13_present) { j.write_fieldname("beamformed-r13"); beamformed_r13.to_json(j); } if (ch_meas_restrict_r13_present) { j.write_str("channelMeasRestriction-r13", "supported"); } if (dmrs_enhance_r13_present) { j.write_str("dmrs-Enhancements-r13", "supported"); } if (csi_rs_enhance_tdd_r13_present) { j.write_str("csi-RS-EnhancementsTDD-r13", "supported"); } j.end_obj(); } // MIMO-UE-Parameters-r13 ::= SEQUENCE SRSASN_CODE mimo_ue_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(params_tm9_r13_present, 1)); HANDLE_CODE(bref.pack(params_tm10_r13_present, 1)); HANDLE_CODE(bref.pack(srs_enhance_tdd_r13_present, 1)); HANDLE_CODE(bref.pack(srs_enhance_r13_present, 1)); HANDLE_CODE(bref.pack(interference_meas_restrict_r13_present, 1)); if (params_tm9_r13_present) { HANDLE_CODE(params_tm9_r13.pack(bref)); } if (params_tm10_r13_present) { HANDLE_CODE(params_tm10_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ue_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(params_tm9_r13_present, 1)); HANDLE_CODE(bref.unpack(params_tm10_r13_present, 1)); HANDLE_CODE(bref.unpack(srs_enhance_tdd_r13_present, 1)); HANDLE_CODE(bref.unpack(srs_enhance_r13_present, 1)); HANDLE_CODE(bref.unpack(interference_meas_restrict_r13_present, 1)); if (params_tm9_r13_present) { HANDLE_CODE(params_tm9_r13.unpack(bref)); } if (params_tm10_r13_present) { HANDLE_CODE(params_tm10_r13.unpack(bref)); } return SRSASN_SUCCESS; } void mimo_ue_params_r13_s::to_json(json_writer& j) const { j.start_obj(); if (params_tm9_r13_present) { j.write_fieldname("parametersTM9-r13"); params_tm9_r13.to_json(j); } if (params_tm10_r13_present) { j.write_fieldname("parametersTM10-r13"); params_tm10_r13.to_json(j); } if (srs_enhance_tdd_r13_present) { j.write_str("srs-EnhancementsTDD-r13", "supported"); } if (srs_enhance_r13_present) { j.write_str("srs-Enhancements-r13", "supported"); } if (interference_meas_restrict_r13_present) { j.write_str("interferenceMeasRestriction-r13", "supported"); } j.end_obj(); } // MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE SRSASN_CODE mimo_ue_params_per_tm_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(nzp_csi_rs_aperiodic_info_r14_present, 1)); HANDLE_CODE(bref.pack(nzp_csi_rs_periodic_info_r14_present, 1)); HANDLE_CODE(bref.pack(zp_csi_rs_aperiodic_info_r14_present, 1)); HANDLE_CODE(bref.pack(ul_dmrs_enhance_r14_present, 1)); HANDLE_CODE(bref.pack(density_reduction_np_r14_present, 1)); HANDLE_CODE(bref.pack(density_reduction_bf_r14_present, 1)); HANDLE_CODE(bref.pack(hybrid_csi_r14_present, 1)); HANDLE_CODE(bref.pack(semi_ol_r14_present, 1)); HANDLE_CODE(bref.pack(csi_report_np_r14_present, 1)); HANDLE_CODE(bref.pack(csi_report_advanced_r14_present, 1)); if (nzp_csi_rs_aperiodic_info_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, nzp_csi_rs_aperiodic_info_r14.n_max_proc_r14, (uint8_t)5, (uint8_t)32)); HANDLE_CODE(pack_enum(bref, nzp_csi_rs_aperiodic_info_r14.n_max_res_r14)); } if (nzp_csi_rs_periodic_info_r14_present) { HANDLE_CODE(pack_enum(bref, nzp_csi_rs_periodic_info_r14.n_max_res_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ue_params_per_tm_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(nzp_csi_rs_aperiodic_info_r14_present, 1)); HANDLE_CODE(bref.unpack(nzp_csi_rs_periodic_info_r14_present, 1)); HANDLE_CODE(bref.unpack(zp_csi_rs_aperiodic_info_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_dmrs_enhance_r14_present, 1)); HANDLE_CODE(bref.unpack(density_reduction_np_r14_present, 1)); HANDLE_CODE(bref.unpack(density_reduction_bf_r14_present, 1)); HANDLE_CODE(bref.unpack(hybrid_csi_r14_present, 1)); HANDLE_CODE(bref.unpack(semi_ol_r14_present, 1)); HANDLE_CODE(bref.unpack(csi_report_np_r14_present, 1)); HANDLE_CODE(bref.unpack(csi_report_advanced_r14_present, 1)); if (nzp_csi_rs_aperiodic_info_r14_present) { HANDLE_CODE(unpack_unalign_integer(nzp_csi_rs_aperiodic_info_r14.n_max_proc_r14, bref, (uint8_t)5, (uint8_t)32)); HANDLE_CODE(unpack_enum(nzp_csi_rs_aperiodic_info_r14.n_max_res_r14, bref)); } if (nzp_csi_rs_periodic_info_r14_present) { HANDLE_CODE(unpack_enum(nzp_csi_rs_periodic_info_r14.n_max_res_r14, bref)); } return SRSASN_SUCCESS; } void mimo_ue_params_per_tm_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (nzp_csi_rs_aperiodic_info_r14_present) { j.write_fieldname("nzp-CSI-RS-AperiodicInfo-r14"); j.start_obj(); j.write_int("nMaxProc-r14", nzp_csi_rs_aperiodic_info_r14.n_max_proc_r14); j.write_str("nMaxResource-r14", nzp_csi_rs_aperiodic_info_r14.n_max_res_r14.to_string()); j.end_obj(); } if (nzp_csi_rs_periodic_info_r14_present) { j.write_fieldname("nzp-CSI-RS-PeriodicInfo-r14"); j.start_obj(); j.write_str("nMaxResource-r14", nzp_csi_rs_periodic_info_r14.n_max_res_r14.to_string()); j.end_obj(); } if (zp_csi_rs_aperiodic_info_r14_present) { j.write_str("zp-CSI-RS-AperiodicInfo-r14", "supported"); } if (ul_dmrs_enhance_r14_present) { j.write_str("ul-dmrs-Enhancements-r14", "supported"); } if (density_reduction_np_r14_present) { j.write_str("densityReductionNP-r14", "supported"); } if (density_reduction_bf_r14_present) { j.write_str("densityReductionBF-r14", "supported"); } if (hybrid_csi_r14_present) { j.write_str("hybridCSI-r14", "supported"); } if (semi_ol_r14_present) { j.write_str("semiOL-r14", "supported"); } if (csi_report_np_r14_present) { j.write_str("csi-ReportingNP-r14", "supported"); } if (csi_report_advanced_r14_present) { j.write_str("csi-ReportingAdvanced-r14", "supported"); } j.end_obj(); } // MIMO-UE-Parameters-v1430 ::= SEQUENCE SRSASN_CODE mimo_ue_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(params_tm9_v1430_present, 1)); HANDLE_CODE(bref.pack(params_tm10_v1430_present, 1)); if (params_tm9_v1430_present) { HANDLE_CODE(params_tm9_v1430.pack(bref)); } if (params_tm10_v1430_present) { HANDLE_CODE(params_tm10_v1430.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ue_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(params_tm9_v1430_present, 1)); HANDLE_CODE(bref.unpack(params_tm10_v1430_present, 1)); if (params_tm9_v1430_present) { HANDLE_CODE(params_tm9_v1430.unpack(bref)); } if (params_tm10_v1430_present) { HANDLE_CODE(params_tm10_v1430.unpack(bref)); } return SRSASN_SUCCESS; } void mimo_ue_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (params_tm9_v1430_present) { j.write_fieldname("parametersTM9-v1430"); params_tm9_v1430.to_json(j); } if (params_tm10_v1430_present) { j.write_fieldname("parametersTM10-v1430"); params_tm10_v1430.to_json(j); } j.end_obj(); } // MIMO-UE-ParametersPerTM-v1470 ::= SEQUENCE SRSASN_CODE mimo_ue_params_per_tm_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(csi_report_advanced_max_ports_r14_present, 1)); if (csi_report_advanced_max_ports_r14_present) { HANDLE_CODE(pack_enum(bref, csi_report_advanced_max_ports_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE mimo_ue_params_per_tm_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(csi_report_advanced_max_ports_r14_present, 1)); if (csi_report_advanced_max_ports_r14_present) { HANDLE_CODE(unpack_enum(csi_report_advanced_max_ports_r14, bref)); } return SRSASN_SUCCESS; } void mimo_ue_params_per_tm_v1470_s::to_json(json_writer& j) const { j.start_obj(); if (csi_report_advanced_max_ports_r14_present) { j.write_str("csi-ReportingAdvancedMaxPorts-r14", csi_report_advanced_max_ports_r14.to_string()); } j.end_obj(); } // MIMO-UE-Parameters-v1470 ::= SEQUENCE SRSASN_CODE mimo_ue_params_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(params_tm9_v1470.pack(bref)); HANDLE_CODE(params_tm10_v1470.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mimo_ue_params_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(params_tm9_v1470.unpack(bref)); HANDLE_CODE(params_tm10_v1470.unpack(bref)); return SRSASN_SUCCESS; } void mimo_ue_params_v1470_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("parametersTM9-v1470"); params_tm9_v1470.to_json(j); j.write_fieldname("parametersTM10-v1470"); params_tm10_v1470.to_json(j); j.end_obj(); } // MeasParameters ::= SEQUENCE SRSASN_CODE meas_params_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, band_list_eutra, 1, 64)); return SRSASN_SUCCESS; } SRSASN_CODE meas_params_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(band_list_eutra, bref, 1, 64)); return SRSASN_SUCCESS; } void meas_params_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("bandListEUTRA"); for (uint32_t i1 = 0; i1 < band_list_eutra.size(); ++i1) { band_list_eutra[i1].to_json(j); } j.end_array(); j.end_obj(); } // MeasParameters-v1020 ::= SEQUENCE SRSASN_CODE meas_params_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, band_combination_list_eutra_r10, 1, 128)); return SRSASN_SUCCESS; } SRSASN_CODE meas_params_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(band_combination_list_eutra_r10, bref, 1, 128)); return SRSASN_SUCCESS; } void meas_params_v1020_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("bandCombinationListEUTRA-r10"); for (uint32_t i1 = 0; i1 < band_combination_list_eutra_r10.size(); ++i1) { band_combination_list_eutra_r10[i1].to_json(j); } j.end_array(); j.end_obj(); } // NAICS-Capability-Entry-r12 ::= SEQUENCE SRSASN_CODE naics_cap_entry_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, nof_naics_capable_cc_r12, (uint8_t)1, (uint8_t)5)); HANDLE_CODE(pack_enum(bref, nof_aggregated_prb_r12)); return SRSASN_SUCCESS; } SRSASN_CODE naics_cap_entry_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(nof_naics_capable_cc_r12, bref, (uint8_t)1, (uint8_t)5)); HANDLE_CODE(unpack_enum(nof_aggregated_prb_r12, bref)); return SRSASN_SUCCESS; } void naics_cap_entry_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("numberOfNAICS-CapableCC-r12", nof_naics_capable_cc_r12); j.write_str("numberOfAggregatedPRB-r12", nof_aggregated_prb_r12.to_string()); j.end_obj(); } // NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE SRSASN_CODE non_contiguous_ul_ra_within_cc_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_contiguous_ul_ra_within_cc_info_r10_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE non_contiguous_ul_ra_within_cc_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_contiguous_ul_ra_within_cc_info_r10_present, 1)); return SRSASN_SUCCESS; } void non_contiguous_ul_ra_within_cc_r10_s::to_json(json_writer& j) const { j.start_obj(); if (non_contiguous_ul_ra_within_cc_info_r10_present) { j.write_str("nonContiguousUL-RA-WithinCC-Info-r10", "supported"); } j.end_obj(); } // ROHC-ProfileSupportList-r15 ::= SEQUENCE SRSASN_CODE rohc_profile_support_list_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(profile0x0001_r15, 1)); HANDLE_CODE(bref.pack(profile0x0002_r15, 1)); HANDLE_CODE(bref.pack(profile0x0003_r15, 1)); HANDLE_CODE(bref.pack(profile0x0004_r15, 1)); HANDLE_CODE(bref.pack(profile0x0006_r15, 1)); HANDLE_CODE(bref.pack(profile0x0101_r15, 1)); HANDLE_CODE(bref.pack(profile0x0102_r15, 1)); HANDLE_CODE(bref.pack(profile0x0103_r15, 1)); HANDLE_CODE(bref.pack(profile0x0104_r15, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rohc_profile_support_list_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(profile0x0001_r15, 1)); HANDLE_CODE(bref.unpack(profile0x0002_r15, 1)); HANDLE_CODE(bref.unpack(profile0x0003_r15, 1)); HANDLE_CODE(bref.unpack(profile0x0004_r15, 1)); HANDLE_CODE(bref.unpack(profile0x0006_r15, 1)); HANDLE_CODE(bref.unpack(profile0x0101_r15, 1)); HANDLE_CODE(bref.unpack(profile0x0102_r15, 1)); HANDLE_CODE(bref.unpack(profile0x0103_r15, 1)); HANDLE_CODE(bref.unpack(profile0x0104_r15, 1)); return SRSASN_SUCCESS; } void rohc_profile_support_list_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("profile0x0001-r15", profile0x0001_r15); j.write_bool("profile0x0002-r15", profile0x0002_r15); j.write_bool("profile0x0003-r15", profile0x0003_r15); j.write_bool("profile0x0004-r15", profile0x0004_r15); j.write_bool("profile0x0006-r15", profile0x0006_r15); j.write_bool("profile0x0101-r15", profile0x0101_r15); j.write_bool("profile0x0102-r15", profile0x0102_r15); j.write_bool("profile0x0103-r15", profile0x0103_r15); j.write_bool("profile0x0104-r15", profile0x0104_r15); j.end_obj(); } // PDCP-Parameters ::= SEQUENCE SRSASN_CODE pdcp_params_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(max_num_rohc_context_sessions_present, 1)); HANDLE_CODE(supported_rohc_profiles.pack(bref)); if (max_num_rohc_context_sessions_present) { HANDLE_CODE(pack_enum(bref, max_num_rohc_context_sessions)); } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_params_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(max_num_rohc_context_sessions_present, 1)); HANDLE_CODE(supported_rohc_profiles.unpack(bref)); if (max_num_rohc_context_sessions_present) { HANDLE_CODE(unpack_enum(max_num_rohc_context_sessions, bref)); } return SRSASN_SUCCESS; } void pdcp_params_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("supportedROHC-Profiles"); supported_rohc_profiles.to_json(j); if (max_num_rohc_context_sessions_present) { j.write_str("maxNumberROHC-ContextSessions", max_num_rohc_context_sessions.to_string()); } j.end_obj(); } // SupportedOperatorDic-r15 ::= SEQUENCE SRSASN_CODE supported_operator_dic_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, version_of_dictionary_r15, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(associated_plmn_id_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE supported_operator_dic_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(version_of_dictionary_r15, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(associated_plmn_id_r15.unpack(bref)); return SRSASN_SUCCESS; } void supported_operator_dic_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("versionOfDictionary-r15", version_of_dictionary_r15); j.write_fieldname("associatedPLMN-ID-r15"); associated_plmn_id_r15.to_json(j); j.end_obj(); } // SupportedUDC-r15 ::= SEQUENCE SRSASN_CODE supported_udc_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_standard_dic_r15_present, 1)); HANDLE_CODE(bref.pack(supported_operator_dic_r15_present, 1)); if (supported_operator_dic_r15_present) { HANDLE_CODE(supported_operator_dic_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE supported_udc_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_standard_dic_r15_present, 1)); HANDLE_CODE(bref.unpack(supported_operator_dic_r15_present, 1)); if (supported_operator_dic_r15_present) { HANDLE_CODE(supported_operator_dic_r15.unpack(bref)); } return SRSASN_SUCCESS; } void supported_udc_r15_s::to_json(json_writer& j) const { j.start_obj(); if (supported_standard_dic_r15_present) { j.write_str("supportedStandardDic-r15", "supported"); } if (supported_operator_dic_r15_present) { j.write_fieldname("supportedOperatorDic-r15"); supported_operator_dic_r15.to_json(j); } j.end_obj(); } // PDCP-Parameters-v1530 ::= SEQUENCE SRSASN_CODE pdcp_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_udc_r15_present, 1)); HANDLE_CODE(bref.pack(pdcp_dupl_r15_present, 1)); if (supported_udc_r15_present) { HANDLE_CODE(supported_udc_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_udc_r15_present, 1)); HANDLE_CODE(bref.unpack(pdcp_dupl_r15_present, 1)); if (supported_udc_r15_present) { HANDLE_CODE(supported_udc_r15.unpack(bref)); } return SRSASN_SUCCESS; } void pdcp_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (supported_udc_r15_present) { j.write_fieldname("supportedUDC-r15"); supported_udc_r15.to_json(j); } if (pdcp_dupl_r15_present) { j.write_str("pdcp-Duplication-r15", "supported"); } j.end_obj(); } // PDCP-ParametersNR-r15 ::= SEQUENCE SRSASN_CODE pdcp_params_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rohc_context_max_sessions_r15_present, 1)); HANDLE_CODE(bref.pack(rohc_context_continue_r15_present, 1)); HANDLE_CODE(bref.pack(out_of_order_delivery_r15_present, 1)); HANDLE_CODE(bref.pack(sn_size_lo_r15_present, 1)); HANDLE_CODE(bref.pack(ims_voice_over_nr_pdcp_mcg_bearer_r15_present, 1)); HANDLE_CODE(bref.pack(ims_voice_over_nr_pdcp_scg_bearer_r15_present, 1)); HANDLE_CODE(rohc_profiles_r15.pack(bref)); if (rohc_context_max_sessions_r15_present) { HANDLE_CODE(pack_enum(bref, rohc_context_max_sessions_r15)); } HANDLE_CODE(bref.pack(rohc_profiles_ul_only_r15.profile0x0006_r15, 1)); return SRSASN_SUCCESS; } SRSASN_CODE pdcp_params_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rohc_context_max_sessions_r15_present, 1)); HANDLE_CODE(bref.unpack(rohc_context_continue_r15_present, 1)); HANDLE_CODE(bref.unpack(out_of_order_delivery_r15_present, 1)); HANDLE_CODE(bref.unpack(sn_size_lo_r15_present, 1)); HANDLE_CODE(bref.unpack(ims_voice_over_nr_pdcp_mcg_bearer_r15_present, 1)); HANDLE_CODE(bref.unpack(ims_voice_over_nr_pdcp_scg_bearer_r15_present, 1)); HANDLE_CODE(rohc_profiles_r15.unpack(bref)); if (rohc_context_max_sessions_r15_present) { HANDLE_CODE(unpack_enum(rohc_context_max_sessions_r15, bref)); } HANDLE_CODE(bref.unpack(rohc_profiles_ul_only_r15.profile0x0006_r15, 1)); return SRSASN_SUCCESS; } void pdcp_params_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("rohc-Profiles-r15"); rohc_profiles_r15.to_json(j); if (rohc_context_max_sessions_r15_present) { j.write_str("rohc-ContextMaxSessions-r15", rohc_context_max_sessions_r15.to_string()); } j.write_fieldname("rohc-ProfilesUL-Only-r15"); j.start_obj(); j.write_bool("profile0x0006-r15", rohc_profiles_ul_only_r15.profile0x0006_r15); j.end_obj(); if (rohc_context_continue_r15_present) { j.write_str("rohc-ContextContinue-r15", "supported"); } if (out_of_order_delivery_r15_present) { j.write_str("outOfOrderDelivery-r15", "supported"); } if (sn_size_lo_r15_present) { j.write_str("sn-SizeLo-r15", "supported"); } if (ims_voice_over_nr_pdcp_mcg_bearer_r15_present) { j.write_str("ims-VoiceOverNR-PDCP-MCG-Bearer-r15", "supported"); } if (ims_voice_over_nr_pdcp_scg_bearer_r15_present) { j.write_str("ims-VoiceOverNR-PDCP-SCG-Bearer-r15", "supported"); } j.end_obj(); } // PhyLayerParameters-v1020 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(two_ant_ports_for_pucch_r10_present, 1)); HANDLE_CODE(bref.pack(tm9_with_minus8_tx_fdd_r10_present, 1)); HANDLE_CODE(bref.pack(pmi_disabling_r10_present, 1)); HANDLE_CODE(bref.pack(cross_carrier_sched_r10_present, 1)); HANDLE_CODE(bref.pack(simul_pucch_pusch_r10_present, 1)); HANDLE_CODE(bref.pack(multi_cluster_pusch_within_cc_r10_present, 1)); HANDLE_CODE(bref.pack(non_contiguous_ul_ra_within_cc_list_r10_present, 1)); if (non_contiguous_ul_ra_within_cc_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, non_contiguous_ul_ra_within_cc_list_r10, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(two_ant_ports_for_pucch_r10_present, 1)); HANDLE_CODE(bref.unpack(tm9_with_minus8_tx_fdd_r10_present, 1)); HANDLE_CODE(bref.unpack(pmi_disabling_r10_present, 1)); HANDLE_CODE(bref.unpack(cross_carrier_sched_r10_present, 1)); HANDLE_CODE(bref.unpack(simul_pucch_pusch_r10_present, 1)); HANDLE_CODE(bref.unpack(multi_cluster_pusch_within_cc_r10_present, 1)); HANDLE_CODE(bref.unpack(non_contiguous_ul_ra_within_cc_list_r10_present, 1)); if (non_contiguous_ul_ra_within_cc_list_r10_present) { HANDLE_CODE(unpack_dyn_seq_of(non_contiguous_ul_ra_within_cc_list_r10, bref, 1, 64)); } return SRSASN_SUCCESS; } void phy_layer_params_v1020_s::to_json(json_writer& j) const { j.start_obj(); if (two_ant_ports_for_pucch_r10_present) { j.write_str("twoAntennaPortsForPUCCH-r10", "supported"); } if (tm9_with_minus8_tx_fdd_r10_present) { j.write_str("tm9-With-8Tx-FDD-r10", "supported"); } if (pmi_disabling_r10_present) { j.write_str("pmi-Disabling-r10", "supported"); } if (cross_carrier_sched_r10_present) { j.write_str("crossCarrierScheduling-r10", "supported"); } if (simul_pucch_pusch_r10_present) { j.write_str("simultaneousPUCCH-PUSCH-r10", "supported"); } if (multi_cluster_pusch_within_cc_r10_present) { j.write_str("multiClusterPUSCH-WithinCC-r10", "supported"); } if (non_contiguous_ul_ra_within_cc_list_r10_present) { j.start_array("nonContiguousUL-RA-WithinCC-List-r10"); for (uint32_t i1 = 0; i1 < non_contiguous_ul_ra_within_cc_list_r10.size(); ++i1) { non_contiguous_ul_ra_within_cc_list_r10[i1].to_json(j); } j.end_array(); } j.end_obj(); } // PhyLayerParameters-v1250 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(e_harq_pattern_fdd_r12_present, 1)); HANDLE_CODE(bref.pack(enhanced_minus4_tx_codebook_r12_present, 1)); HANDLE_CODE(bref.pack(tdd_fdd_ca_pcell_duplex_r12_present, 1)); HANDLE_CODE(bref.pack(phy_tdd_re_cfg_tdd_pcell_r12_present, 1)); HANDLE_CODE(bref.pack(phy_tdd_re_cfg_fdd_pcell_r12_present, 1)); HANDLE_CODE(bref.pack(pusch_feedback_mode_r12_present, 1)); HANDLE_CODE(bref.pack(pusch_srs_pwr_ctrl_sf_set_r12_present, 1)); HANDLE_CODE(bref.pack(csi_sf_set_r12_present, 1)); HANDLE_CODE(bref.pack(no_res_restrict_for_tti_bundling_r12_present, 1)); HANDLE_CODE(bref.pack(discovery_signals_in_deact_scell_r12_present, 1)); HANDLE_CODE(bref.pack(naics_cap_list_r12_present, 1)); if (tdd_fdd_ca_pcell_duplex_r12_present) { HANDLE_CODE(tdd_fdd_ca_pcell_duplex_r12.pack(bref)); } if (naics_cap_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, naics_cap_list_r12, 1, 8)); } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(e_harq_pattern_fdd_r12_present, 1)); HANDLE_CODE(bref.unpack(enhanced_minus4_tx_codebook_r12_present, 1)); HANDLE_CODE(bref.unpack(tdd_fdd_ca_pcell_duplex_r12_present, 1)); HANDLE_CODE(bref.unpack(phy_tdd_re_cfg_tdd_pcell_r12_present, 1)); HANDLE_CODE(bref.unpack(phy_tdd_re_cfg_fdd_pcell_r12_present, 1)); HANDLE_CODE(bref.unpack(pusch_feedback_mode_r12_present, 1)); HANDLE_CODE(bref.unpack(pusch_srs_pwr_ctrl_sf_set_r12_present, 1)); HANDLE_CODE(bref.unpack(csi_sf_set_r12_present, 1)); HANDLE_CODE(bref.unpack(no_res_restrict_for_tti_bundling_r12_present, 1)); HANDLE_CODE(bref.unpack(discovery_signals_in_deact_scell_r12_present, 1)); HANDLE_CODE(bref.unpack(naics_cap_list_r12_present, 1)); if (tdd_fdd_ca_pcell_duplex_r12_present) { HANDLE_CODE(tdd_fdd_ca_pcell_duplex_r12.unpack(bref)); } if (naics_cap_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(naics_cap_list_r12, bref, 1, 8)); } return SRSASN_SUCCESS; } void phy_layer_params_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (e_harq_pattern_fdd_r12_present) { j.write_str("e-HARQ-Pattern-FDD-r12", "supported"); } if (enhanced_minus4_tx_codebook_r12_present) { j.write_str("enhanced-4TxCodebook-r12", "supported"); } if (tdd_fdd_ca_pcell_duplex_r12_present) { j.write_str("tdd-FDD-CA-PCellDuplex-r12", tdd_fdd_ca_pcell_duplex_r12.to_string()); } if (phy_tdd_re_cfg_tdd_pcell_r12_present) { j.write_str("phy-TDD-ReConfig-TDD-PCell-r12", "supported"); } if (phy_tdd_re_cfg_fdd_pcell_r12_present) { j.write_str("phy-TDD-ReConfig-FDD-PCell-r12", "supported"); } if (pusch_feedback_mode_r12_present) { j.write_str("pusch-FeedbackMode-r12", "supported"); } if (pusch_srs_pwr_ctrl_sf_set_r12_present) { j.write_str("pusch-SRS-PowerControl-SubframeSet-r12", "supported"); } if (csi_sf_set_r12_present) { j.write_str("csi-SubframeSet-r12", "supported"); } if (no_res_restrict_for_tti_bundling_r12_present) { j.write_str("noResourceRestrictionForTTIBundling-r12", "supported"); } if (discovery_signals_in_deact_scell_r12_present) { j.write_str("discoverySignalsInDeactSCell-r12", "supported"); } if (naics_cap_list_r12_present) { j.start_array("naics-Capability-List-r12"); for (uint32_t i1 = 0; i1 < naics_cap_list_r12.size(); ++i1) { naics_cap_list_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); } // PhyLayerParameters-v1320 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mimo_ue_params_r13_present, 1)); if (mimo_ue_params_r13_present) { HANDLE_CODE(mimo_ue_params_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mimo_ue_params_r13_present, 1)); if (mimo_ue_params_r13_present) { HANDLE_CODE(mimo_ue_params_r13.unpack(bref)); } return SRSASN_SUCCESS; } void phy_layer_params_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (mimo_ue_params_r13_present) { j.write_fieldname("mimo-UE-Parameters-r13"); mimo_ue_params_r13.to_json(j); } j.end_obj(); } // PhyLayerParameters-v1330 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1330_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cch_interf_mitigation_ref_rec_type_a_r13_present, 1)); HANDLE_CODE(bref.pack(cch_interf_mitigation_ref_rec_type_b_r13_present, 1)); HANDLE_CODE(bref.pack(cch_interf_mitigation_max_num_ccs_r13_present, 1)); HANDLE_CODE(bref.pack(crs_interf_mitigation_tm1to_tm9_r13_present, 1)); if (cch_interf_mitigation_max_num_ccs_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, cch_interf_mitigation_max_num_ccs_r13, (uint8_t)1, (uint8_t)32)); } if (crs_interf_mitigation_tm1to_tm9_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, crs_interf_mitigation_tm1to_tm9_r13, (uint8_t)1, (uint8_t)32)); } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1330_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cch_interf_mitigation_ref_rec_type_a_r13_present, 1)); HANDLE_CODE(bref.unpack(cch_interf_mitigation_ref_rec_type_b_r13_present, 1)); HANDLE_CODE(bref.unpack(cch_interf_mitigation_max_num_ccs_r13_present, 1)); HANDLE_CODE(bref.unpack(crs_interf_mitigation_tm1to_tm9_r13_present, 1)); if (cch_interf_mitigation_max_num_ccs_r13_present) { HANDLE_CODE(unpack_unalign_integer(cch_interf_mitigation_max_num_ccs_r13, bref, (uint8_t)1, (uint8_t)32)); } if (crs_interf_mitigation_tm1to_tm9_r13_present) { HANDLE_CODE(unpack_unalign_integer(crs_interf_mitigation_tm1to_tm9_r13, bref, (uint8_t)1, (uint8_t)32)); } return SRSASN_SUCCESS; } void phy_layer_params_v1330_s::to_json(json_writer& j) const { j.start_obj(); if (cch_interf_mitigation_ref_rec_type_a_r13_present) { j.write_str("cch-InterfMitigation-RefRecTypeA-r13", "supported"); } if (cch_interf_mitigation_ref_rec_type_b_r13_present) { j.write_str("cch-InterfMitigation-RefRecTypeB-r13", "supported"); } if (cch_interf_mitigation_max_num_ccs_r13_present) { j.write_int("cch-InterfMitigation-MaxNumCCs-r13", cch_interf_mitigation_max_num_ccs_r13); } if (crs_interf_mitigation_tm1to_tm9_r13_present) { j.write_int("crs-InterfMitigationTM1toTM9-r13", crs_interf_mitigation_tm1to_tm9_r13); } j.end_obj(); } // FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE SRSASN_CODE fe_mbms_unicast_params_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(unicast_fembms_mixed_scell_r14_present, 1)); HANDLE_CODE(bref.pack(empty_unicast_region_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE fe_mbms_unicast_params_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(unicast_fembms_mixed_scell_r14_present, 1)); HANDLE_CODE(bref.unpack(empty_unicast_region_r14_present, 1)); return SRSASN_SUCCESS; } void fe_mbms_unicast_params_r14_s::to_json(json_writer& j) const { j.start_obj(); if (unicast_fembms_mixed_scell_r14_present) { j.write_str("unicast-fembmsMixedSCell-r14", "supported"); } if (empty_unicast_region_r14_present) { j.write_str("emptyUnicastRegion-r14", "supported"); } j.end_obj(); } // PhyLayerParameters-v1430 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_pusch_nb_max_tbs_r14_present, 1)); HANDLE_CODE(bref.pack(ce_pdsch_pusch_max_bw_r14_present, 1)); HANDLE_CODE(bref.pack(ce_harq_ack_bundling_r14_present, 1)); HANDLE_CODE(bref.pack(ce_pdsch_ten_processes_r14_present, 1)); HANDLE_CODE(bref.pack(ce_retuning_symbols_r14_present, 1)); HANDLE_CODE(bref.pack(ce_pdsch_pusch_enhancement_r14_present, 1)); HANDLE_CODE(bref.pack(ce_sched_enhancement_r14_present, 1)); HANDLE_CODE(bref.pack(ce_srs_enhancement_r14_present, 1)); HANDLE_CODE(bref.pack(ce_pucch_enhancement_r14_present, 1)); HANDLE_CODE(bref.pack(ce_closed_loop_tx_ant_sel_r14_present, 1)); HANDLE_CODE(bref.pack(tdd_special_sf_r14_present, 1)); HANDLE_CODE(bref.pack(tdd_tti_bundling_r14_present, 1)); HANDLE_CODE(bref.pack(dmrs_less_up_pts_r14_present, 1)); HANDLE_CODE(bref.pack(mimo_ue_params_v1430_present, 1)); HANDLE_CODE(bref.pack(alternative_tbs_idx_r14_present, 1)); HANDLE_CODE(bref.pack(fe_mbms_unicast_params_r14_present, 1)); if (ce_pdsch_pusch_max_bw_r14_present) { HANDLE_CODE(pack_enum(bref, ce_pdsch_pusch_max_bw_r14)); } if (ce_retuning_symbols_r14_present) { HANDLE_CODE(pack_enum(bref, ce_retuning_symbols_r14)); } if (mimo_ue_params_v1430_present) { HANDLE_CODE(mimo_ue_params_v1430.pack(bref)); } if (fe_mbms_unicast_params_r14_present) { HANDLE_CODE(fe_mbms_unicast_params_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_pusch_nb_max_tbs_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_pdsch_pusch_max_bw_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_harq_ack_bundling_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_pdsch_ten_processes_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_retuning_symbols_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_pdsch_pusch_enhancement_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_sched_enhancement_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_srs_enhancement_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_pucch_enhancement_r14_present, 1)); HANDLE_CODE(bref.unpack(ce_closed_loop_tx_ant_sel_r14_present, 1)); HANDLE_CODE(bref.unpack(tdd_special_sf_r14_present, 1)); HANDLE_CODE(bref.unpack(tdd_tti_bundling_r14_present, 1)); HANDLE_CODE(bref.unpack(dmrs_less_up_pts_r14_present, 1)); HANDLE_CODE(bref.unpack(mimo_ue_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(alternative_tbs_idx_r14_present, 1)); HANDLE_CODE(bref.unpack(fe_mbms_unicast_params_r14_present, 1)); if (ce_pdsch_pusch_max_bw_r14_present) { HANDLE_CODE(unpack_enum(ce_pdsch_pusch_max_bw_r14, bref)); } if (ce_retuning_symbols_r14_present) { HANDLE_CODE(unpack_enum(ce_retuning_symbols_r14, bref)); } if (mimo_ue_params_v1430_present) { HANDLE_CODE(mimo_ue_params_v1430.unpack(bref)); } if (fe_mbms_unicast_params_r14_present) { HANDLE_CODE(fe_mbms_unicast_params_r14.unpack(bref)); } return SRSASN_SUCCESS; } void phy_layer_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (ce_pusch_nb_max_tbs_r14_present) { j.write_str("ce-PUSCH-NB-MaxTBS-r14", "supported"); } if (ce_pdsch_pusch_max_bw_r14_present) { j.write_str("ce-PDSCH-PUSCH-MaxBandwidth-r14", ce_pdsch_pusch_max_bw_r14.to_string()); } if (ce_harq_ack_bundling_r14_present) { j.write_str("ce-HARQ-AckBundling-r14", "supported"); } if (ce_pdsch_ten_processes_r14_present) { j.write_str("ce-PDSCH-TenProcesses-r14", "supported"); } if (ce_retuning_symbols_r14_present) { j.write_str("ce-RetuningSymbols-r14", ce_retuning_symbols_r14.to_string()); } if (ce_pdsch_pusch_enhancement_r14_present) { j.write_str("ce-PDSCH-PUSCH-Enhancement-r14", "supported"); } if (ce_sched_enhancement_r14_present) { j.write_str("ce-SchedulingEnhancement-r14", "supported"); } if (ce_srs_enhancement_r14_present) { j.write_str("ce-SRS-Enhancement-r14", "supported"); } if (ce_pucch_enhancement_r14_present) { j.write_str("ce-PUCCH-Enhancement-r14", "supported"); } if (ce_closed_loop_tx_ant_sel_r14_present) { j.write_str("ce-ClosedLoopTxAntennaSelection-r14", "supported"); } if (tdd_special_sf_r14_present) { j.write_str("tdd-SpecialSubframe-r14", "supported"); } if (tdd_tti_bundling_r14_present) { j.write_str("tdd-TTI-Bundling-r14", "supported"); } if (dmrs_less_up_pts_r14_present) { j.write_str("dmrs-LessUpPTS-r14", "supported"); } if (mimo_ue_params_v1430_present) { j.write_fieldname("mimo-UE-Parameters-v1430"); mimo_ue_params_v1430.to_json(j); } if (alternative_tbs_idx_r14_present) { j.write_str("alternativeTBS-Index-r14", "supported"); } if (fe_mbms_unicast_params_r14_present) { j.write_fieldname("feMBMS-Unicast-Parameters-r14"); fe_mbms_unicast_params_r14.to_json(j); } j.end_obj(); } // PhyLayerParameters-v1470 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mimo_ue_params_v1470_present, 1)); HANDLE_CODE(bref.pack(srs_up_pts_minus6sym_r14_present, 1)); if (mimo_ue_params_v1470_present) { HANDLE_CODE(mimo_ue_params_v1470.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mimo_ue_params_v1470_present, 1)); HANDLE_CODE(bref.unpack(srs_up_pts_minus6sym_r14_present, 1)); if (mimo_ue_params_v1470_present) { HANDLE_CODE(mimo_ue_params_v1470.unpack(bref)); } return SRSASN_SUCCESS; } void phy_layer_params_v1470_s::to_json(json_writer& j) const { j.start_obj(); if (mimo_ue_params_v1470_present) { j.write_fieldname("mimo-UE-Parameters-v1470"); mimo_ue_params_v1470.to_json(j); } if (srs_up_pts_minus6sym_r14_present) { j.write_str("srs-UpPTS-6sym-r14", "supported"); } j.end_obj(); } // PhyLayerParameters-v1530 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(stti_spt_capabilities_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15_present, 1)); HANDLE_CODE(bref.pack(short_cqi_for_scell_activation_r15_present, 1)); HANDLE_CODE(bref.pack(mimo_cbsr_advanced_csi_r15_present, 1)); HANDLE_CODE(bref.pack(crs_intf_mitig_r15_present, 1)); HANDLE_CODE(bref.pack(ul_pwr_ctrl_enhance_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15_present, 1)); HANDLE_CODE(bref.pack(alt_mcs_table_r15_present, 1)); if (stti_spt_capabilities_r15_present) { HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.aperiodic_csi_report_stti_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.dmrs_based_spdcch_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.dmrs_based_spdcch_non_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.dmrs_position_pattern_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.dmrs_sharing_subslot_pdsch_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.dmrs_repeat_subslot_pdsch_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.epdcch_spt_different_cells_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.epdcch_stti_different_cells_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.max_layers_slot_or_subslot_pusch_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.max_num_updated_csi_proc_spt_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb77_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb27_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set1_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set2_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.mimo_ue_params_stti_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.mimo_ue_params_stti_v1530_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.nof_blind_decodes_uss_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.pdsch_slot_subslot_pdsch_decoding_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.pwr_uci_slot_pusch_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.pwr_uci_subslot_pusch_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.slot_pdsch_tx_div_tm9and10_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.subslot_pdsch_tx_div_tm9and10_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.spdcch_different_rs_types_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.srs_dci7_triggering_fs2_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.sps_cyclic_shift_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.spdcch_reuse_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.sps_stti_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.tm8_slot_pdsch_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.tm9_slot_subslot_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.tm9_slot_subslot_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.tm10_slot_subslot_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.tm10_slot_subslot_mbsfn_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.tx_div_spucch_r15_present, 1)); HANDLE_CODE(bref.pack(stti_spt_capabilities_r15.ul_async_harq_sharing_diff_tti_lens_r15_present, 1)); if (stti_spt_capabilities_r15.max_layers_slot_or_subslot_pusch_r15_present) { HANDLE_CODE(pack_enum(bref, stti_spt_capabilities_r15.max_layers_slot_or_subslot_pusch_r15)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_spt_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, stti_spt_capabilities_r15.max_num_updated_csi_proc_spt_r15, (uint8_t)5, (uint8_t)32)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb77_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb77_r15, (uint8_t)1, (uint8_t)32)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb27_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb27_r15, (uint8_t)1, (uint8_t)32)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set1_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set1_r15, (uint8_t)1, (uint8_t)32)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set2_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set2_r15, (uint8_t)1, (uint8_t)32)); } if (stti_spt_capabilities_r15.mimo_ue_params_stti_r15_present) { HANDLE_CODE(stti_spt_capabilities_r15.mimo_ue_params_stti_r15.pack(bref)); } if (stti_spt_capabilities_r15.mimo_ue_params_stti_v1530_present) { HANDLE_CODE(stti_spt_capabilities_r15.mimo_ue_params_stti_v1530.pack(bref)); } if (stti_spt_capabilities_r15.nof_blind_decodes_uss_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, stti_spt_capabilities_r15.nof_blind_decodes_uss_r15, (uint8_t)4, (uint8_t)32)); } if (stti_spt_capabilities_r15.sps_stti_r15_present) { HANDLE_CODE(pack_enum(bref, stti_spt_capabilities_r15.sps_stti_r15)); } } if (ce_capabilities_r15_present) { HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_crs_intf_mitig_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_cqi_alternative_table_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_pdsch_flex_start_prb_ce_mode_a_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_pdsch_flex_start_prb_ce_mode_b_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_pdsch_minus64_qam_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_pusch_flex_start_prb_ce_mode_a_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_pusch_flex_start_prb_ce_mode_b_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_pusch_sub_prb_alloc_r15_present, 1)); HANDLE_CODE(bref.pack(ce_capabilities_r15.ce_ul_harq_ack_feedback_r15_present, 1)); } if (urllc_capabilities_r15_present) { HANDLE_CODE(bref.pack(urllc_capabilities_r15.pdsch_rep_sf_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pdsch_rep_slot_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pdsch_rep_subslot_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_multi_cfg_sf_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_max_cfg_sf_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_multi_cfg_slot_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_max_cfg_slot_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_multi_cfg_subslot_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_max_cfg_subslot_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_slot_rep_pcell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_slot_rep_ps_cell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_slot_rep_scell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_sf_rep_pcell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_sf_rep_ps_cell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_sf_rep_scell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_subslot_rep_pcell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_subslot_rep_ps_cell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.pusch_sps_subslot_rep_scell_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.semi_static_cfi_r15_present, 1)); HANDLE_CODE(bref.pack(urllc_capabilities_r15.semi_static_cfi_pattern_r15_present, 1)); if (urllc_capabilities_r15.pusch_sps_multi_cfg_sf_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, urllc_capabilities_r15.pusch_sps_multi_cfg_sf_r15, (uint8_t)0, (uint8_t)6)); } if (urllc_capabilities_r15.pusch_sps_max_cfg_sf_r15_present) { HANDLE_CODE(pack_unalign_integer(bref, urllc_capabilities_r15.pusch_sps_max_cfg_sf_r15, (uint8_t)0, (uint8_t)31)); } if (urllc_capabilities_r15.pusch_sps_multi_cfg_slot_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, urllc_capabilities_r15.pusch_sps_multi_cfg_slot_r15, (uint8_t)0, (uint8_t)6)); } if (urllc_capabilities_r15.pusch_sps_max_cfg_slot_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, urllc_capabilities_r15.pusch_sps_max_cfg_slot_r15, (uint8_t)0, (uint8_t)31)); } if (urllc_capabilities_r15.pusch_sps_multi_cfg_subslot_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, urllc_capabilities_r15.pusch_sps_multi_cfg_subslot_r15, (uint8_t)0, (uint8_t)6)); } if (urllc_capabilities_r15.pusch_sps_max_cfg_subslot_r15_present) { HANDLE_CODE( pack_unalign_integer(bref, urllc_capabilities_r15.pusch_sps_max_cfg_subslot_r15, (uint8_t)0, (uint8_t)31)); } } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15_present, 1)); HANDLE_CODE(bref.unpack(short_cqi_for_scell_activation_r15_present, 1)); HANDLE_CODE(bref.unpack(mimo_cbsr_advanced_csi_r15_present, 1)); HANDLE_CODE(bref.unpack(crs_intf_mitig_r15_present, 1)); HANDLE_CODE(bref.unpack(ul_pwr_ctrl_enhance_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15_present, 1)); HANDLE_CODE(bref.unpack(alt_mcs_table_r15_present, 1)); if (stti_spt_capabilities_r15_present) { HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.aperiodic_csi_report_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.dmrs_based_spdcch_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.dmrs_based_spdcch_non_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.dmrs_position_pattern_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.dmrs_sharing_subslot_pdsch_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.dmrs_repeat_subslot_pdsch_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.epdcch_spt_different_cells_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.epdcch_stti_different_cells_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.max_layers_slot_or_subslot_pusch_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.max_num_updated_csi_proc_spt_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb77_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb27_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set1_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set2_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.mimo_ue_params_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.mimo_ue_params_stti_v1530_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.nof_blind_decodes_uss_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.pdsch_slot_subslot_pdsch_decoding_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.pwr_uci_slot_pusch_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.pwr_uci_subslot_pusch_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.slot_pdsch_tx_div_tm9and10_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.subslot_pdsch_tx_div_tm9and10_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.spdcch_different_rs_types_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.srs_dci7_triggering_fs2_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.sps_cyclic_shift_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.spdcch_reuse_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.sps_stti_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.tm8_slot_pdsch_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.tm9_slot_subslot_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.tm9_slot_subslot_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.tm10_slot_subslot_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.tm10_slot_subslot_mbsfn_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.tx_div_spucch_r15_present, 1)); HANDLE_CODE(bref.unpack(stti_spt_capabilities_r15.ul_async_harq_sharing_diff_tti_lens_r15_present, 1)); if (stti_spt_capabilities_r15.max_layers_slot_or_subslot_pusch_r15_present) { HANDLE_CODE(unpack_enum(stti_spt_capabilities_r15.max_layers_slot_or_subslot_pusch_r15, bref)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_spt_r15_present) { HANDLE_CODE(unpack_unalign_integer(stti_spt_capabilities_r15.max_num_updated_csi_proc_spt_r15, bref, (uint8_t)5, (uint8_t)32)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb77_r15_present) { HANDLE_CODE(unpack_unalign_integer(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb77_r15, bref, (uint8_t)1, (uint8_t)32)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb27_r15_present) { HANDLE_CODE(unpack_unalign_integer(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb27_r15, bref, (uint8_t)1, (uint8_t)32)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set1_r15_present) { HANDLE_CODE(unpack_unalign_integer(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set1_r15, bref, (uint8_t)1, (uint8_t)32)); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set2_r15_present) { HANDLE_CODE(unpack_unalign_integer(stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set2_r15, bref, (uint8_t)1, (uint8_t)32)); } if (stti_spt_capabilities_r15.mimo_ue_params_stti_r15_present) { HANDLE_CODE(stti_spt_capabilities_r15.mimo_ue_params_stti_r15.unpack(bref)); } if (stti_spt_capabilities_r15.mimo_ue_params_stti_v1530_present) { HANDLE_CODE(stti_spt_capabilities_r15.mimo_ue_params_stti_v1530.unpack(bref)); } if (stti_spt_capabilities_r15.nof_blind_decodes_uss_r15_present) { HANDLE_CODE( unpack_unalign_integer(stti_spt_capabilities_r15.nof_blind_decodes_uss_r15, bref, (uint8_t)4, (uint8_t)32)); } if (stti_spt_capabilities_r15.sps_stti_r15_present) { HANDLE_CODE(unpack_enum(stti_spt_capabilities_r15.sps_stti_r15, bref)); } } if (ce_capabilities_r15_present) { HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_crs_intf_mitig_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_cqi_alternative_table_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_pdsch_flex_start_prb_ce_mode_a_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_pdsch_flex_start_prb_ce_mode_b_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_pdsch_minus64_qam_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_pusch_flex_start_prb_ce_mode_a_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_pusch_flex_start_prb_ce_mode_b_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_pusch_sub_prb_alloc_r15_present, 1)); HANDLE_CODE(bref.unpack(ce_capabilities_r15.ce_ul_harq_ack_feedback_r15_present, 1)); } if (urllc_capabilities_r15_present) { HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pdsch_rep_sf_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pdsch_rep_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pdsch_rep_subslot_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_multi_cfg_sf_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_max_cfg_sf_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_multi_cfg_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_max_cfg_slot_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_multi_cfg_subslot_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_max_cfg_subslot_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_slot_rep_pcell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_slot_rep_ps_cell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_slot_rep_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_sf_rep_pcell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_sf_rep_ps_cell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_sf_rep_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_subslot_rep_pcell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_subslot_rep_ps_cell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.pusch_sps_subslot_rep_scell_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.semi_static_cfi_r15_present, 1)); HANDLE_CODE(bref.unpack(urllc_capabilities_r15.semi_static_cfi_pattern_r15_present, 1)); if (urllc_capabilities_r15.pusch_sps_multi_cfg_sf_r15_present) { HANDLE_CODE( unpack_unalign_integer(urllc_capabilities_r15.pusch_sps_multi_cfg_sf_r15, bref, (uint8_t)0, (uint8_t)6)); } if (urllc_capabilities_r15.pusch_sps_max_cfg_sf_r15_present) { HANDLE_CODE( unpack_unalign_integer(urllc_capabilities_r15.pusch_sps_max_cfg_sf_r15, bref, (uint8_t)0, (uint8_t)31)); } if (urllc_capabilities_r15.pusch_sps_multi_cfg_slot_r15_present) { HANDLE_CODE( unpack_unalign_integer(urllc_capabilities_r15.pusch_sps_multi_cfg_slot_r15, bref, (uint8_t)0, (uint8_t)6)); } if (urllc_capabilities_r15.pusch_sps_max_cfg_slot_r15_present) { HANDLE_CODE( unpack_unalign_integer(urllc_capabilities_r15.pusch_sps_max_cfg_slot_r15, bref, (uint8_t)0, (uint8_t)31)); } if (urllc_capabilities_r15.pusch_sps_multi_cfg_subslot_r15_present) { HANDLE_CODE( unpack_unalign_integer(urllc_capabilities_r15.pusch_sps_multi_cfg_subslot_r15, bref, (uint8_t)0, (uint8_t)6)); } if (urllc_capabilities_r15.pusch_sps_max_cfg_subslot_r15_present) { HANDLE_CODE( unpack_unalign_integer(urllc_capabilities_r15.pusch_sps_max_cfg_subslot_r15, bref, (uint8_t)0, (uint8_t)31)); } } return SRSASN_SUCCESS; } void phy_layer_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (stti_spt_capabilities_r15_present) { j.write_fieldname("stti-SPT-Capabilities-r15"); j.start_obj(); if (stti_spt_capabilities_r15.aperiodic_csi_report_stti_r15_present) { j.write_str("aperiodicCsi-ReportingSTTI-r15", "supported"); } if (stti_spt_capabilities_r15.dmrs_based_spdcch_mbsfn_r15_present) { j.write_str("dmrs-BasedSPDCCH-MBSFN-r15", "supported"); } if (stti_spt_capabilities_r15.dmrs_based_spdcch_non_mbsfn_r15_present) { j.write_str("dmrs-BasedSPDCCH-nonMBSFN-r15", "supported"); } if (stti_spt_capabilities_r15.dmrs_position_pattern_r15_present) { j.write_str("dmrs-PositionPattern-r15", "supported"); } if (stti_spt_capabilities_r15.dmrs_sharing_subslot_pdsch_r15_present) { j.write_str("dmrs-SharingSubslotPDSCH-r15", "supported"); } if (stti_spt_capabilities_r15.dmrs_repeat_subslot_pdsch_r15_present) { j.write_str("dmrs-RepetitionSubslotPDSCH-r15", "supported"); } if (stti_spt_capabilities_r15.epdcch_spt_different_cells_r15_present) { j.write_str("epdcch-SPT-differentCells-r15", "supported"); } if (stti_spt_capabilities_r15.epdcch_stti_different_cells_r15_present) { j.write_str("epdcch-STTI-differentCells-r15", "supported"); } if (stti_spt_capabilities_r15.max_layers_slot_or_subslot_pusch_r15_present) { j.write_str("maxLayersSlotOrSubslotPUSCH-r15", stti_spt_capabilities_r15.max_layers_slot_or_subslot_pusch_r15.to_string()); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_spt_r15_present) { j.write_int("maxNumberUpdatedCSI-Proc-SPT-r15", stti_spt_capabilities_r15.max_num_updated_csi_proc_spt_r15); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb77_r15_present) { j.write_int("maxNumberUpdatedCSI-Proc-STTI-Comb77-r15", stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb77_r15); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb27_r15_present) { j.write_int("maxNumberUpdatedCSI-Proc-STTI-Comb27-r15", stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb27_r15); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set1_r15_present) { j.write_int("maxNumberUpdatedCSI-Proc-STTI-Comb22-Set1-r15", stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set1_r15); } if (stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set2_r15_present) { j.write_int("maxNumberUpdatedCSI-Proc-STTI-Comb22-Set2-r15", stti_spt_capabilities_r15.max_num_updated_csi_proc_stti_comb22_set2_r15); } if (stti_spt_capabilities_r15.mimo_ue_params_stti_r15_present) { j.write_fieldname("mimo-UE-ParametersSTTI-r15"); stti_spt_capabilities_r15.mimo_ue_params_stti_r15.to_json(j); } if (stti_spt_capabilities_r15.mimo_ue_params_stti_v1530_present) { j.write_fieldname("mimo-UE-ParametersSTTI-v1530"); stti_spt_capabilities_r15.mimo_ue_params_stti_v1530.to_json(j); } if (stti_spt_capabilities_r15.nof_blind_decodes_uss_r15_present) { j.write_int("numberOfBlindDecodesUSS-r15", stti_spt_capabilities_r15.nof_blind_decodes_uss_r15); } if (stti_spt_capabilities_r15.pdsch_slot_subslot_pdsch_decoding_r15_present) { j.write_str("pdsch-SlotSubslotPDSCH-Decoding-r15", "supported"); } if (stti_spt_capabilities_r15.pwr_uci_slot_pusch_present) { j.write_str("powerUCI-SlotPUSCH", "supported"); } if (stti_spt_capabilities_r15.pwr_uci_subslot_pusch_present) { j.write_str("powerUCI-SubslotPUSCH", "supported"); } if (stti_spt_capabilities_r15.slot_pdsch_tx_div_tm9and10_present) { j.write_str("slotPDSCH-TxDiv-TM9and10", "supported"); } if (stti_spt_capabilities_r15.subslot_pdsch_tx_div_tm9and10_present) { j.write_str("subslotPDSCH-TxDiv-TM9and10", "supported"); } if (stti_spt_capabilities_r15.spdcch_different_rs_types_r15_present) { j.write_str("spdcch-differentRS-types-r15", "supported"); } if (stti_spt_capabilities_r15.srs_dci7_triggering_fs2_r15_present) { j.write_str("srs-DCI7-TriggeringFS2-r15", "supported"); } if (stti_spt_capabilities_r15.sps_cyclic_shift_r15_present) { j.write_str("sps-cyclicShift-r15", "supported"); } if (stti_spt_capabilities_r15.spdcch_reuse_r15_present) { j.write_str("spdcch-Reuse-r15", "supported"); } if (stti_spt_capabilities_r15.sps_stti_r15_present) { j.write_str("sps-STTI-r15", stti_spt_capabilities_r15.sps_stti_r15.to_string()); } if (stti_spt_capabilities_r15.tm8_slot_pdsch_r15_present) { j.write_str("tm8-slotPDSCH-r15", "supported"); } if (stti_spt_capabilities_r15.tm9_slot_subslot_r15_present) { j.write_str("tm9-slotSubslot-r15", "supported"); } if (stti_spt_capabilities_r15.tm9_slot_subslot_mbsfn_r15_present) { j.write_str("tm9-slotSubslotMBSFN-r15", "supported"); } if (stti_spt_capabilities_r15.tm10_slot_subslot_r15_present) { j.write_str("tm10-slotSubslot-r15", "supported"); } if (stti_spt_capabilities_r15.tm10_slot_subslot_mbsfn_r15_present) { j.write_str("tm10-slotSubslotMBSFN-r15", "supported"); } if (stti_spt_capabilities_r15.tx_div_spucch_r15_present) { j.write_str("txDiv-SPUCCH-r15", "supported"); } if (stti_spt_capabilities_r15.ul_async_harq_sharing_diff_tti_lens_r15_present) { j.write_str("ul-AsyncHarqSharingDiff-TTI-Lengths-r15", "supported"); } j.end_obj(); } if (ce_capabilities_r15_present) { j.write_fieldname("ce-Capabilities-r15"); j.start_obj(); if (ce_capabilities_r15.ce_crs_intf_mitig_r15_present) { j.write_str("ce-CRS-IntfMitig-r15", "supported"); } if (ce_capabilities_r15.ce_cqi_alternative_table_r15_present) { j.write_str("ce-CQI-AlternativeTable-r15", "supported"); } if (ce_capabilities_r15.ce_pdsch_flex_start_prb_ce_mode_a_r15_present) { j.write_str("ce-PDSCH-FlexibleStartPRB-CE-ModeA-r15", "supported"); } if (ce_capabilities_r15.ce_pdsch_flex_start_prb_ce_mode_b_r15_present) { j.write_str("ce-PDSCH-FlexibleStartPRB-CE-ModeB-r15", "supported"); } if (ce_capabilities_r15.ce_pdsch_minus64_qam_r15_present) { j.write_str("ce-PDSCH-64QAM-r15", "supported"); } if (ce_capabilities_r15.ce_pusch_flex_start_prb_ce_mode_a_r15_present) { j.write_str("ce-PUSCH-FlexibleStartPRB-CE-ModeA-r15", "supported"); } if (ce_capabilities_r15.ce_pusch_flex_start_prb_ce_mode_b_r15_present) { j.write_str("ce-PUSCH-FlexibleStartPRB-CE-ModeB-r15", "supported"); } if (ce_capabilities_r15.ce_pusch_sub_prb_alloc_r15_present) { j.write_str("ce-PUSCH-SubPRB-Allocation-r15", "supported"); } if (ce_capabilities_r15.ce_ul_harq_ack_feedback_r15_present) { j.write_str("ce-UL-HARQ-ACK-Feedback-r15", "supported"); } j.end_obj(); } if (short_cqi_for_scell_activation_r15_present) { j.write_str("shortCQI-ForSCellActivation-r15", "supported"); } if (mimo_cbsr_advanced_csi_r15_present) { j.write_str("mimo-CBSR-AdvancedCSI-r15", "supported"); } if (crs_intf_mitig_r15_present) { j.write_str("crs-IntfMitig-r15", "supported"); } if (ul_pwr_ctrl_enhance_r15_present) { j.write_str("ul-PowerControlEnhancements-r15", "supported"); } if (urllc_capabilities_r15_present) { j.write_fieldname("urllc-Capabilities-r15"); j.start_obj(); if (urllc_capabilities_r15.pdsch_rep_sf_r15_present) { j.write_str("pdsch-RepSubframe-r15", "supported"); } if (urllc_capabilities_r15.pdsch_rep_slot_r15_present) { j.write_str("pdsch-RepSlot-r15", "supported"); } if (urllc_capabilities_r15.pdsch_rep_subslot_r15_present) { j.write_str("pdsch-RepSubslot-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_multi_cfg_sf_r15_present) { j.write_int("pusch-SPS-MultiConfigSubframe-r15", urllc_capabilities_r15.pusch_sps_multi_cfg_sf_r15); } if (urllc_capabilities_r15.pusch_sps_max_cfg_sf_r15_present) { j.write_int("pusch-SPS-MaxConfigSubframe-r15", urllc_capabilities_r15.pusch_sps_max_cfg_sf_r15); } if (urllc_capabilities_r15.pusch_sps_multi_cfg_slot_r15_present) { j.write_int("pusch-SPS-MultiConfigSlot-r15", urllc_capabilities_r15.pusch_sps_multi_cfg_slot_r15); } if (urllc_capabilities_r15.pusch_sps_max_cfg_slot_r15_present) { j.write_int("pusch-SPS-MaxConfigSlot-r15", urllc_capabilities_r15.pusch_sps_max_cfg_slot_r15); } if (urllc_capabilities_r15.pusch_sps_multi_cfg_subslot_r15_present) { j.write_int("pusch-SPS-MultiConfigSubslot-r15", urllc_capabilities_r15.pusch_sps_multi_cfg_subslot_r15); } if (urllc_capabilities_r15.pusch_sps_max_cfg_subslot_r15_present) { j.write_int("pusch-SPS-MaxConfigSubslot-r15", urllc_capabilities_r15.pusch_sps_max_cfg_subslot_r15); } if (urllc_capabilities_r15.pusch_sps_slot_rep_pcell_r15_present) { j.write_str("pusch-SPS-SlotRepPCell-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_slot_rep_ps_cell_r15_present) { j.write_str("pusch-SPS-SlotRepPSCell-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_slot_rep_scell_r15_present) { j.write_str("pusch-SPS-SlotRepSCell-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_sf_rep_pcell_r15_present) { j.write_str("pusch-SPS-SubframeRepPCell-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_sf_rep_ps_cell_r15_present) { j.write_str("pusch-SPS-SubframeRepPSCell-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_sf_rep_scell_r15_present) { j.write_str("pusch-SPS-SubframeRepSCell-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_subslot_rep_pcell_r15_present) { j.write_str("pusch-SPS-SubslotRepPCell-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_subslot_rep_ps_cell_r15_present) { j.write_str("pusch-SPS-SubslotRepPSCell-r15", "supported"); } if (urllc_capabilities_r15.pusch_sps_subslot_rep_scell_r15_present) { j.write_str("pusch-SPS-SubslotRepSCell-r15", "supported"); } if (urllc_capabilities_r15.semi_static_cfi_r15_present) { j.write_str("semiStaticCFI-r15", "supported"); } if (urllc_capabilities_r15.semi_static_cfi_pattern_r15_present) { j.write_str("semiStaticCFI-Pattern-r15", "supported"); } j.end_obj(); } if (alt_mcs_table_r15_present) { j.write_str("altMCS-Table-r15", "supported"); } j.end_obj(); } // SupportedBandEUTRA ::= SEQUENCE SRSASN_CODE supported_band_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, band_eutra, (uint8_t)1, (uint8_t)64)); HANDLE_CODE(bref.pack(half_duplex, 1)); return SRSASN_SUCCESS; } SRSASN_CODE supported_band_eutra_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(band_eutra, bref, (uint8_t)1, (uint8_t)64)); HANDLE_CODE(bref.unpack(half_duplex, 1)); return SRSASN_SUCCESS; } void supported_band_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("bandEUTRA", band_eutra); j.write_bool("halfDuplex", half_duplex); j.end_obj(); } // RF-Parameters ::= SEQUENCE SRSASN_CODE rf_params_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_eutra, 1, 64)); return SRSASN_SUCCESS; } SRSASN_CODE rf_params_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_eutra, bref, 1, 64)); return SRSASN_SUCCESS; } void rf_params_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandListEUTRA"); for (uint32_t i1 = 0; i1 < supported_band_list_eutra.size(); ++i1) { supported_band_list_eutra[i1].to_json(j); } j.end_array(); j.end_obj(); } // RF-Parameters-v1020 ::= SEQUENCE SRSASN_CODE rf_params_v1020_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_r10, 1, 128, SeqOfPacker(1, 64, Packer()))); return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1020_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_r10, bref, 1, 128, SeqOfPacker(1, 64, Packer()))); return SRSASN_SUCCESS; } void rf_params_v1020_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandCombination-r10"); for (uint32_t i1 = 0; i1 < supported_band_combination_r10.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < supported_band_combination_r10[i1].size(); ++i2) { supported_band_combination_r10[i1][i2].to_json(j); } j.end_array(); } j.end_array(); j.end_obj(); } // RF-Parameters-v1060 ::= SEQUENCE SRSASN_CODE rf_params_v1060_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_ext_r10, 1, 128)); return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1060_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_ext_r10, bref, 1, 128)); return SRSASN_SUCCESS; } void rf_params_v1060_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("supportedBandCombinationExt-r10"); for (uint32_t i1 = 0; i1 < supported_band_combination_ext_r10.size(); ++i1) { supported_band_combination_ext_r10[i1].to_json(j); } j.end_array(); j.end_obj(); } // RF-Parameters-v1090 ::= SEQUENCE SRSASN_CODE rf_params_v1090_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v1090_present, 1)); if (supported_band_combination_v1090_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1090, 1, 128, SeqOfPacker(1, 64, Packer()))); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1090_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v1090_present, 1)); if (supported_band_combination_v1090_present) { HANDLE_CODE( unpack_dyn_seq_of(supported_band_combination_v1090, bref, 1, 128, SeqOfPacker(1, 64, Packer()))); } return SRSASN_SUCCESS; } void rf_params_v1090_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v1090_present) { j.start_array("supportedBandCombination-v1090"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1090.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < supported_band_combination_v1090[i1].size(); ++i2) { supported_band_combination_v1090[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } j.end_obj(); } // RF-Parameters-v10i0 ::= SEQUENCE SRSASN_CODE rf_params_v10i0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v10i0_present, 1)); if (supported_band_combination_v10i0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v10i0, 1, 128)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v10i0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v10i0_present, 1)); if (supported_band_combination_v10i0_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v10i0, bref, 1, 128)); } return SRSASN_SUCCESS; } void rf_params_v10i0_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v10i0_present) { j.start_array("supportedBandCombination-v10i0"); for (uint32_t i1 = 0; i1 < supported_band_combination_v10i0.size(); ++i1) { supported_band_combination_v10i0[i1].to_json(j); } j.end_array(); } j.end_obj(); } // RF-Parameters-v1130 ::= SEQUENCE SRSASN_CODE rf_params_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v1130_present, 1)); if (supported_band_combination_v1130_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1130, 1, 128)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v1130_present, 1)); if (supported_band_combination_v1130_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1130, bref, 1, 128)); } return SRSASN_SUCCESS; } void rf_params_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v1130_present) { j.start_array("supportedBandCombination-v1130"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1130.size(); ++i1) { supported_band_combination_v1130[i1].to_json(j); } j.end_array(); } j.end_obj(); } // RF-Parameters-v1180 ::= SEQUENCE SRSASN_CODE rf_params_v1180_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_retrieval_r11_present, 1)); HANDLE_CODE(bref.pack(requested_bands_r11_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_r11_present, 1)); if (requested_bands_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, requested_bands_r11, 1, 64, UnalignedIntegerPacker(1, 256))); } if (supported_band_combination_add_r11_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_r11, 1, 256)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1180_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_retrieval_r11_present, 1)); HANDLE_CODE(bref.unpack(requested_bands_r11_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_r11_present, 1)); if (requested_bands_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(requested_bands_r11, bref, 1, 64, UnalignedIntegerPacker(1, 256))); } if (supported_band_combination_add_r11_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_r11, bref, 1, 256)); } return SRSASN_SUCCESS; } void rf_params_v1180_s::to_json(json_writer& j) const { j.start_obj(); if (freq_band_retrieval_r11_present) { j.write_str("freqBandRetrieval-r11", "supported"); } if (requested_bands_r11_present) { j.start_array("requestedBands-r11"); for (uint32_t i1 = 0; i1 < requested_bands_r11.size(); ++i1) { j.write_int(requested_bands_r11[i1]); } j.end_array(); } if (supported_band_combination_add_r11_present) { j.start_array("supportedBandCombinationAdd-r11"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_r11.size(); ++i1) { supported_band_combination_add_r11[i1].to_json(j); } j.end_array(); } j.end_obj(); } // RF-Parameters-v11d0 ::= SEQUENCE SRSASN_CODE rf_params_v11d0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_add_v11d0_present, 1)); if (supported_band_combination_add_v11d0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v11d0, 1, 256)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v11d0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_add_v11d0_present, 1)); if (supported_band_combination_add_v11d0_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v11d0, bref, 1, 256)); } return SRSASN_SUCCESS; } void rf_params_v11d0_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_add_v11d0_present) { j.start_array("supportedBandCombinationAdd-v11d0"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v11d0.size(); ++i1) { supported_band_combination_add_v11d0[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SupportedBandEUTRA-v1250 ::= SEQUENCE SRSASN_CODE supported_band_eutra_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dl_minus256_qam_r12_present, 1)); HANDLE_CODE(bref.pack(ul_minus64_qam_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE supported_band_eutra_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dl_minus256_qam_r12_present, 1)); HANDLE_CODE(bref.unpack(ul_minus64_qam_r12_present, 1)); return SRSASN_SUCCESS; } void supported_band_eutra_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (dl_minus256_qam_r12_present) { j.write_str("dl-256QAM-r12", "supported"); } if (ul_minus64_qam_r12_present) { j.write_str("ul-64QAM-r12", "supported"); } j.end_obj(); } // RF-Parameters-v1250 ::= SEQUENCE SRSASN_CODE rf_params_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_list_eutra_v1250_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_v1250_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1250_present, 1)); HANDLE_CODE(bref.pack(freq_band_prio_adjustment_r12_present, 1)); if (supported_band_list_eutra_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_eutra_v1250, 1, 64)); } if (supported_band_combination_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1250, 1, 128)); } if (supported_band_combination_add_v1250_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1250, 1, 256)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_list_eutra_v1250_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_v1250_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1250_present, 1)); HANDLE_CODE(bref.unpack(freq_band_prio_adjustment_r12_present, 1)); if (supported_band_list_eutra_v1250_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_eutra_v1250, bref, 1, 64)); } if (supported_band_combination_v1250_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1250, bref, 1, 128)); } if (supported_band_combination_add_v1250_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1250, bref, 1, 256)); } return SRSASN_SUCCESS; } void rf_params_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_list_eutra_v1250_present) { j.start_array("supportedBandListEUTRA-v1250"); for (uint32_t i1 = 0; i1 < supported_band_list_eutra_v1250.size(); ++i1) { supported_band_list_eutra_v1250[i1].to_json(j); } j.end_array(); } if (supported_band_combination_v1250_present) { j.start_array("supportedBandCombination-v1250"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1250.size(); ++i1) { supported_band_combination_v1250[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1250_present) { j.start_array("supportedBandCombinationAdd-v1250"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1250.size(); ++i1) { supported_band_combination_add_v1250[i1].to_json(j); } j.end_array(); } if (freq_band_prio_adjustment_r12_present) { j.write_str("freqBandPriorityAdjustment-r12", "supported"); } j.end_obj(); } // RF-Parameters-v1270 ::= SEQUENCE SRSASN_CODE rf_params_v1270_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v1270_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1270_present, 1)); if (supported_band_combination_v1270_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1270, 1, 128)); } if (supported_band_combination_add_v1270_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1270, 1, 256)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1270_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v1270_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1270_present, 1)); if (supported_band_combination_v1270_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1270, bref, 1, 128)); } if (supported_band_combination_add_v1270_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1270, bref, 1, 256)); } return SRSASN_SUCCESS; } void rf_params_v1270_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v1270_present) { j.start_array("supportedBandCombination-v1270"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1270.size(); ++i1) { supported_band_combination_v1270[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1270_present) { j.start_array("supportedBandCombinationAdd-v1270"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1270.size(); ++i1) { supported_band_combination_add_v1270[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SupportedBandEUTRA-v1310 ::= SEQUENCE SRSASN_CODE supported_band_eutra_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_pwr_class_minus5_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE supported_band_eutra_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_pwr_class_minus5_r13_present, 1)); return SRSASN_SUCCESS; } void supported_band_eutra_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (ue_pwr_class_minus5_r13_present) { j.write_str("ue-PowerClass-5-r13", "supported"); } j.end_obj(); } // RF-Parameters-v1310 ::= SEQUENCE SRSASN_CODE rf_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(e_nb_requested_params_r13_present, 1)); HANDLE_CODE(bref.pack(maximum_ccs_retrieval_r13_present, 1)); HANDLE_CODE(bref.pack(skip_fallback_combinations_r13_present, 1)); HANDLE_CODE(bref.pack(reduced_int_non_cont_comb_r13_present, 1)); HANDLE_CODE(bref.pack(supported_band_list_eutra_v1310_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_reduced_r13_present, 1)); if (e_nb_requested_params_r13_present) { HANDLE_CODE(bref.pack(e_nb_requested_params_r13.reduced_int_non_cont_comb_requested_r13_present, 1)); HANDLE_CODE(bref.pack(e_nb_requested_params_r13.requested_ccs_dl_r13_present, 1)); HANDLE_CODE(bref.pack(e_nb_requested_params_r13.requested_ccs_ul_r13_present, 1)); HANDLE_CODE(bref.pack(e_nb_requested_params_r13.skip_fallback_comb_requested_r13_present, 1)); if (e_nb_requested_params_r13.requested_ccs_dl_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, e_nb_requested_params_r13.requested_ccs_dl_r13, (uint8_t)2, (uint8_t)32)); } if (e_nb_requested_params_r13.requested_ccs_ul_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, e_nb_requested_params_r13.requested_ccs_ul_r13, (uint8_t)2, (uint8_t)32)); } } if (supported_band_list_eutra_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_eutra_v1310, 1, 64)); } if (supported_band_combination_reduced_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_reduced_r13, 1, 384)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(e_nb_requested_params_r13_present, 1)); HANDLE_CODE(bref.unpack(maximum_ccs_retrieval_r13_present, 1)); HANDLE_CODE(bref.unpack(skip_fallback_combinations_r13_present, 1)); HANDLE_CODE(bref.unpack(reduced_int_non_cont_comb_r13_present, 1)); HANDLE_CODE(bref.unpack(supported_band_list_eutra_v1310_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_reduced_r13_present, 1)); if (e_nb_requested_params_r13_present) { HANDLE_CODE(bref.unpack(e_nb_requested_params_r13.reduced_int_non_cont_comb_requested_r13_present, 1)); HANDLE_CODE(bref.unpack(e_nb_requested_params_r13.requested_ccs_dl_r13_present, 1)); HANDLE_CODE(bref.unpack(e_nb_requested_params_r13.requested_ccs_ul_r13_present, 1)); HANDLE_CODE(bref.unpack(e_nb_requested_params_r13.skip_fallback_comb_requested_r13_present, 1)); if (e_nb_requested_params_r13.requested_ccs_dl_r13_present) { HANDLE_CODE( unpack_unalign_integer(e_nb_requested_params_r13.requested_ccs_dl_r13, bref, (uint8_t)2, (uint8_t)32)); } if (e_nb_requested_params_r13.requested_ccs_ul_r13_present) { HANDLE_CODE( unpack_unalign_integer(e_nb_requested_params_r13.requested_ccs_ul_r13, bref, (uint8_t)2, (uint8_t)32)); } } if (supported_band_list_eutra_v1310_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_eutra_v1310, bref, 1, 64)); } if (supported_band_combination_reduced_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_reduced_r13, bref, 1, 384)); } return SRSASN_SUCCESS; } void rf_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (e_nb_requested_params_r13_present) { j.write_fieldname("eNB-RequestedParameters-r13"); j.start_obj(); if (e_nb_requested_params_r13.reduced_int_non_cont_comb_requested_r13_present) { j.write_str("reducedIntNonContCombRequested-r13", "true"); } if (e_nb_requested_params_r13.requested_ccs_dl_r13_present) { j.write_int("requestedCCsDL-r13", e_nb_requested_params_r13.requested_ccs_dl_r13); } if (e_nb_requested_params_r13.requested_ccs_ul_r13_present) { j.write_int("requestedCCsUL-r13", e_nb_requested_params_r13.requested_ccs_ul_r13); } if (e_nb_requested_params_r13.skip_fallback_comb_requested_r13_present) { j.write_str("skipFallbackCombRequested-r13", "true"); } j.end_obj(); } if (maximum_ccs_retrieval_r13_present) { j.write_str("maximumCCsRetrieval-r13", "supported"); } if (skip_fallback_combinations_r13_present) { j.write_str("skipFallbackCombinations-r13", "supported"); } if (reduced_int_non_cont_comb_r13_present) { j.write_str("reducedIntNonContComb-r13", "supported"); } if (supported_band_list_eutra_v1310_present) { j.start_array("supportedBandListEUTRA-v1310"); for (uint32_t i1 = 0; i1 < supported_band_list_eutra_v1310.size(); ++i1) { supported_band_list_eutra_v1310[i1].to_json(j); } j.end_array(); } if (supported_band_combination_reduced_r13_present) { j.start_array("supportedBandCombinationReduced-r13"); for (uint32_t i1 = 0; i1 < supported_band_combination_reduced_r13.size(); ++i1) { supported_band_combination_reduced_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SupportedBandEUTRA-v1320 ::= SEQUENCE SRSASN_CODE supported_band_eutra_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(intra_freq_ce_need_for_gaps_r13_present, 1)); HANDLE_CODE(bref.pack(ue_pwr_class_n_r13_present, 1)); if (ue_pwr_class_n_r13_present) { HANDLE_CODE(pack_enum(bref, ue_pwr_class_n_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE supported_band_eutra_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(intra_freq_ce_need_for_gaps_r13_present, 1)); HANDLE_CODE(bref.unpack(ue_pwr_class_n_r13_present, 1)); if (ue_pwr_class_n_r13_present) { HANDLE_CODE(unpack_enum(ue_pwr_class_n_r13, bref)); } return SRSASN_SUCCESS; } void supported_band_eutra_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (intra_freq_ce_need_for_gaps_r13_present) { j.write_str("intraFreq-CE-NeedForGaps-r13", "supported"); } if (ue_pwr_class_n_r13_present) { j.write_str("ue-PowerClass-N-r13", ue_pwr_class_n_r13.to_string()); } j.end_obj(); } // RF-Parameters-v1320 ::= SEQUENCE SRSASN_CODE rf_params_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_list_eutra_v1320_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_v1320_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1320_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_reduced_v1320_present, 1)); if (supported_band_list_eutra_v1320_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_eutra_v1320, 1, 64)); } if (supported_band_combination_v1320_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1320, 1, 128)); } if (supported_band_combination_add_v1320_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1320, 1, 256)); } if (supported_band_combination_reduced_v1320_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_reduced_v1320, 1, 384)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_list_eutra_v1320_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_v1320_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1320_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_reduced_v1320_present, 1)); if (supported_band_list_eutra_v1320_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_eutra_v1320, bref, 1, 64)); } if (supported_band_combination_v1320_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1320, bref, 1, 128)); } if (supported_band_combination_add_v1320_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1320, bref, 1, 256)); } if (supported_band_combination_reduced_v1320_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_reduced_v1320, bref, 1, 384)); } return SRSASN_SUCCESS; } void rf_params_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_list_eutra_v1320_present) { j.start_array("supportedBandListEUTRA-v1320"); for (uint32_t i1 = 0; i1 < supported_band_list_eutra_v1320.size(); ++i1) { supported_band_list_eutra_v1320[i1].to_json(j); } j.end_array(); } if (supported_band_combination_v1320_present) { j.start_array("supportedBandCombination-v1320"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1320.size(); ++i1) { supported_band_combination_v1320[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1320_present) { j.start_array("supportedBandCombinationAdd-v1320"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1320.size(); ++i1) { supported_band_combination_add_v1320[i1].to_json(j); } j.end_array(); } if (supported_band_combination_reduced_v1320_present) { j.start_array("supportedBandCombinationReduced-v1320"); for (uint32_t i1 = 0; i1 < supported_band_combination_reduced_v1320.size(); ++i1) { supported_band_combination_reduced_v1320[i1].to_json(j); } j.end_array(); } j.end_obj(); } // RF-Parameters-v1380 ::= SEQUENCE SRSASN_CODE rf_params_v1380_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v1380_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1380_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_reduced_v1380_present, 1)); if (supported_band_combination_v1380_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1380, 1, 128)); } if (supported_band_combination_add_v1380_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1380, 1, 256)); } if (supported_band_combination_reduced_v1380_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_reduced_v1380, 1, 384)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1380_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v1380_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1380_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_reduced_v1380_present, 1)); if (supported_band_combination_v1380_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1380, bref, 1, 128)); } if (supported_band_combination_add_v1380_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1380, bref, 1, 256)); } if (supported_band_combination_reduced_v1380_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_reduced_v1380, bref, 1, 384)); } return SRSASN_SUCCESS; } void rf_params_v1380_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v1380_present) { j.start_array("supportedBandCombination-v1380"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1380.size(); ++i1) { supported_band_combination_v1380[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1380_present) { j.start_array("supportedBandCombinationAdd-v1380"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1380.size(); ++i1) { supported_band_combination_add_v1380[i1].to_json(j); } j.end_array(); } if (supported_band_combination_reduced_v1380_present) { j.start_array("supportedBandCombinationReduced-v1380"); for (uint32_t i1 = 0; i1 < supported_band_combination_reduced_v1380.size(); ++i1) { supported_band_combination_reduced_v1380[i1].to_json(j); } j.end_array(); } j.end_obj(); } // BandCombinationParameters-v1390 ::= SEQUENCE SRSASN_CODE band_combination_params_v1390_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_ca_pwr_class_n_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE band_combination_params_v1390_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_ca_pwr_class_n_r13_present, 1)); return SRSASN_SUCCESS; } void band_combination_params_v1390_s::to_json(json_writer& j) const { j.start_obj(); if (ue_ca_pwr_class_n_r13_present) { j.write_str("ue-CA-PowerClass-N-r13", "class2"); } j.end_obj(); } // RF-Parameters-v1390 ::= SEQUENCE SRSASN_CODE rf_params_v1390_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v1390_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1390_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_reduced_v1390_present, 1)); if (supported_band_combination_v1390_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1390, 1, 128)); } if (supported_band_combination_add_v1390_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1390, 1, 256)); } if (supported_band_combination_reduced_v1390_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_reduced_v1390, 1, 384)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1390_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v1390_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1390_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_reduced_v1390_present, 1)); if (supported_band_combination_v1390_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1390, bref, 1, 128)); } if (supported_band_combination_add_v1390_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1390, bref, 1, 256)); } if (supported_band_combination_reduced_v1390_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_reduced_v1390, bref, 1, 384)); } return SRSASN_SUCCESS; } void rf_params_v1390_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v1390_present) { j.start_array("supportedBandCombination-v1390"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1390.size(); ++i1) { supported_band_combination_v1390[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1390_present) { j.start_array("supportedBandCombinationAdd-v1390"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1390.size(); ++i1) { supported_band_combination_add_v1390[i1].to_json(j); } j.end_array(); } if (supported_band_combination_reduced_v1390_present) { j.start_array("supportedBandCombinationReduced-v1390"); for (uint32_t i1 = 0; i1 < supported_band_combination_reduced_v1390.size(); ++i1) { supported_band_combination_reduced_v1390[i1].to_json(j); } j.end_array(); } j.end_obj(); } // RF-Parameters-v1430 ::= SEQUENCE SRSASN_CODE rf_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v1430_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1430_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_reduced_v1430_present, 1)); HANDLE_CODE(bref.pack(e_nb_requested_params_v1430_present, 1)); HANDLE_CODE(bref.pack(diff_fallback_comb_report_r14_present, 1)); if (supported_band_combination_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1430, 1, 128)); } if (supported_band_combination_add_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1430, 1, 256)); } if (supported_band_combination_reduced_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_reduced_v1430, 1, 384)); } if (e_nb_requested_params_v1430_present) { HANDLE_CODE(pack_dyn_seq_of(bref, e_nb_requested_params_v1430.requested_diff_fallback_comb_list_r14, 1, 384, SeqOfPacker(1, 64, Packer()))); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v1430_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1430_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_reduced_v1430_present, 1)); HANDLE_CODE(bref.unpack(e_nb_requested_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(diff_fallback_comb_report_r14_present, 1)); if (supported_band_combination_v1430_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1430, bref, 1, 128)); } if (supported_band_combination_add_v1430_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1430, bref, 1, 256)); } if (supported_band_combination_reduced_v1430_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_reduced_v1430, bref, 1, 384)); } if (e_nb_requested_params_v1430_present) { HANDLE_CODE(unpack_dyn_seq_of(e_nb_requested_params_v1430.requested_diff_fallback_comb_list_r14, bref, 1, 384, SeqOfPacker(1, 64, Packer()))); } return SRSASN_SUCCESS; } void rf_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v1430_present) { j.start_array("supportedBandCombination-v1430"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1430.size(); ++i1) { supported_band_combination_v1430[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1430_present) { j.start_array("supportedBandCombinationAdd-v1430"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1430.size(); ++i1) { supported_band_combination_add_v1430[i1].to_json(j); } j.end_array(); } if (supported_band_combination_reduced_v1430_present) { j.start_array("supportedBandCombinationReduced-v1430"); for (uint32_t i1 = 0; i1 < supported_band_combination_reduced_v1430.size(); ++i1) { supported_band_combination_reduced_v1430[i1].to_json(j); } j.end_array(); } if (e_nb_requested_params_v1430_present) { j.write_fieldname("eNB-RequestedParameters-v1430"); j.start_obj(); j.start_array("requestedDiffFallbackCombList-r14"); for (uint32_t i1 = 0; i1 < e_nb_requested_params_v1430.requested_diff_fallback_comb_list_r14.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < e_nb_requested_params_v1430.requested_diff_fallback_comb_list_r14[i1].size(); ++i2) { e_nb_requested_params_v1430.requested_diff_fallback_comb_list_r14[i1][i2].to_json(j); } j.end_array(); } j.end_array(); j.end_obj(); } if (diff_fallback_comb_report_r14_present) { j.write_str("diffFallbackCombReport-r14", "supported"); } j.end_obj(); } // RF-Parameters-v1450 ::= SEQUENCE SRSASN_CODE rf_params_v1450_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v1450_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1450_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_reduced_v1450_present, 1)); if (supported_band_combination_v1450_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1450, 1, 128)); } if (supported_band_combination_add_v1450_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1450, 1, 256)); } if (supported_band_combination_reduced_v1450_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_reduced_v1450, 1, 384)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1450_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v1450_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1450_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_reduced_v1450_present, 1)); if (supported_band_combination_v1450_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1450, bref, 1, 128)); } if (supported_band_combination_add_v1450_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1450, bref, 1, 256)); } if (supported_band_combination_reduced_v1450_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_reduced_v1450, bref, 1, 384)); } return SRSASN_SUCCESS; } void rf_params_v1450_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v1450_present) { j.start_array("supportedBandCombination-v1450"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1450.size(); ++i1) { supported_band_combination_v1450[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1450_present) { j.start_array("supportedBandCombinationAdd-v1450"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1450.size(); ++i1) { supported_band_combination_add_v1450[i1].to_json(j); } j.end_array(); } if (supported_band_combination_reduced_v1450_present) { j.start_array("supportedBandCombinationReduced-v1450"); for (uint32_t i1 = 0; i1 < supported_band_combination_reduced_v1450.size(); ++i1) { supported_band_combination_reduced_v1450[i1].to_json(j); } j.end_array(); } j.end_obj(); } // RF-Parameters-v1470 ::= SEQUENCE SRSASN_CODE rf_params_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_combination_v1470_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1470_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_reduced_v1470_present, 1)); if (supported_band_combination_v1470_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1470, 1, 128)); } if (supported_band_combination_add_v1470_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1470, 1, 256)); } if (supported_band_combination_reduced_v1470_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_reduced_v1470, 1, 384)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_combination_v1470_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1470_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_reduced_v1470_present, 1)); if (supported_band_combination_v1470_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1470, bref, 1, 128)); } if (supported_band_combination_add_v1470_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1470, bref, 1, 256)); } if (supported_band_combination_reduced_v1470_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_reduced_v1470, bref, 1, 384)); } return SRSASN_SUCCESS; } void rf_params_v1470_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_combination_v1470_present) { j.start_array("supportedBandCombination-v1470"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1470.size(); ++i1) { supported_band_combination_v1470[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1470_present) { j.start_array("supportedBandCombinationAdd-v1470"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1470.size(); ++i1) { supported_band_combination_add_v1470[i1].to_json(j); } j.end_array(); } if (supported_band_combination_reduced_v1470_present) { j.start_array("supportedBandCombinationReduced-v1470"); for (uint32_t i1 = 0; i1 < supported_band_combination_reduced_v1470.size(); ++i1) { supported_band_combination_reduced_v1470[i1].to_json(j); } j.end_array(); } j.end_obj(); } // RF-Parameters-v1530 ::= SEQUENCE SRSASN_CODE rf_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(s_tti_spt_supported_r15_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_v1530_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_add_v1530_present, 1)); HANDLE_CODE(bref.pack(supported_band_combination_reduced_v1530_present, 1)); HANDLE_CODE(bref.pack(pwr_class_minus14dbm_r15_present, 1)); if (supported_band_combination_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_v1530, 1, 128)); } if (supported_band_combination_add_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_add_v1530, 1, 256)); } if (supported_band_combination_reduced_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_reduced_v1530, 1, 384)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(s_tti_spt_supported_r15_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_v1530_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_add_v1530_present, 1)); HANDLE_CODE(bref.unpack(supported_band_combination_reduced_v1530_present, 1)); HANDLE_CODE(bref.unpack(pwr_class_minus14dbm_r15_present, 1)); if (supported_band_combination_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_v1530, bref, 1, 128)); } if (supported_band_combination_add_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_add_v1530, bref, 1, 256)); } if (supported_band_combination_reduced_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_combination_reduced_v1530, bref, 1, 384)); } return SRSASN_SUCCESS; } void rf_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (s_tti_spt_supported_r15_present) { j.write_str("sTTI-SPT-Supported-r15", "supported"); } if (supported_band_combination_v1530_present) { j.start_array("supportedBandCombination-v1530"); for (uint32_t i1 = 0; i1 < supported_band_combination_v1530.size(); ++i1) { supported_band_combination_v1530[i1].to_json(j); } j.end_array(); } if (supported_band_combination_add_v1530_present) { j.start_array("supportedBandCombinationAdd-v1530"); for (uint32_t i1 = 0; i1 < supported_band_combination_add_v1530.size(); ++i1) { supported_band_combination_add_v1530[i1].to_json(j); } j.end_array(); } if (supported_band_combination_reduced_v1530_present) { j.start_array("supportedBandCombinationReduced-v1530"); for (uint32_t i1 = 0; i1 < supported_band_combination_reduced_v1530.size(); ++i1) { supported_band_combination_reduced_v1530[i1].to_json(j); } j.end_array(); } if (pwr_class_minus14dbm_r15_present) { j.write_str("powerClass-14dBm-r15", "supported"); } j.end_obj(); } // SupportedBandEUTRA-v9e0 ::= SEQUENCE SRSASN_CODE supported_band_eutra_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_eutra_v9e0_present, 1)); if (band_eutra_v9e0_present) { HANDLE_CODE(pack_unalign_integer(bref, band_eutra_v9e0, (uint16_t)65, (uint16_t)256)); } return SRSASN_SUCCESS; } SRSASN_CODE supported_band_eutra_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_eutra_v9e0_present, 1)); if (band_eutra_v9e0_present) { HANDLE_CODE(unpack_unalign_integer(band_eutra_v9e0, bref, (uint16_t)65, (uint16_t)256)); } return SRSASN_SUCCESS; } void supported_band_eutra_v9e0_s::to_json(json_writer& j) const { j.start_obj(); if (band_eutra_v9e0_present) { j.write_int("bandEUTRA-v9e0", band_eutra_v9e0); } j.end_obj(); } // RF-Parameters-v9e0 ::= SEQUENCE SRSASN_CODE rf_params_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_list_eutra_v9e0_present, 1)); if (supported_band_list_eutra_v9e0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_eutra_v9e0, 1, 64)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_list_eutra_v9e0_present, 1)); if (supported_band_list_eutra_v9e0_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_eutra_v9e0, bref, 1, 64)); } return SRSASN_SUCCESS; } void rf_params_v9e0_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_list_eutra_v9e0_present) { j.start_array("supportedBandListEUTRA-v9e0"); for (uint32_t i1 = 0; i1 < supported_band_list_eutra_v9e0.size(); ++i1) { supported_band_list_eutra_v9e0[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SupportedBandInfo-r12 ::= SEQUENCE SRSASN_CODE supported_band_info_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(support_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE supported_band_info_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(support_r12_present, 1)); return SRSASN_SUCCESS; } void supported_band_info_r12_s::to_json(json_writer& j) const { j.start_obj(); if (support_r12_present) { j.write_str("support-r12", "supported"); } j.end_obj(); } // SL-Parameters-r12 ::= SEQUENCE SRSASN_CODE sl_params_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(comm_simul_tx_r12_present, 1)); HANDLE_CODE(bref.pack(comm_supported_bands_r12_present, 1)); HANDLE_CODE(bref.pack(disc_supported_bands_r12_present, 1)); HANDLE_CODE(bref.pack(disc_sched_res_alloc_r12_present, 1)); HANDLE_CODE(bref.pack(disc_ue_sel_res_alloc_r12_present, 1)); HANDLE_CODE(bref.pack(disc_slss_r12_present, 1)); HANDLE_CODE(bref.pack(disc_supported_proc_r12_present, 1)); if (comm_supported_bands_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, comm_supported_bands_r12, 1, 64, UnalignedIntegerPacker(1, 256))); } if (disc_supported_bands_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, disc_supported_bands_r12, 1, 64)); } if (disc_supported_proc_r12_present) { HANDLE_CODE(pack_enum(bref, disc_supported_proc_r12)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_params_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(comm_simul_tx_r12_present, 1)); HANDLE_CODE(bref.unpack(comm_supported_bands_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_supported_bands_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_sched_res_alloc_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_ue_sel_res_alloc_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_slss_r12_present, 1)); HANDLE_CODE(bref.unpack(disc_supported_proc_r12_present, 1)); if (comm_supported_bands_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(comm_supported_bands_r12, bref, 1, 64, UnalignedIntegerPacker(1, 256))); } if (disc_supported_bands_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(disc_supported_bands_r12, bref, 1, 64)); } if (disc_supported_proc_r12_present) { HANDLE_CODE(unpack_enum(disc_supported_proc_r12, bref)); } return SRSASN_SUCCESS; } void sl_params_r12_s::to_json(json_writer& j) const { j.start_obj(); if (comm_simul_tx_r12_present) { j.write_str("commSimultaneousTx-r12", "supported"); } if (comm_supported_bands_r12_present) { j.start_array("commSupportedBands-r12"); for (uint32_t i1 = 0; i1 < comm_supported_bands_r12.size(); ++i1) { j.write_int(comm_supported_bands_r12[i1]); } j.end_array(); } if (disc_supported_bands_r12_present) { j.start_array("discSupportedBands-r12"); for (uint32_t i1 = 0; i1 < disc_supported_bands_r12.size(); ++i1) { disc_supported_bands_r12[i1].to_json(j); } j.end_array(); } if (disc_sched_res_alloc_r12_present) { j.write_str("discScheduledResourceAlloc-r12", "supported"); } if (disc_ue_sel_res_alloc_r12_present) { j.write_str("disc-UE-SelectedResourceAlloc-r12", "supported"); } if (disc_slss_r12_present) { j.write_str("disc-SLSS-r12", "supported"); } if (disc_supported_proc_r12_present) { j.write_str("discSupportedProc-r12", disc_supported_proc_r12.to_string()); } j.end_obj(); } // V2X-BandParameters-r14 ::= SEQUENCE SRSASN_CODE v2x_band_params_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(band_params_tx_sl_r14_present, 1)); HANDLE_CODE(bref.pack(band_params_rx_sl_r14_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, v2x_freq_band_eutra_r14, (uint16_t)1, (uint16_t)256)); if (band_params_tx_sl_r14_present) { HANDLE_CODE(band_params_tx_sl_r14.pack(bref)); } if (band_params_rx_sl_r14_present) { HANDLE_CODE(band_params_rx_sl_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE v2x_band_params_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(band_params_tx_sl_r14_present, 1)); HANDLE_CODE(bref.unpack(band_params_rx_sl_r14_present, 1)); HANDLE_CODE(unpack_unalign_integer(v2x_freq_band_eutra_r14, bref, (uint16_t)1, (uint16_t)256)); if (band_params_tx_sl_r14_present) { HANDLE_CODE(band_params_tx_sl_r14.unpack(bref)); } if (band_params_rx_sl_r14_present) { HANDLE_CODE(band_params_rx_sl_r14.unpack(bref)); } return SRSASN_SUCCESS; } void v2x_band_params_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("v2x-FreqBandEUTRA-r14", v2x_freq_band_eutra_r14); if (band_params_tx_sl_r14_present) { j.write_fieldname("bandParametersTxSL-r14"); band_params_tx_sl_r14.to_json(j); } if (band_params_rx_sl_r14_present) { j.write_fieldname("bandParametersRxSL-r14"); band_params_rx_sl_r14.to_json(j); } j.end_obj(); } // SL-Parameters-v1430 ::= SEQUENCE SRSASN_CODE sl_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(zone_based_pool_sel_r14_present, 1)); HANDLE_CODE(bref.pack(ue_autonomous_with_full_sensing_r14_present, 1)); HANDLE_CODE(bref.pack(ue_autonomous_with_partial_sensing_r14_present, 1)); HANDLE_CODE(bref.pack(sl_congestion_ctrl_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_tx_with_short_resv_interv_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_num_tx_rx_timing_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_non_adjacent_pscch_pssch_r14_present, 1)); HANDLE_CODE(bref.pack(slss_tx_rx_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_supported_band_combination_list_r14_present, 1)); if (v2x_num_tx_rx_timing_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, v2x_num_tx_rx_timing_r14, (uint8_t)1, (uint8_t)16)); } if (v2x_supported_band_combination_list_r14_present) { HANDLE_CODE( pack_dyn_seq_of(bref, v2x_supported_band_combination_list_r14, 1, 384, SeqOfPacker(1, 64, Packer()))); } return SRSASN_SUCCESS; } SRSASN_CODE sl_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(zone_based_pool_sel_r14_present, 1)); HANDLE_CODE(bref.unpack(ue_autonomous_with_full_sensing_r14_present, 1)); HANDLE_CODE(bref.unpack(ue_autonomous_with_partial_sensing_r14_present, 1)); HANDLE_CODE(bref.unpack(sl_congestion_ctrl_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_tx_with_short_resv_interv_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_num_tx_rx_timing_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_non_adjacent_pscch_pssch_r14_present, 1)); HANDLE_CODE(bref.unpack(slss_tx_rx_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_supported_band_combination_list_r14_present, 1)); if (v2x_num_tx_rx_timing_r14_present) { HANDLE_CODE(unpack_unalign_integer(v2x_num_tx_rx_timing_r14, bref, (uint8_t)1, (uint8_t)16)); } if (v2x_supported_band_combination_list_r14_present) { HANDLE_CODE( unpack_dyn_seq_of(v2x_supported_band_combination_list_r14, bref, 1, 384, SeqOfPacker(1, 64, Packer()))); } return SRSASN_SUCCESS; } void sl_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (zone_based_pool_sel_r14_present) { j.write_str("zoneBasedPoolSelection-r14", "supported"); } if (ue_autonomous_with_full_sensing_r14_present) { j.write_str("ue-AutonomousWithFullSensing-r14", "supported"); } if (ue_autonomous_with_partial_sensing_r14_present) { j.write_str("ue-AutonomousWithPartialSensing-r14", "supported"); } if (sl_congestion_ctrl_r14_present) { j.write_str("sl-CongestionControl-r14", "supported"); } if (v2x_tx_with_short_resv_interv_r14_present) { j.write_str("v2x-TxWithShortResvInterval-r14", "supported"); } if (v2x_num_tx_rx_timing_r14_present) { j.write_int("v2x-numberTxRxTiming-r14", v2x_num_tx_rx_timing_r14); } if (v2x_non_adjacent_pscch_pssch_r14_present) { j.write_str("v2x-nonAdjacentPSCCH-PSSCH-r14", "supported"); } if (slss_tx_rx_r14_present) { j.write_str("slss-TxRx-r14", "supported"); } if (v2x_supported_band_combination_list_r14_present) { j.start_array("v2x-SupportedBandCombinationList-r14"); for (uint32_t i1 = 0; i1 < v2x_supported_band_combination_list_r14.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < v2x_supported_band_combination_list_r14[i1].size(); ++i2) { v2x_supported_band_combination_list_r14[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } j.end_obj(); } // V2X-BandParameters-v1530 ::= SEQUENCE SRSASN_CODE v2x_band_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(v2x_enhanced_high_reception_r15_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE v2x_band_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(v2x_enhanced_high_reception_r15_present, 1)); return SRSASN_SUCCESS; } void v2x_band_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (v2x_enhanced_high_reception_r15_present) { j.write_str("v2x-EnhancedHighReception-r15", "supported"); } j.end_obj(); } // UE-CategorySL-r15 ::= SEQUENCE SRSASN_CODE ue_category_sl_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, ue_category_sl_c_tx_r15, (uint8_t)1, (uint8_t)5)); HANDLE_CODE(pack_unalign_integer(bref, ue_category_sl_c_rx_r15, (uint8_t)1, (uint8_t)4)); return SRSASN_SUCCESS; } SRSASN_CODE ue_category_sl_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(ue_category_sl_c_tx_r15, bref, (uint8_t)1, (uint8_t)5)); HANDLE_CODE(unpack_unalign_integer(ue_category_sl_c_rx_r15, bref, (uint8_t)1, (uint8_t)4)); return SRSASN_SUCCESS; } void ue_category_sl_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("ue-CategorySL-C-TX-r15", ue_category_sl_c_tx_r15); j.write_int("ue-CategorySL-C-RX-r15", ue_category_sl_c_rx_r15); j.end_obj(); } // SL-Parameters-v1530 ::= SEQUENCE SRSASN_CODE sl_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(slss_supported_tx_freq_r15_present, 1)); HANDLE_CODE(bref.pack(sl_minus64_qam_tx_r15_present, 1)); HANDLE_CODE(bref.pack(sl_tx_diversity_r15_present, 1)); HANDLE_CODE(bref.pack(ue_category_sl_r15_present, 1)); HANDLE_CODE(bref.pack(v2x_supported_band_combination_list_v1530_present, 1)); if (slss_supported_tx_freq_r15_present) { HANDLE_CODE(pack_enum(bref, slss_supported_tx_freq_r15)); } if (ue_category_sl_r15_present) { HANDLE_CODE(ue_category_sl_r15.pack(bref)); } if (v2x_supported_band_combination_list_v1530_present) { HANDLE_CODE( pack_dyn_seq_of(bref, v2x_supported_band_combination_list_v1530, 1, 384, SeqOfPacker(1, 64, Packer()))); } return SRSASN_SUCCESS; } SRSASN_CODE sl_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(slss_supported_tx_freq_r15_present, 1)); HANDLE_CODE(bref.unpack(sl_minus64_qam_tx_r15_present, 1)); HANDLE_CODE(bref.unpack(sl_tx_diversity_r15_present, 1)); HANDLE_CODE(bref.unpack(ue_category_sl_r15_present, 1)); HANDLE_CODE(bref.unpack(v2x_supported_band_combination_list_v1530_present, 1)); if (slss_supported_tx_freq_r15_present) { HANDLE_CODE(unpack_enum(slss_supported_tx_freq_r15, bref)); } if (ue_category_sl_r15_present) { HANDLE_CODE(ue_category_sl_r15.unpack(bref)); } if (v2x_supported_band_combination_list_v1530_present) { HANDLE_CODE(unpack_dyn_seq_of(v2x_supported_band_combination_list_v1530, bref, 1, 384, SeqOfPacker(1, 64, Packer()))); } return SRSASN_SUCCESS; } void sl_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (slss_supported_tx_freq_r15_present) { j.write_str("slss-SupportedTxFreq-r15", slss_supported_tx_freq_r15.to_string()); } if (sl_minus64_qam_tx_r15_present) { j.write_str("sl-64QAM-Tx-r15", "supported"); } if (sl_tx_diversity_r15_present) { j.write_str("sl-TxDiversity-r15", "supported"); } if (ue_category_sl_r15_present) { j.write_fieldname("ue-CategorySL-r15"); ue_category_sl_r15.to_json(j); } if (v2x_supported_band_combination_list_v1530_present) { j.start_array("v2x-SupportedBandCombinationList-v1530"); for (uint32_t i1 = 0; i1 < v2x_supported_band_combination_list_v1530.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < v2x_supported_band_combination_list_v1530[i1].size(); ++i2) { v2x_supported_band_combination_list_v1530[i1][i2].to_json(j); } j.end_array(); } j.end_array(); } j.end_obj(); } // SPS-ConfigDL-STTI-r15 ::= CHOICE void sps_cfg_dl_stti_r15_c::set(types::options e) { type_ = e; } void sps_cfg_dl_stti_r15_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_str("semiPersistSchedIntervalDL-STTI-r15", c.semi_persist_sched_interv_dl_stti_r15.to_string()); j.write_int("numberOfConfSPS-Processes-STTI-r15", c.nof_conf_sps_processes_stti_r15); if (c.two_ant_port_activ_r15_present) { j.write_fieldname("twoAntennaPortActivated-r15"); c.two_ant_port_activ_r15.to_json(j); } j.write_int("sTTI-StartTimeDL-r15", c.s_tti_start_time_dl_r15); if (c.tpc_pdcch_cfg_pucch_sps_r15_present) { j.write_fieldname("tpc-PDCCH-ConfigPUCCH-SPS-r15"); c.tpc_pdcch_cfg_pucch_sps_r15.to_json(j); } j.end_obj(); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_stti_r15_c"); } j.end_obj(); } SRSASN_CODE sps_cfg_dl_stti_r15_c::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: bref.pack(c.ext, 1); HANDLE_CODE(bref.pack(c.two_ant_port_activ_r15_present, 1)); HANDLE_CODE(bref.pack(c.tpc_pdcch_cfg_pucch_sps_r15_present, 1)); HANDLE_CODE(pack_enum(bref, c.semi_persist_sched_interv_dl_stti_r15)); HANDLE_CODE(pack_unalign_integer(bref, c.nof_conf_sps_processes_stti_r15, (uint8_t)1, (uint8_t)12)); if (c.two_ant_port_activ_r15_present) { HANDLE_CODE(c.two_ant_port_activ_r15.pack(bref)); } HANDLE_CODE(pack_unalign_integer(bref, c.s_tti_start_time_dl_r15, (uint8_t)0, (uint8_t)5)); if (c.tpc_pdcch_cfg_pucch_sps_r15_present) { HANDLE_CODE(c.tpc_pdcch_cfg_pucch_sps_r15.pack(bref)); } break; default: log_invalid_choice_id(type_, "sps_cfg_dl_stti_r15_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_dl_stti_r15_c::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: bref.unpack(c.ext, 1); HANDLE_CODE(bref.unpack(c.two_ant_port_activ_r15_present, 1)); HANDLE_CODE(bref.unpack(c.tpc_pdcch_cfg_pucch_sps_r15_present, 1)); HANDLE_CODE(unpack_enum(c.semi_persist_sched_interv_dl_stti_r15, bref)); HANDLE_CODE(unpack_unalign_integer(c.nof_conf_sps_processes_stti_r15, bref, (uint8_t)1, (uint8_t)12)); if (c.two_ant_port_activ_r15_present) { HANDLE_CODE(c.two_ant_port_activ_r15.unpack(bref)); } HANDLE_CODE(unpack_unalign_integer(c.s_tti_start_time_dl_r15, bref, (uint8_t)0, (uint8_t)5)); if (c.tpc_pdcch_cfg_pucch_sps_r15_present) { HANDLE_CODE(c.tpc_pdcch_cfg_pucch_sps_r15.unpack(bref)); } break; default: log_invalid_choice_id(type_, "sps_cfg_dl_stti_r15_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::set(types::options e) { type_ = e; } void sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.start_array("n1SPUCCH-AN-PersistentListP1-r15"); for (uint32_t i1 = 0; i1 < c.n1_spucch_an_persistent_list_p1_r15.size(); ++i1) { j.write_int(c.n1_spucch_an_persistent_list_p1_r15[i1]); } j.end_array(); j.end_obj(); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_"); } j.end_obj(); } SRSASN_CODE sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(pack_dyn_seq_of(bref, c.n1_spucch_an_persistent_list_p1_r15, 1, 4, UnalignedIntegerPacker(0, 2047))); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(unpack_dyn_seq_of(c.n1_spucch_an_persistent_list_p1_r15, bref, 1, 4, UnalignedIntegerPacker(0, 2047))); break; default: log_invalid_choice_id(type_, "sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // NeighCellSI-AcquisitionParameters-v1530 ::= SEQUENCE SRSASN_CODE neigh_cell_si_acquisition_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(report_cgi_nr_en_dc_r15_present, 1)); HANDLE_CODE(bref.pack(report_cgi_nr_no_en_dc_r15_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cell_si_acquisition_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(report_cgi_nr_en_dc_r15_present, 1)); HANDLE_CODE(bref.unpack(report_cgi_nr_no_en_dc_r15_present, 1)); return SRSASN_SUCCESS; } void neigh_cell_si_acquisition_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (report_cgi_nr_en_dc_r15_present) { j.write_str("reportCGI-NR-EN-DC-r15", "supported"); } if (report_cgi_nr_no_en_dc_r15_present) { j.write_str("reportCGI-NR-NoEN-DC-r15", "supported"); } j.end_obj(); } // LAA-Parameters-v1530 ::= SEQUENCE SRSASN_CODE laa_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(aul_r15_present, 1)); HANDLE_CODE(bref.pack(laa_pusch_mode1_r15_present, 1)); HANDLE_CODE(bref.pack(laa_pusch_mode2_r15_present, 1)); HANDLE_CODE(bref.pack(laa_pusch_mode3_r15_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE laa_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(aul_r15_present, 1)); HANDLE_CODE(bref.unpack(laa_pusch_mode1_r15_present, 1)); HANDLE_CODE(bref.unpack(laa_pusch_mode2_r15_present, 1)); HANDLE_CODE(bref.unpack(laa_pusch_mode3_r15_present, 1)); return SRSASN_SUCCESS; } void laa_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (aul_r15_present) { j.write_str("aul-r15", "supported"); } if (laa_pusch_mode1_r15_present) { j.write_str("laa-PUSCH-Mode1-r15", "supported"); } if (laa_pusch_mode2_r15_present) { j.write_str("laa-PUSCH-Mode2-r15", "supported"); } if (laa_pusch_mode3_r15_present) { j.write_str("laa-PUSCH-Mode3-r15", "supported"); } j.end_obj(); } // MeasParameters-v1530 ::= SEQUENCE SRSASN_CODE meas_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(qoe_meas_report_r15_present, 1)); HANDLE_CODE(bref.pack(qoe_mtsi_meas_report_r15_present, 1)); HANDLE_CODE(bref.pack(ca_idle_mode_meass_r15_present, 1)); HANDLE_CODE(bref.pack(ca_idle_mode_validity_area_r15_present, 1)); HANDLE_CODE(bref.pack(height_meas_r15_present, 1)); HANDLE_CODE(bref.pack(multiple_cells_meas_ext_r15_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE meas_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(qoe_meas_report_r15_present, 1)); HANDLE_CODE(bref.unpack(qoe_mtsi_meas_report_r15_present, 1)); HANDLE_CODE(bref.unpack(ca_idle_mode_meass_r15_present, 1)); HANDLE_CODE(bref.unpack(ca_idle_mode_validity_area_r15_present, 1)); HANDLE_CODE(bref.unpack(height_meas_r15_present, 1)); HANDLE_CODE(bref.unpack(multiple_cells_meas_ext_r15_present, 1)); return SRSASN_SUCCESS; } void meas_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (qoe_meas_report_r15_present) { j.write_str("qoe-MeasReport-r15", "supported"); } if (qoe_mtsi_meas_report_r15_present) { j.write_str("qoe-MTSI-MeasReport-r15", "supported"); } if (ca_idle_mode_meass_r15_present) { j.write_str("ca-IdleModeMeasurements-r15", "supported"); } if (ca_idle_mode_validity_area_r15_present) { j.write_str("ca-IdleModeValidityArea-r15", "supported"); } if (height_meas_r15_present) { j.write_str("heightMeas-r15", "supported"); } if (multiple_cells_meas_ext_r15_present) { j.write_str("multipleCellsMeasExtension-r15", "supported"); } j.end_obj(); } // Other-Parameters-v1530 ::= SEQUENCE SRSASN_CODE other_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(assist_info_bit_for_lc_r15_present, 1)); HANDLE_CODE(bref.pack(time_ref_provision_r15_present, 1)); HANDLE_CODE(bref.pack(flight_path_plan_r15_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE other_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(assist_info_bit_for_lc_r15_present, 1)); HANDLE_CODE(bref.unpack(time_ref_provision_r15_present, 1)); HANDLE_CODE(bref.unpack(flight_path_plan_r15_present, 1)); return SRSASN_SUCCESS; } void other_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (assist_info_bit_for_lc_r15_present) { j.write_str("assistInfoBitForLC-r15", "supported"); } if (time_ref_provision_r15_present) { j.write_str("timeReferenceProvision-r15", "supported"); } if (flight_path_plan_r15_present) { j.write_str("flightPathPlan-r15", "supported"); } j.end_obj(); } // RLC-Parameters-v1530 ::= SEQUENCE SRSASN_CODE rlc_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(flex_um_am_combinations_r15_present, 1)); HANDLE_CODE(bref.pack(rlc_am_ooo_delivery_r15_present, 1)); HANDLE_CODE(bref.pack(rlc_um_ooo_delivery_r15_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rlc_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(flex_um_am_combinations_r15_present, 1)); HANDLE_CODE(bref.unpack(rlc_am_ooo_delivery_r15_present, 1)); HANDLE_CODE(bref.unpack(rlc_um_ooo_delivery_r15_present, 1)); return SRSASN_SUCCESS; } void rlc_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (flex_um_am_combinations_r15_present) { j.write_str("flexibleUM-AM-Combinations-r15", "supported"); } if (rlc_am_ooo_delivery_r15_present) { j.write_str("rlc-AM-Ooo-Delivery-r15", "supported"); } if (rlc_um_ooo_delivery_r15_present) { j.write_str("rlc-UM-Ooo-Delivery-r15", "supported"); } j.end_obj(); } // UE-BasedNetwPerfMeasParameters-v1530 ::= SEQUENCE SRSASN_CODE ue_based_netw_perf_meas_params_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(logged_meas_bt_r15_present, 1)); HANDLE_CODE(bref.pack(logged_meas_wlan_r15_present, 1)); HANDLE_CODE(bref.pack(imm_meas_bt_r15_present, 1)); HANDLE_CODE(bref.pack(imm_meas_wlan_r15_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ue_based_netw_perf_meas_params_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(logged_meas_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(logged_meas_wlan_r15_present, 1)); HANDLE_CODE(bref.unpack(imm_meas_bt_r15_present, 1)); HANDLE_CODE(bref.unpack(imm_meas_wlan_r15_present, 1)); return SRSASN_SUCCESS; } void ue_based_netw_perf_meas_params_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (logged_meas_bt_r15_present) { j.write_str("loggedMeasBT-r15", "supported"); } if (logged_meas_wlan_r15_present) { j.write_str("loggedMeasWLAN-r15", "supported"); } if (imm_meas_bt_r15_present) { j.write_str("immMeasBT-r15", "supported"); } if (imm_meas_wlan_r15_present) { j.write_str("immMeasWLAN-r15", "supported"); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1530 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(neigh_cell_si_acquisition_params_v1530_present, 1)); HANDLE_CODE(bref.pack(reduced_cp_latency_r15_present, 1)); if (neigh_cell_si_acquisition_params_v1530_present) { HANDLE_CODE(neigh_cell_si_acquisition_params_v1530.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(neigh_cell_si_acquisition_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(reduced_cp_latency_r15_present, 1)); if (neigh_cell_si_acquisition_params_v1530_present) { HANDLE_CODE(neigh_cell_si_acquisition_params_v1530.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (neigh_cell_si_acquisition_params_v1530_present) { j.write_fieldname("neighCellSI-AcquisitionParameters-v1530"); neigh_cell_si_acquisition_params_v1530.to_json(j); } if (reduced_cp_latency_r15_present) { j.write_str("reducedCP-Latency-r15", "supported"); } j.end_obj(); } // MeasParameters-v1520 ::= SEQUENCE SRSASN_CODE meas_params_v1520_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_gap_patterns_v1520_present, 1)); if (meas_gap_patterns_v1520_present) { HANDLE_CODE(meas_gap_patterns_v1520.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE meas_params_v1520_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_gap_patterns_v1520_present, 1)); if (meas_gap_patterns_v1520_present) { HANDLE_CODE(meas_gap_patterns_v1520.unpack(bref)); } return SRSASN_SUCCESS; } void meas_params_v1520_s::to_json(json_writer& j) const { j.start_obj(); if (meas_gap_patterns_v1520_present) { j.write_str("measGapPatterns-v1520", meas_gap_patterns_v1520.to_string()); } j.end_obj(); } // UE-EUTRA-Capability-v1530-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_params_v1530_present, 1)); HANDLE_CODE(bref.pack(other_params_v1530_present, 1)); HANDLE_CODE(bref.pack(neigh_cell_si_acquisition_params_v1530_present, 1)); HANDLE_CODE(bref.pack(mac_params_v1530_present, 1)); HANDLE_CODE(bref.pack(phy_layer_params_v1530_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1530_present, 1)); HANDLE_CODE(bref.pack(pdcp_params_v1530_present, 1)); HANDLE_CODE(bref.pack(ue_category_dl_v1530_present, 1)); HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_v1530_present, 1)); HANDLE_CODE(bref.pack(rlc_params_v1530_present, 1)); HANDLE_CODE(bref.pack(sl_params_v1530_present, 1)); HANDLE_CODE(bref.pack(extended_nof_drbs_r15_present, 1)); HANDLE_CODE(bref.pack(reduced_cp_latency_r15_present, 1)); HANDLE_CODE(bref.pack(laa_params_v1530_present, 1)); HANDLE_CODE(bref.pack(ue_category_ul_v1530_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1530_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1530_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (meas_params_v1530_present) { HANDLE_CODE(meas_params_v1530.pack(bref)); } if (other_params_v1530_present) { HANDLE_CODE(other_params_v1530.pack(bref)); } if (neigh_cell_si_acquisition_params_v1530_present) { HANDLE_CODE(neigh_cell_si_acquisition_params_v1530.pack(bref)); } if (mac_params_v1530_present) { HANDLE_CODE(mac_params_v1530.pack(bref)); } if (phy_layer_params_v1530_present) { HANDLE_CODE(phy_layer_params_v1530.pack(bref)); } if (rf_params_v1530_present) { HANDLE_CODE(rf_params_v1530.pack(bref)); } if (pdcp_params_v1530_present) { HANDLE_CODE(pdcp_params_v1530.pack(bref)); } if (ue_category_dl_v1530_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_dl_v1530, (uint8_t)22, (uint8_t)26)); } if (ue_based_netw_perf_meas_params_v1530_present) { HANDLE_CODE(ue_based_netw_perf_meas_params_v1530.pack(bref)); } if (rlc_params_v1530_present) { HANDLE_CODE(rlc_params_v1530.pack(bref)); } if (sl_params_v1530_present) { HANDLE_CODE(sl_params_v1530.pack(bref)); } if (laa_params_v1530_present) { HANDLE_CODE(laa_params_v1530.pack(bref)); } if (ue_category_ul_v1530_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_ul_v1530, (uint8_t)22, (uint8_t)26)); } if (fdd_add_ue_eutra_capabilities_v1530_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1530.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1530_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1530.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(other_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(neigh_cell_si_acquisition_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(mac_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(phy_layer_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(pdcp_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(ue_category_dl_v1530_present, 1)); HANDLE_CODE(bref.unpack(ue_based_netw_perf_meas_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(rlc_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(sl_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(extended_nof_drbs_r15_present, 1)); HANDLE_CODE(bref.unpack(reduced_cp_latency_r15_present, 1)); HANDLE_CODE(bref.unpack(laa_params_v1530_present, 1)); HANDLE_CODE(bref.unpack(ue_category_ul_v1530_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1530_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1530_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (meas_params_v1530_present) { HANDLE_CODE(meas_params_v1530.unpack(bref)); } if (other_params_v1530_present) { HANDLE_CODE(other_params_v1530.unpack(bref)); } if (neigh_cell_si_acquisition_params_v1530_present) { HANDLE_CODE(neigh_cell_si_acquisition_params_v1530.unpack(bref)); } if (mac_params_v1530_present) { HANDLE_CODE(mac_params_v1530.unpack(bref)); } if (phy_layer_params_v1530_present) { HANDLE_CODE(phy_layer_params_v1530.unpack(bref)); } if (rf_params_v1530_present) { HANDLE_CODE(rf_params_v1530.unpack(bref)); } if (pdcp_params_v1530_present) { HANDLE_CODE(pdcp_params_v1530.unpack(bref)); } if (ue_category_dl_v1530_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_dl_v1530, bref, (uint8_t)22, (uint8_t)26)); } if (ue_based_netw_perf_meas_params_v1530_present) { HANDLE_CODE(ue_based_netw_perf_meas_params_v1530.unpack(bref)); } if (rlc_params_v1530_present) { HANDLE_CODE(rlc_params_v1530.unpack(bref)); } if (sl_params_v1530_present) { HANDLE_CODE(sl_params_v1530.unpack(bref)); } if (laa_params_v1530_present) { HANDLE_CODE(laa_params_v1530.unpack(bref)); } if (ue_category_ul_v1530_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_ul_v1530, bref, (uint8_t)22, (uint8_t)26)); } if (fdd_add_ue_eutra_capabilities_v1530_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1530.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1530_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1530.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (meas_params_v1530_present) { j.write_fieldname("measParameters-v1530"); meas_params_v1530.to_json(j); } if (other_params_v1530_present) { j.write_fieldname("otherParameters-v1530"); other_params_v1530.to_json(j); } if (neigh_cell_si_acquisition_params_v1530_present) { j.write_fieldname("neighCellSI-AcquisitionParameters-v1530"); neigh_cell_si_acquisition_params_v1530.to_json(j); } if (mac_params_v1530_present) { j.write_fieldname("mac-Parameters-v1530"); mac_params_v1530.to_json(j); } if (phy_layer_params_v1530_present) { j.write_fieldname("phyLayerParameters-v1530"); phy_layer_params_v1530.to_json(j); } if (rf_params_v1530_present) { j.write_fieldname("rf-Parameters-v1530"); rf_params_v1530.to_json(j); } if (pdcp_params_v1530_present) { j.write_fieldname("pdcp-Parameters-v1530"); pdcp_params_v1530.to_json(j); } if (ue_category_dl_v1530_present) { j.write_int("ue-CategoryDL-v1530", ue_category_dl_v1530); } if (ue_based_netw_perf_meas_params_v1530_present) { j.write_fieldname("ue-BasedNetwPerfMeasParameters-v1530"); ue_based_netw_perf_meas_params_v1530.to_json(j); } if (rlc_params_v1530_present) { j.write_fieldname("rlc-Parameters-v1530"); rlc_params_v1530.to_json(j); } if (sl_params_v1530_present) { j.write_fieldname("sl-Parameters-v1530"); sl_params_v1530.to_json(j); } if (extended_nof_drbs_r15_present) { j.write_str("extendedNumberOfDRBs-r15", "supported"); } if (reduced_cp_latency_r15_present) { j.write_str("reducedCP-Latency-r15", "supported"); } if (laa_params_v1530_present) { j.write_fieldname("laa-Parameters-v1530"); laa_params_v1530.to_json(j); } if (ue_category_ul_v1530_present) { j.write_int("ue-CategoryUL-v1530", ue_category_ul_v1530); } if (fdd_add_ue_eutra_capabilities_v1530_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1530"); fdd_add_ue_eutra_capabilities_v1530.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1530_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1530"); tdd_add_ue_eutra_capabilities_v1530.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // UE-EUTRA-Capability-v1520-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1520_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(meas_params_v1520.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1520_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(meas_params_v1520.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1520_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("measParameters-v1520"); meas_params_v1520.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1510 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1510_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pdcp_params_nr_r15_present, 1)); if (pdcp_params_nr_r15_present) { HANDLE_CODE(pdcp_params_nr_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1510_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pdcp_params_nr_r15_present, 1)); if (pdcp_params_nr_r15_present) { HANDLE_CODE(pdcp_params_nr_r15.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1510_s::to_json(json_writer& j) const { j.start_obj(); if (pdcp_params_nr_r15_present) { j.write_fieldname("pdcp-ParametersNR-r15"); pdcp_params_nr_r15.to_json(j); } j.end_obj(); } // Other-Parameters-v1460 ::= SEQUENCE SRSASN_CODE other_params_v1460_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_csg_si_report_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE other_params_v1460_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_csg_si_report_r14_present, 1)); return SRSASN_SUCCESS; } void other_params_v1460_s::to_json(json_writer& j) const { j.start_obj(); if (non_csg_si_report_r14_present) { j.write_str("nonCSG-SI-Reporting-r14", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1510-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1510_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(irat_params_nr_r15_present, 1)); HANDLE_CODE(bref.pack(feature_sets_eutra_r15_present, 1)); HANDLE_CODE(bref.pack(pdcp_params_nr_r15_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1510_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1510_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (irat_params_nr_r15_present) { HANDLE_CODE(irat_params_nr_r15.pack(bref)); } if (feature_sets_eutra_r15_present) { HANDLE_CODE(feature_sets_eutra_r15.pack(bref)); } if (pdcp_params_nr_r15_present) { HANDLE_CODE(pdcp_params_nr_r15.pack(bref)); } if (fdd_add_ue_eutra_capabilities_v1510_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1510.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1510_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1510.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1510_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(irat_params_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(feature_sets_eutra_r15_present, 1)); HANDLE_CODE(bref.unpack(pdcp_params_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1510_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1510_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (irat_params_nr_r15_present) { HANDLE_CODE(irat_params_nr_r15.unpack(bref)); } if (feature_sets_eutra_r15_present) { HANDLE_CODE(feature_sets_eutra_r15.unpack(bref)); } if (pdcp_params_nr_r15_present) { HANDLE_CODE(pdcp_params_nr_r15.unpack(bref)); } if (fdd_add_ue_eutra_capabilities_v1510_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1510.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1510_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1510.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1510_ies_s::to_json(json_writer& j) const { j.start_obj(); if (irat_params_nr_r15_present) { j.write_fieldname("irat-ParametersNR-r15"); irat_params_nr_r15.to_json(j); } if (feature_sets_eutra_r15_present) { j.write_fieldname("featureSetsEUTRA-r15"); feature_sets_eutra_r15.to_json(j); } if (pdcp_params_nr_r15_present) { j.write_fieldname("pdcp-ParametersNR-r15"); pdcp_params_nr_r15.to_json(j); } if (fdd_add_ue_eutra_capabilities_v1510_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1510"); fdd_add_ue_eutra_capabilities_v1510.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1510_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1510"); tdd_add_ue_eutra_capabilities_v1510.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // OtherParameters-v1450 ::= SEQUENCE SRSASN_CODE other_params_v1450_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(overheat_ind_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE other_params_v1450_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(overheat_ind_r14_present, 1)); return SRSASN_SUCCESS; } void other_params_v1450_s::to_json(json_writer& j) const { j.start_obj(); if (overheat_ind_r14_present) { j.write_str("overheatingInd-r14", "supported"); } j.end_obj(); } // PhyLayerParameters-v1450 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1450_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_srs_enhancement_without_comb4_r14_present, 1)); HANDLE_CODE(bref.pack(crs_less_dw_pts_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1450_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_srs_enhancement_without_comb4_r14_present, 1)); HANDLE_CODE(bref.unpack(crs_less_dw_pts_r14_present, 1)); return SRSASN_SUCCESS; } void phy_layer_params_v1450_s::to_json(json_writer& j) const { j.start_obj(); if (ce_srs_enhancement_without_comb4_r14_present) { j.write_str("ce-SRS-EnhancementWithoutComb4-r14", "supported"); } if (crs_less_dw_pts_r14_present) { j.write_str("crs-LessDwPTS-r14", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1460_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_dl_v1460_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_category_dl_v1460_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_dl_v1460, (uint8_t)21, (uint8_t)21)); } HANDLE_CODE(other_params_v1460.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1460_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_dl_v1460_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_category_dl_v1460_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_dl_v1460, bref, (uint8_t)21, (uint8_t)21)); } HANDLE_CODE(other_params_v1460.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1460_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_dl_v1460_present) { j.write_int("ue-CategoryDL-v1460", ue_category_dl_v1460); } j.write_fieldname("otherParameters-v1460"); other_params_v1460.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // LWA-Parameters-v1440 ::= SEQUENCE SRSASN_CODE lwa_params_v1440_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(lwa_rlc_um_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE lwa_params_v1440_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(lwa_rlc_um_r14_present, 1)); return SRSASN_SUCCESS; } void lwa_params_v1440_s::to_json(json_writer& j) const { j.start_obj(); if (lwa_rlc_um_r14_present) { j.write_str("lwa-RLC-UM-r14", "supported"); } j.end_obj(); } // MAC-Parameters-v1440 ::= SEQUENCE SRSASN_CODE mac_params_v1440_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rai_support_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mac_params_v1440_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rai_support_r14_present, 1)); return SRSASN_SUCCESS; } void mac_params_v1440_s::to_json(json_writer& j) const { j.start_obj(); if (rai_support_r14_present) { j.write_str("rai-Support-r14", "supported"); } j.end_obj(); } // MMTEL-Parameters-r14 ::= SEQUENCE SRSASN_CODE mmtel_params_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(delay_budget_report_r14_present, 1)); HANDLE_CODE(bref.pack(pusch_enhance_r14_present, 1)); HANDLE_CODE(bref.pack(recommended_bit_rate_r14_present, 1)); HANDLE_CODE(bref.pack(recommended_bit_rate_query_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mmtel_params_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(delay_budget_report_r14_present, 1)); HANDLE_CODE(bref.unpack(pusch_enhance_r14_present, 1)); HANDLE_CODE(bref.unpack(recommended_bit_rate_r14_present, 1)); HANDLE_CODE(bref.unpack(recommended_bit_rate_query_r14_present, 1)); return SRSASN_SUCCESS; } void mmtel_params_r14_s::to_json(json_writer& j) const { j.start_obj(); if (delay_budget_report_r14_present) { j.write_str("delayBudgetReporting-r14", "supported"); } if (pusch_enhance_r14_present) { j.write_str("pusch-Enhancements-r14", "supported"); } if (recommended_bit_rate_r14_present) { j.write_str("recommendedBitRate-r14", "supported"); } if (recommended_bit_rate_query_r14_present) { j.write_str("recommendedBitRateQuery-r14", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1450_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1450_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1450_present, 1)); HANDLE_CODE(bref.pack(ue_category_dl_v1450_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (phy_layer_params_v1450_present) { HANDLE_CODE(phy_layer_params_v1450.pack(bref)); } if (rf_params_v1450_present) { HANDLE_CODE(rf_params_v1450.pack(bref)); } HANDLE_CODE(other_params_v1450.pack(bref)); if (ue_category_dl_v1450_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_dl_v1450, (uint8_t)20, (uint8_t)20)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1450_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1450_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1450_present, 1)); HANDLE_CODE(bref.unpack(ue_category_dl_v1450_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (phy_layer_params_v1450_present) { HANDLE_CODE(phy_layer_params_v1450.unpack(bref)); } if (rf_params_v1450_present) { HANDLE_CODE(rf_params_v1450.unpack(bref)); } HANDLE_CODE(other_params_v1450.unpack(bref)); if (ue_category_dl_v1450_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_dl_v1450, bref, (uint8_t)20, (uint8_t)20)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1450_ies_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1450_present) { j.write_fieldname("phyLayerParameters-v1450"); phy_layer_params_v1450.to_json(j); } if (rf_params_v1450_present) { j.write_fieldname("rf-Parameters-v1450"); rf_params_v1450.to_json(j); } j.write_fieldname("otherParameters-v1450"); other_params_v1450.to_json(j); if (ue_category_dl_v1450_present) { j.write_int("ue-CategoryDL-v1450", ue_category_dl_v1450); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CE-Parameters-v1430 ::= SEQUENCE SRSASN_CODE ce_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_switch_without_ho_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ce_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_switch_without_ho_r14_present, 1)); return SRSASN_SUCCESS; } void ce_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (ce_switch_without_ho_r14_present) { j.write_str("ce-SwitchWithoutHO-r14", "supported"); } j.end_obj(); } // HighSpeedEnhParameters-r14 ::= SEQUENCE SRSASN_CODE high_speed_enh_params_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_enhance_r14_present, 1)); HANDLE_CODE(bref.pack(demod_enhance_r14_present, 1)); HANDLE_CODE(bref.pack(prach_enhance_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE high_speed_enh_params_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_enhance_r14_present, 1)); HANDLE_CODE(bref.unpack(demod_enhance_r14_present, 1)); HANDLE_CODE(bref.unpack(prach_enhance_r14_present, 1)); return SRSASN_SUCCESS; } void high_speed_enh_params_r14_s::to_json(json_writer& j) const { j.start_obj(); if (meas_enhance_r14_present) { j.write_str("measurementEnhancements-r14", "supported"); } if (demod_enhance_r14_present) { j.write_str("demodulationEnhancements-r14", "supported"); } if (prach_enhance_r14_present) { j.write_str("prach-Enhancements-r14", "supported"); } j.end_obj(); } // LAA-Parameters-v1430 ::= SEQUENCE SRSASN_CODE laa_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cross_carrier_sched_laa_ul_r14_present, 1)); HANDLE_CODE(bref.pack(ul_laa_r14_present, 1)); HANDLE_CODE(bref.pack(two_step_sched_timing_info_r14_present, 1)); HANDLE_CODE(bref.pack(uss_blind_decoding_adjustment_r14_present, 1)); HANDLE_CODE(bref.pack(uss_blind_decoding_reduction_r14_present, 1)); HANDLE_CODE(bref.pack(out_of_seq_grant_handling_r14_present, 1)); if (two_step_sched_timing_info_r14_present) { HANDLE_CODE(pack_enum(bref, two_step_sched_timing_info_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE laa_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cross_carrier_sched_laa_ul_r14_present, 1)); HANDLE_CODE(bref.unpack(ul_laa_r14_present, 1)); HANDLE_CODE(bref.unpack(two_step_sched_timing_info_r14_present, 1)); HANDLE_CODE(bref.unpack(uss_blind_decoding_adjustment_r14_present, 1)); HANDLE_CODE(bref.unpack(uss_blind_decoding_reduction_r14_present, 1)); HANDLE_CODE(bref.unpack(out_of_seq_grant_handling_r14_present, 1)); if (two_step_sched_timing_info_r14_present) { HANDLE_CODE(unpack_enum(two_step_sched_timing_info_r14, bref)); } return SRSASN_SUCCESS; } void laa_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (cross_carrier_sched_laa_ul_r14_present) { j.write_str("crossCarrierSchedulingLAA-UL-r14", "supported"); } if (ul_laa_r14_present) { j.write_str("uplinkLAA-r14", "supported"); } if (two_step_sched_timing_info_r14_present) { j.write_str("twoStepSchedulingTimingInfo-r14", two_step_sched_timing_info_r14.to_string()); } if (uss_blind_decoding_adjustment_r14_present) { j.write_str("uss-BlindDecodingAdjustment-r14", "supported"); } if (uss_blind_decoding_reduction_r14_present) { j.write_str("uss-BlindDecodingReduction-r14", "supported"); } if (out_of_seq_grant_handling_r14_present) { j.write_str("outOfSequenceGrantHandling-r14", "supported"); } j.end_obj(); } // LWA-Parameters-v1430 ::= SEQUENCE SRSASN_CODE lwa_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(lwa_ho_without_wt_change_r14_present, 1)); HANDLE_CODE(bref.pack(lwa_ul_r14_present, 1)); HANDLE_CODE(bref.pack(wlan_periodic_meas_r14_present, 1)); HANDLE_CODE(bref.pack(wlan_report_any_wlan_r14_present, 1)); HANDLE_CODE(bref.pack(wlan_supported_data_rate_r14_present, 1)); if (wlan_supported_data_rate_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, wlan_supported_data_rate_r14, (uint16_t)1, (uint16_t)2048)); } return SRSASN_SUCCESS; } SRSASN_CODE lwa_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(lwa_ho_without_wt_change_r14_present, 1)); HANDLE_CODE(bref.unpack(lwa_ul_r14_present, 1)); HANDLE_CODE(bref.unpack(wlan_periodic_meas_r14_present, 1)); HANDLE_CODE(bref.unpack(wlan_report_any_wlan_r14_present, 1)); HANDLE_CODE(bref.unpack(wlan_supported_data_rate_r14_present, 1)); if (wlan_supported_data_rate_r14_present) { HANDLE_CODE(unpack_unalign_integer(wlan_supported_data_rate_r14, bref, (uint16_t)1, (uint16_t)2048)); } return SRSASN_SUCCESS; } void lwa_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (lwa_ho_without_wt_change_r14_present) { j.write_str("lwa-HO-WithoutWT-Change-r14", "supported"); } if (lwa_ul_r14_present) { j.write_str("lwa-UL-r14", "supported"); } if (wlan_periodic_meas_r14_present) { j.write_str("wlan-PeriodicMeas-r14", "supported"); } if (wlan_report_any_wlan_r14_present) { j.write_str("wlan-ReportAnyWLAN-r14", "supported"); } if (wlan_supported_data_rate_r14_present) { j.write_int("wlan-SupportedDataRate-r14", wlan_supported_data_rate_r14); } j.end_obj(); } // LWIP-Parameters-v1430 ::= SEQUENCE SRSASN_CODE lwip_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(lwip_aggregation_dl_r14_present, 1)); HANDLE_CODE(bref.pack(lwip_aggregation_ul_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE lwip_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(lwip_aggregation_dl_r14_present, 1)); HANDLE_CODE(bref.unpack(lwip_aggregation_ul_r14_present, 1)); return SRSASN_SUCCESS; } void lwip_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (lwip_aggregation_dl_r14_present) { j.write_str("lwip-Aggregation-DL-r14", "supported"); } if (lwip_aggregation_ul_r14_present) { j.write_str("lwip-Aggregation-UL-r14", "supported"); } j.end_obj(); } // MAC-Parameters-v1430 ::= SEQUENCE SRSASN_CODE mac_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(short_sps_interv_fdd_r14_present, 1)); HANDLE_CODE(bref.pack(short_sps_interv_tdd_r14_present, 1)); HANDLE_CODE(bref.pack(skip_ul_dynamic_r14_present, 1)); HANDLE_CODE(bref.pack(skip_ul_sps_r14_present, 1)); HANDLE_CODE(bref.pack(multiple_ul_sps_r14_present, 1)); HANDLE_CODE(bref.pack(data_inact_mon_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mac_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(short_sps_interv_fdd_r14_present, 1)); HANDLE_CODE(bref.unpack(short_sps_interv_tdd_r14_present, 1)); HANDLE_CODE(bref.unpack(skip_ul_dynamic_r14_present, 1)); HANDLE_CODE(bref.unpack(skip_ul_sps_r14_present, 1)); HANDLE_CODE(bref.unpack(multiple_ul_sps_r14_present, 1)); HANDLE_CODE(bref.unpack(data_inact_mon_r14_present, 1)); return SRSASN_SUCCESS; } void mac_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (short_sps_interv_fdd_r14_present) { j.write_str("shortSPS-IntervalFDD-r14", "supported"); } if (short_sps_interv_tdd_r14_present) { j.write_str("shortSPS-IntervalTDD-r14", "supported"); } if (skip_ul_dynamic_r14_present) { j.write_str("skipUplinkDynamic-r14", "supported"); } if (skip_ul_sps_r14_present) { j.write_str("skipUplinkSPS-r14", "supported"); } if (multiple_ul_sps_r14_present) { j.write_str("multipleUplinkSPS-r14", "supported"); } if (data_inact_mon_r14_present) { j.write_str("dataInactMon-r14", "supported"); } j.end_obj(); } // MBMS-Parameters-v1430 ::= SEQUENCE SRSASN_CODE mbms_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(fembms_ded_cell_r14_present, 1)); HANDLE_CODE(bref.pack(fembms_mixed_cell_r14_present, 1)); HANDLE_CODE(bref.pack(subcarrier_spacing_mbms_khz7dot5_r14_present, 1)); HANDLE_CODE(bref.pack(subcarrier_spacing_mbms_khz1dot25_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(fembms_ded_cell_r14_present, 1)); HANDLE_CODE(bref.unpack(fembms_mixed_cell_r14_present, 1)); HANDLE_CODE(bref.unpack(subcarrier_spacing_mbms_khz7dot5_r14_present, 1)); HANDLE_CODE(bref.unpack(subcarrier_spacing_mbms_khz1dot25_r14_present, 1)); return SRSASN_SUCCESS; } void mbms_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (fembms_ded_cell_r14_present) { j.write_str("fembmsDedicatedCell-r14", "supported"); } if (fembms_mixed_cell_r14_present) { j.write_str("fembmsMixedCell-r14", "supported"); } if (subcarrier_spacing_mbms_khz7dot5_r14_present) { j.write_str("subcarrierSpacingMBMS-khz7dot5-r14", "supported"); } if (subcarrier_spacing_mbms_khz1dot25_r14_present) { j.write_str("subcarrierSpacingMBMS-khz1dot25-r14", "supported"); } j.end_obj(); } // MeasParameters-v1430 ::= SEQUENCE SRSASN_CODE meas_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_meass_r14_present, 1)); HANDLE_CODE(bref.pack(ncsg_r14_present, 1)); HANDLE_CODE(bref.pack(short_meas_gap_r14_present, 1)); HANDLE_CODE(bref.pack(per_serving_cell_meas_gap_r14_present, 1)); HANDLE_CODE(bref.pack(non_uniform_gap_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE meas_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_meass_r14_present, 1)); HANDLE_CODE(bref.unpack(ncsg_r14_present, 1)); HANDLE_CODE(bref.unpack(short_meas_gap_r14_present, 1)); HANDLE_CODE(bref.unpack(per_serving_cell_meas_gap_r14_present, 1)); HANDLE_CODE(bref.unpack(non_uniform_gap_r14_present, 1)); return SRSASN_SUCCESS; } void meas_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (ce_meass_r14_present) { j.write_str("ceMeasurements-r14", "supported"); } if (ncsg_r14_present) { j.write_str("ncsg-r14", "supported"); } if (short_meas_gap_r14_present) { j.write_str("shortMeasurementGap-r14", "supported"); } if (per_serving_cell_meas_gap_r14_present) { j.write_str("perServingCellMeasurementGap-r14", "supported"); } if (non_uniform_gap_r14_present) { j.write_str("nonUniformGap-r14", "supported"); } j.end_obj(); } // MobilityParameters-r14 ::= SEQUENCE SRSASN_CODE mob_params_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(make_before_break_r14_present, 1)); HANDLE_CODE(bref.pack(rach_less_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mob_params_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(make_before_break_r14_present, 1)); HANDLE_CODE(bref.unpack(rach_less_r14_present, 1)); return SRSASN_SUCCESS; } void mob_params_r14_s::to_json(json_writer& j) const { j.start_obj(); if (make_before_break_r14_present) { j.write_str("makeBeforeBreak-r14", "supported"); } if (rach_less_r14_present) { j.write_str("rach-Less-r14", "supported"); } j.end_obj(); } // Other-Parameters-v1430 ::= SEQUENCE SRSASN_CODE other_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(bw_pref_ind_r14_present, 1)); HANDLE_CODE(bref.pack(rlm_report_support_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE other_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(bw_pref_ind_r14_present, 1)); HANDLE_CODE(bref.unpack(rlm_report_support_r14_present, 1)); return SRSASN_SUCCESS; } void other_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (bw_pref_ind_r14_present) { j.write_str("bwPrefInd-r14", "supported"); } if (rlm_report_support_r14_present) { j.write_str("rlm-ReportSupport-r14", "supported"); } j.end_obj(); } // PDCP-Parameters-v1430 ::= SEQUENCE SRSASN_CODE pdcp_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(max_num_rohc_context_sessions_r14_present, 1)); HANDLE_CODE(bref.pack(supported_ul_only_rohc_profiles_r14.profile0x0006_r14, 1)); if (max_num_rohc_context_sessions_r14_present) { HANDLE_CODE(pack_enum(bref, max_num_rohc_context_sessions_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE pdcp_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(max_num_rohc_context_sessions_r14_present, 1)); HANDLE_CODE(bref.unpack(supported_ul_only_rohc_profiles_r14.profile0x0006_r14, 1)); if (max_num_rohc_context_sessions_r14_present) { HANDLE_CODE(unpack_enum(max_num_rohc_context_sessions_r14, bref)); } return SRSASN_SUCCESS; } void pdcp_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("supportedUplinkOnlyROHC-Profiles-r14"); j.start_obj(); j.write_bool("profile0x0006-r14", supported_ul_only_rohc_profiles_r14.profile0x0006_r14); j.end_obj(); if (max_num_rohc_context_sessions_r14_present) { j.write_str("maxNumberROHC-ContextSessions-r14", max_num_rohc_context_sessions_r14.to_string()); } j.end_obj(); } // RLC-Parameters-v1430 ::= SEQUENCE SRSASN_CODE rlc_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(extended_poll_byte_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rlc_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(extended_poll_byte_r14_present, 1)); return SRSASN_SUCCESS; } void rlc_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (extended_poll_byte_r14_present) { j.write_str("extendedPollByte-r14", "supported"); } j.end_obj(); } // UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE SRSASN_CODE ue_based_netw_perf_meas_params_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(location_report_r14_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ue_based_netw_perf_meas_params_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(location_report_r14_present, 1)); return SRSASN_SUCCESS; } void ue_based_netw_perf_meas_params_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (location_report_r14_present) { j.write_str("locationReport-r14", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1440_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(lwa_params_v1440.pack(bref)); HANDLE_CODE(mac_params_v1440.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1440_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(lwa_params_v1440.unpack(bref)); HANDLE_CODE(mac_params_v1440.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1440_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("lwa-Parameters-v1440"); lwa_params_v1440.to_json(j); j.write_fieldname("mac-Parameters-v1440"); mac_params_v1440.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1430_present, 1)); HANDLE_CODE(bref.pack(mmtel_params_r14_present, 1)); if (phy_layer_params_v1430_present) { HANDLE_CODE(phy_layer_params_v1430.pack(bref)); } if (mmtel_params_r14_present) { HANDLE_CODE(mmtel_params_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(mmtel_params_r14_present, 1)); if (phy_layer_params_v1430_present) { HANDLE_CODE(phy_layer_params_v1430.unpack(bref)); } if (mmtel_params_r14_present) { HANDLE_CODE(mmtel_params_r14.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1430_present) { j.write_fieldname("phyLayerParameters-v1430"); phy_layer_params_v1430.to_json(j); } if (mmtel_params_r14_present) { j.write_fieldname("mmtel-Parameters-r14"); mmtel_params_r14.to_json(j); } j.end_obj(); } // MBMS-Parameters-v1470 ::= SEQUENCE SRSASN_CODE mbms_params_v1470_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mbms_scaling_factor1dot25_r14_present, 1)); HANDLE_CODE(bref.pack(mbms_scaling_factor7dot5_r14_present, 1)); HANDLE_CODE(mbms_max_bw_r14.pack(bref)); if (mbms_scaling_factor1dot25_r14_present) { HANDLE_CODE(pack_enum(bref, mbms_scaling_factor1dot25_r14)); } if (mbms_scaling_factor7dot5_r14_present) { HANDLE_CODE(pack_enum(bref, mbms_scaling_factor7dot5_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE mbms_params_v1470_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mbms_scaling_factor1dot25_r14_present, 1)); HANDLE_CODE(bref.unpack(mbms_scaling_factor7dot5_r14_present, 1)); HANDLE_CODE(mbms_max_bw_r14.unpack(bref)); if (mbms_scaling_factor1dot25_r14_present) { HANDLE_CODE(unpack_enum(mbms_scaling_factor1dot25_r14, bref)); } if (mbms_scaling_factor7dot5_r14_present) { HANDLE_CODE(unpack_enum(mbms_scaling_factor7dot5_r14, bref)); } return SRSASN_SUCCESS; } void mbms_params_v1470_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("mbms-MaxBW-r14"); mbms_max_bw_r14.to_json(j); if (mbms_scaling_factor1dot25_r14_present) { j.write_str("mbms-ScalingFactor1dot25-r14", mbms_scaling_factor1dot25_r14.to_string()); } if (mbms_scaling_factor7dot5_r14_present) { j.write_str("mbms-ScalingFactor7dot5-r14", mbms_scaling_factor7dot5_r14.to_string()); } j.end_obj(); } void mbms_params_v1470_s::mbms_max_bw_r14_c_::set(types::options e) { type_ = e; } void mbms_params_v1470_s::mbms_max_bw_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::implicit_value: break; case types::explicit_value: j.write_int("explicitValue", c); break; default: log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); } j.end_obj(); } SRSASN_CODE mbms_params_v1470_s::mbms_max_bw_r14_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::implicit_value: break; case types::explicit_value: HANDLE_CODE(pack_unalign_integer(bref, c, (uint8_t)2, (uint8_t)20)); break; default: log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE mbms_params_v1470_s::mbms_max_bw_r14_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::implicit_value: break; case types::explicit_value: HANDLE_CODE(unpack_unalign_integer(c, bref, (uint8_t)2, (uint8_t)20)); break; default: log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // Other-Parameters-v1360 ::= SEQUENCE SRSASN_CODE other_params_v1360_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(in_dev_coex_ind_hardware_sharing_ind_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE other_params_v1360_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(in_dev_coex_ind_hardware_sharing_ind_r13_present, 1)); return SRSASN_SUCCESS; } void other_params_v1360_s::to_json(json_writer& j) const { j.start_obj(); if (in_dev_coex_ind_hardware_sharing_ind_r13_present) { j.write_str("inDeviceCoexInd-HardwareSharingInd-r13", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_dl_v1430_present, 1)); HANDLE_CODE(bref.pack(ue_category_ul_v1430_present, 1)); HANDLE_CODE(bref.pack(ue_category_ul_v1430b_present, 1)); HANDLE_CODE(bref.pack(mac_params_v1430_present, 1)); HANDLE_CODE(bref.pack(meas_params_v1430_present, 1)); HANDLE_CODE(bref.pack(pdcp_params_v1430_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1430_present, 1)); HANDLE_CODE(bref.pack(laa_params_v1430_present, 1)); HANDLE_CODE(bref.pack(lwa_params_v1430_present, 1)); HANDLE_CODE(bref.pack(lwip_params_v1430_present, 1)); HANDLE_CODE(bref.pack(mmtel_params_r14_present, 1)); HANDLE_CODE(bref.pack(mob_params_r14_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1430_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1430_present, 1)); HANDLE_CODE(bref.pack(mbms_params_v1430_present, 1)); HANDLE_CODE(bref.pack(sl_params_v1430_present, 1)); HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_v1430_present, 1)); HANDLE_CODE(bref.pack(high_speed_enh_params_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(phy_layer_params_v1430.pack(bref)); if (ue_category_ul_v1430_present) { HANDLE_CODE(pack_enum(bref, ue_category_ul_v1430)); } if (mac_params_v1430_present) { HANDLE_CODE(mac_params_v1430.pack(bref)); } if (meas_params_v1430_present) { HANDLE_CODE(meas_params_v1430.pack(bref)); } if (pdcp_params_v1430_present) { HANDLE_CODE(pdcp_params_v1430.pack(bref)); } HANDLE_CODE(rlc_params_v1430.pack(bref)); if (rf_params_v1430_present) { HANDLE_CODE(rf_params_v1430.pack(bref)); } if (laa_params_v1430_present) { HANDLE_CODE(laa_params_v1430.pack(bref)); } if (lwa_params_v1430_present) { HANDLE_CODE(lwa_params_v1430.pack(bref)); } if (lwip_params_v1430_present) { HANDLE_CODE(lwip_params_v1430.pack(bref)); } HANDLE_CODE(other_params_v1430.pack(bref)); if (mmtel_params_r14_present) { HANDLE_CODE(mmtel_params_r14.pack(bref)); } if (mob_params_r14_present) { HANDLE_CODE(mob_params_r14.pack(bref)); } HANDLE_CODE(ce_params_v1430.pack(bref)); if (fdd_add_ue_eutra_capabilities_v1430_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1430.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1430_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1430.pack(bref)); } if (mbms_params_v1430_present) { HANDLE_CODE(mbms_params_v1430.pack(bref)); } if (sl_params_v1430_present) { HANDLE_CODE(sl_params_v1430.pack(bref)); } if (ue_based_netw_perf_meas_params_v1430_present) { HANDLE_CODE(ue_based_netw_perf_meas_params_v1430.pack(bref)); } if (high_speed_enh_params_r14_present) { HANDLE_CODE(high_speed_enh_params_r14.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_dl_v1430_present, 1)); HANDLE_CODE(bref.unpack(ue_category_ul_v1430_present, 1)); HANDLE_CODE(bref.unpack(ue_category_ul_v1430b_present, 1)); HANDLE_CODE(bref.unpack(mac_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(meas_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(pdcp_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(laa_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(lwa_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(lwip_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(mmtel_params_r14_present, 1)); HANDLE_CODE(bref.unpack(mob_params_r14_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1430_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1430_present, 1)); HANDLE_CODE(bref.unpack(mbms_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(sl_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(ue_based_netw_perf_meas_params_v1430_present, 1)); HANDLE_CODE(bref.unpack(high_speed_enh_params_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(phy_layer_params_v1430.unpack(bref)); if (ue_category_ul_v1430_present) { HANDLE_CODE(unpack_enum(ue_category_ul_v1430, bref)); } if (mac_params_v1430_present) { HANDLE_CODE(mac_params_v1430.unpack(bref)); } if (meas_params_v1430_present) { HANDLE_CODE(meas_params_v1430.unpack(bref)); } if (pdcp_params_v1430_present) { HANDLE_CODE(pdcp_params_v1430.unpack(bref)); } HANDLE_CODE(rlc_params_v1430.unpack(bref)); if (rf_params_v1430_present) { HANDLE_CODE(rf_params_v1430.unpack(bref)); } if (laa_params_v1430_present) { HANDLE_CODE(laa_params_v1430.unpack(bref)); } if (lwa_params_v1430_present) { HANDLE_CODE(lwa_params_v1430.unpack(bref)); } if (lwip_params_v1430_present) { HANDLE_CODE(lwip_params_v1430.unpack(bref)); } HANDLE_CODE(other_params_v1430.unpack(bref)); if (mmtel_params_r14_present) { HANDLE_CODE(mmtel_params_r14.unpack(bref)); } if (mob_params_r14_present) { HANDLE_CODE(mob_params_r14.unpack(bref)); } HANDLE_CODE(ce_params_v1430.unpack(bref)); if (fdd_add_ue_eutra_capabilities_v1430_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1430.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1430_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1430.unpack(bref)); } if (mbms_params_v1430_present) { HANDLE_CODE(mbms_params_v1430.unpack(bref)); } if (sl_params_v1430_present) { HANDLE_CODE(sl_params_v1430.unpack(bref)); } if (ue_based_netw_perf_meas_params_v1430_present) { HANDLE_CODE(ue_based_netw_perf_meas_params_v1430.unpack(bref)); } if (high_speed_enh_params_r14_present) { HANDLE_CODE(high_speed_enh_params_r14.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("phyLayerParameters-v1430"); phy_layer_params_v1430.to_json(j); if (ue_category_dl_v1430_present) { j.write_str("ue-CategoryDL-v1430", "m2"); } if (ue_category_ul_v1430_present) { j.write_str("ue-CategoryUL-v1430", ue_category_ul_v1430.to_string()); } if (ue_category_ul_v1430b_present) { j.write_str("ue-CategoryUL-v1430b", "n21"); } if (mac_params_v1430_present) { j.write_fieldname("mac-Parameters-v1430"); mac_params_v1430.to_json(j); } if (meas_params_v1430_present) { j.write_fieldname("measParameters-v1430"); meas_params_v1430.to_json(j); } if (pdcp_params_v1430_present) { j.write_fieldname("pdcp-Parameters-v1430"); pdcp_params_v1430.to_json(j); } j.write_fieldname("rlc-Parameters-v1430"); rlc_params_v1430.to_json(j); if (rf_params_v1430_present) { j.write_fieldname("rf-Parameters-v1430"); rf_params_v1430.to_json(j); } if (laa_params_v1430_present) { j.write_fieldname("laa-Parameters-v1430"); laa_params_v1430.to_json(j); } if (lwa_params_v1430_present) { j.write_fieldname("lwa-Parameters-v1430"); lwa_params_v1430.to_json(j); } if (lwip_params_v1430_present) { j.write_fieldname("lwip-Parameters-v1430"); lwip_params_v1430.to_json(j); } j.write_fieldname("otherParameters-v1430"); other_params_v1430.to_json(j); if (mmtel_params_r14_present) { j.write_fieldname("mmtel-Parameters-r14"); mmtel_params_r14.to_json(j); } if (mob_params_r14_present) { j.write_fieldname("mobilityParameters-r14"); mob_params_r14.to_json(j); } j.write_fieldname("ce-Parameters-v1430"); ce_params_v1430.to_json(j); if (fdd_add_ue_eutra_capabilities_v1430_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1430"); fdd_add_ue_eutra_capabilities_v1430.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1430_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1430"); tdd_add_ue_eutra_capabilities_v1430.to_json(j); } if (mbms_params_v1430_present) { j.write_fieldname("mbms-Parameters-v1430"); mbms_params_v1430.to_json(j); } if (sl_params_v1430_present) { j.write_fieldname("sl-Parameters-v1430"); sl_params_v1430.to_json(j); } if (ue_based_netw_perf_meas_params_v1430_present) { j.write_fieldname("ue-BasedNetwPerfMeasParameters-v1430"); ue_based_netw_perf_meas_params_v1430.to_json(j); } if (high_speed_enh_params_r14_present) { j.write_fieldname("highSpeedEnhParameters-r14"); high_speed_enh_params_r14.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CE-Parameters-v1350 ::= SEQUENCE SRSASN_CODE ce_params_v1350_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(unicast_freq_hop_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ce_params_v1350_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(unicast_freq_hop_r13_present, 1)); return SRSASN_SUCCESS; } void ce_params_v1350_s::to_json(json_writer& j) const { j.start_obj(); if (unicast_freq_hop_r13_present) { j.write_str("unicastFrequencyHopping-r13", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1360_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(other_params_v1360_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (other_params_v1360_present) { HANDLE_CODE(other_params_v1360.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1360_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(other_params_v1360_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (other_params_v1360_present) { HANDLE_CODE(other_params_v1360.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1360_ies_s::to_json(json_writer& j) const { j.start_obj(); if (other_params_v1360_present) { j.write_fieldname("other-Parameters-v1360"); other_params_v1360.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1470_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mbms_params_v1470_present, 1)); HANDLE_CODE(bref.pack(phy_layer_params_v1470_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1470_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mbms_params_v1470_present) { HANDLE_CODE(mbms_params_v1470.pack(bref)); } if (phy_layer_params_v1470_present) { HANDLE_CODE(phy_layer_params_v1470.pack(bref)); } if (rf_params_v1470_present) { HANDLE_CODE(rf_params_v1470.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1470_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mbms_params_v1470_present, 1)); HANDLE_CODE(bref.unpack(phy_layer_params_v1470_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1470_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mbms_params_v1470_present) { HANDLE_CODE(mbms_params_v1470.unpack(bref)); } if (phy_layer_params_v1470_present) { HANDLE_CODE(phy_layer_params_v1470.unpack(bref)); } if (rf_params_v1470_present) { HANDLE_CODE(rf_params_v1470.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1470_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mbms_params_v1470_present) { j.write_fieldname("mbms-Parameters-v1470"); mbms_params_v1470.to_json(j); } if (phy_layer_params_v1470_present) { j.write_fieldname("phyLayerParameters-v1470"); phy_layer_params_v1470.to_json(j); } if (rf_params_v1470_present) { j.write_fieldname("rf-Parameters-v1470"); rf_params_v1470.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // CE-Parameters-v1380 ::= SEQUENCE SRSASN_CODE ce_params_v1380_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tm6_ce_mode_a_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ce_params_v1380_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tm6_ce_mode_a_r13_present, 1)); return SRSASN_SUCCESS; } void ce_params_v1380_s::to_json(json_writer& j) const { j.start_obj(); if (tm6_ce_mode_a_r13_present) { j.write_str("tm6-CE-ModeA-r13", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1350_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_dl_v1350_present, 1)); HANDLE_CODE(bref.pack(ue_category_ul_v1350_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(ce_params_v1350.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1350_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_dl_v1350_present, 1)); HANDLE_CODE(bref.unpack(ue_category_ul_v1350_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(ce_params_v1350.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1350_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_dl_v1350_present) { j.write_str("ue-CategoryDL-v1350", "oneBis"); } if (ue_category_ul_v1350_present) { j.write_str("ue-CategoryUL-v1350", "oneBis"); } j.write_fieldname("ce-Parameters-v1350"); ce_params_v1350.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v13x0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v13x0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v13x0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v13x0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CE-Parameters-v1370 ::= SEQUENCE SRSASN_CODE ce_params_v1370_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tm9_ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.pack(tm9_ce_mode_b_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ce_params_v1370_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tm9_ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(tm9_ce_mode_b_r13_present, 1)); return SRSASN_SUCCESS; } void ce_params_v1370_s::to_json(json_writer& j) const { j.start_obj(); if (tm9_ce_mode_a_r13_present) { j.write_str("tm9-CE-ModeA-r13", "supported"); } if (tm9_ce_mode_b_r13_present) { j.write_str("tm9-CE-ModeB-r13", "supported"); } j.end_obj(); } // SCPTM-Parameters-r13 ::= SEQUENCE SRSASN_CODE scptm_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(scptm_parallel_reception_r13_present, 1)); HANDLE_CODE(bref.pack(scptm_scell_r13_present, 1)); HANDLE_CODE(bref.pack(scptm_non_serving_cell_r13_present, 1)); HANDLE_CODE(bref.pack(scptm_async_dc_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE scptm_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(scptm_parallel_reception_r13_present, 1)); HANDLE_CODE(bref.unpack(scptm_scell_r13_present, 1)); HANDLE_CODE(bref.unpack(scptm_non_serving_cell_r13_present, 1)); HANDLE_CODE(bref.unpack(scptm_async_dc_r13_present, 1)); return SRSASN_SUCCESS; } void scptm_params_r13_s::to_json(json_writer& j) const { j.start_obj(); if (scptm_parallel_reception_r13_present) { j.write_str("scptm-ParallelReception-r13", "supported"); } if (scptm_scell_r13_present) { j.write_str("scptm-SCell-r13", "supported"); } if (scptm_non_serving_cell_r13_present) { j.write_str("scptm-NonServingCell-r13", "supported"); } if (scptm_async_dc_r13_present) { j.write_str("scptm-AsyncDC-r13", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1340_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_ul_v1340_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_category_ul_v1340_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_ul_v1340, (uint8_t)15, (uint8_t)15)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1340_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_ul_v1340_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_category_ul_v1340_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_ul_v1340, bref, (uint8_t)15, (uint8_t)15)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1340_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_ul_v1340_present) { j.write_int("ue-CategoryUL-v1340", ue_category_ul_v1340); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1390_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v1390_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v1390_present) { HANDLE_CODE(rf_params_v1390.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1390_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v1390_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v1390_present) { HANDLE_CODE(rf_params_v1390.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1390_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v1390_present) { j.write_fieldname("rf-Parameters-v1390"); rf_params_v1390.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1380_s::pack(bit_ref& bref) const { HANDLE_CODE(ce_params_v1380.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1380_s::unpack(bit_ref& bref) { HANDLE_CODE(ce_params_v1380.unpack(bref)); return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1380_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ce-Parameters-v1380"); ce_params_v1380.to_json(j); j.end_obj(); } // CE-Parameters-v1320 ::= SEQUENCE SRSASN_CODE ce_params_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(intra_freq_a3_ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.pack(intra_freq_a3_ce_mode_b_r13_present, 1)); HANDLE_CODE(bref.pack(intra_freq_ho_ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.pack(intra_freq_ho_ce_mode_b_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ce_params_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(intra_freq_a3_ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(intra_freq_a3_ce_mode_b_r13_present, 1)); HANDLE_CODE(bref.unpack(intra_freq_ho_ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(intra_freq_ho_ce_mode_b_r13_present, 1)); return SRSASN_SUCCESS; } void ce_params_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (intra_freq_a3_ce_mode_a_r13_present) { j.write_str("intraFreqA3-CE-ModeA-r13", "supported"); } if (intra_freq_a3_ce_mode_b_r13_present) { j.write_str("intraFreqA3-CE-ModeB-r13", "supported"); } if (intra_freq_ho_ce_mode_a_r13_present) { j.write_str("intraFreqHO-CE-ModeA-r13", "supported"); } if (intra_freq_ho_ce_mode_b_r13_present) { j.write_str("intraFreqHO-CE-ModeB-r13", "supported"); } j.end_obj(); } // PhyLayerParameters-v1310 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(aperiodic_csi_report_r13_present, 1)); HANDLE_CODE(bref.pack(codebook_harq_ack_r13_present, 1)); HANDLE_CODE(bref.pack(cross_carrier_sched_b5_c_r13_present, 1)); HANDLE_CODE(bref.pack(fdd_harq_timing_tdd_r13_present, 1)); HANDLE_CODE(bref.pack(max_num_updated_csi_proc_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_format4_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_format5_r13_present, 1)); HANDLE_CODE(bref.pack(pucch_scell_r13_present, 1)); HANDLE_CODE(bref.pack(spatial_bundling_harq_ack_r13_present, 1)); HANDLE_CODE(bref.pack(supported_blind_decoding_r13_present, 1)); HANDLE_CODE(bref.pack(uci_pusch_ext_r13_present, 1)); HANDLE_CODE(bref.pack(crs_interf_mitigation_tm10_r13_present, 1)); HANDLE_CODE(bref.pack(pdsch_collision_handling_r13_present, 1)); if (aperiodic_csi_report_r13_present) { HANDLE_CODE(aperiodic_csi_report_r13.pack(bref)); } if (codebook_harq_ack_r13_present) { HANDLE_CODE(codebook_harq_ack_r13.pack(bref)); } if (max_num_updated_csi_proc_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, max_num_updated_csi_proc_r13, (uint8_t)5, (uint8_t)32)); } if (supported_blind_decoding_r13_present) { HANDLE_CODE(bref.pack(supported_blind_decoding_r13.max_num_decoding_r13_present, 1)); HANDLE_CODE(bref.pack(supported_blind_decoding_r13.pdcch_candidate_reductions_r13_present, 1)); HANDLE_CODE(bref.pack(supported_blind_decoding_r13.skip_monitoring_dci_format0_minus1_a_r13_present, 1)); if (supported_blind_decoding_r13.max_num_decoding_r13_present) { HANDLE_CODE( pack_unalign_integer(bref, supported_blind_decoding_r13.max_num_decoding_r13, (uint8_t)1, (uint8_t)32)); } } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(aperiodic_csi_report_r13_present, 1)); HANDLE_CODE(bref.unpack(codebook_harq_ack_r13_present, 1)); HANDLE_CODE(bref.unpack(cross_carrier_sched_b5_c_r13_present, 1)); HANDLE_CODE(bref.unpack(fdd_harq_timing_tdd_r13_present, 1)); HANDLE_CODE(bref.unpack(max_num_updated_csi_proc_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_format4_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_format5_r13_present, 1)); HANDLE_CODE(bref.unpack(pucch_scell_r13_present, 1)); HANDLE_CODE(bref.unpack(spatial_bundling_harq_ack_r13_present, 1)); HANDLE_CODE(bref.unpack(supported_blind_decoding_r13_present, 1)); HANDLE_CODE(bref.unpack(uci_pusch_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(crs_interf_mitigation_tm10_r13_present, 1)); HANDLE_CODE(bref.unpack(pdsch_collision_handling_r13_present, 1)); if (aperiodic_csi_report_r13_present) { HANDLE_CODE(aperiodic_csi_report_r13.unpack(bref)); } if (codebook_harq_ack_r13_present) { HANDLE_CODE(codebook_harq_ack_r13.unpack(bref)); } if (max_num_updated_csi_proc_r13_present) { HANDLE_CODE(unpack_unalign_integer(max_num_updated_csi_proc_r13, bref, (uint8_t)5, (uint8_t)32)); } if (supported_blind_decoding_r13_present) { HANDLE_CODE(bref.unpack(supported_blind_decoding_r13.max_num_decoding_r13_present, 1)); HANDLE_CODE(bref.unpack(supported_blind_decoding_r13.pdcch_candidate_reductions_r13_present, 1)); HANDLE_CODE(bref.unpack(supported_blind_decoding_r13.skip_monitoring_dci_format0_minus1_a_r13_present, 1)); if (supported_blind_decoding_r13.max_num_decoding_r13_present) { HANDLE_CODE( unpack_unalign_integer(supported_blind_decoding_r13.max_num_decoding_r13, bref, (uint8_t)1, (uint8_t)32)); } } return SRSASN_SUCCESS; } void phy_layer_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (aperiodic_csi_report_r13_present) { j.write_str("aperiodicCSI-Reporting-r13", aperiodic_csi_report_r13.to_string()); } if (codebook_harq_ack_r13_present) { j.write_str("codebook-HARQ-ACK-r13", codebook_harq_ack_r13.to_string()); } if (cross_carrier_sched_b5_c_r13_present) { j.write_str("crossCarrierScheduling-B5C-r13", "supported"); } if (fdd_harq_timing_tdd_r13_present) { j.write_str("fdd-HARQ-TimingTDD-r13", "supported"); } if (max_num_updated_csi_proc_r13_present) { j.write_int("maxNumberUpdatedCSI-Proc-r13", max_num_updated_csi_proc_r13); } if (pucch_format4_r13_present) { j.write_str("pucch-Format4-r13", "supported"); } if (pucch_format5_r13_present) { j.write_str("pucch-Format5-r13", "supported"); } if (pucch_scell_r13_present) { j.write_str("pucch-SCell-r13", "supported"); } if (spatial_bundling_harq_ack_r13_present) { j.write_str("spatialBundling-HARQ-ACK-r13", "supported"); } if (supported_blind_decoding_r13_present) { j.write_fieldname("supportedBlindDecoding-r13"); j.start_obj(); if (supported_blind_decoding_r13.max_num_decoding_r13_present) { j.write_int("maxNumberDecoding-r13", supported_blind_decoding_r13.max_num_decoding_r13); } if (supported_blind_decoding_r13.pdcch_candidate_reductions_r13_present) { j.write_str("pdcch-CandidateReductions-r13", "supported"); } if (supported_blind_decoding_r13.skip_monitoring_dci_format0_minus1_a_r13_present) { j.write_str("skipMonitoringDCI-Format0-1A-r13", "supported"); } j.end_obj(); } if (uci_pusch_ext_r13_present) { j.write_str("uci-PUSCH-Ext-r13", "supported"); } if (crs_interf_mitigation_tm10_r13_present) { j.write_str("crs-InterfMitigationTM10-r13", "supported"); } if (pdsch_collision_handling_r13_present) { j.write_str("pdsch-CollisionHandling-r13", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1330_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_dl_v1330_present, 1)); HANDLE_CODE(bref.pack(phy_layer_params_v1330_present, 1)); HANDLE_CODE(bref.pack(ue_ce_need_ul_gaps_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_category_dl_v1330_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_dl_v1330, (uint8_t)18, (uint8_t)19)); } if (phy_layer_params_v1330_present) { HANDLE_CODE(phy_layer_params_v1330.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1330_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_dl_v1330_present, 1)); HANDLE_CODE(bref.unpack(phy_layer_params_v1330_present, 1)); HANDLE_CODE(bref.unpack(ue_ce_need_ul_gaps_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_category_dl_v1330_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_dl_v1330, bref, (uint8_t)18, (uint8_t)19)); } if (phy_layer_params_v1330_present) { HANDLE_CODE(phy_layer_params_v1330.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1330_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_dl_v1330_present) { j.write_int("ue-CategoryDL-v1330", ue_category_dl_v1330); } if (phy_layer_params_v1330_present) { j.write_fieldname("phyLayerParameters-v1330"); phy_layer_params_v1330.to_json(j); } if (ue_ce_need_ul_gaps_r13_present) { j.write_str("ue-CE-NeedULGaps-r13", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1380_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v1380_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v1380_present) { HANDLE_CODE(rf_params_v1380.pack(bref)); } HANDLE_CODE(ce_params_v1380.pack(bref)); HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1380.pack(bref)); HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1380.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1380_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v1380_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v1380_present) { HANDLE_CODE(rf_params_v1380.unpack(bref)); } HANDLE_CODE(ce_params_v1380.unpack(bref)); HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1380.unpack(bref)); HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1380.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1380_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v1380_present) { j.write_fieldname("rf-Parameters-v1380"); rf_params_v1380.to_json(j); } j.write_fieldname("ce-Parameters-v1380"); ce_params_v1380.to_json(j); j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1380"); fdd_add_ue_eutra_capabilities_v1380.to_json(j); j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1380"); tdd_add_ue_eutra_capabilities_v1380.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1320_present, 1)); HANDLE_CODE(bref.pack(scptm_params_r13_present, 1)); if (phy_layer_params_v1320_present) { HANDLE_CODE(phy_layer_params_v1320.pack(bref)); } if (scptm_params_r13_present) { HANDLE_CODE(scptm_params_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1320_present, 1)); HANDLE_CODE(bref.unpack(scptm_params_r13_present, 1)); if (phy_layer_params_v1320_present) { HANDLE_CODE(phy_layer_params_v1320.unpack(bref)); } if (scptm_params_r13_present) { HANDLE_CODE(scptm_params_r13.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1320_present) { j.write_fieldname("phyLayerParameters-v1320"); phy_layer_params_v1320.to_json(j); } if (scptm_params_r13_present) { j.write_fieldname("scptm-Parameters-r13"); scptm_params_r13.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1370_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_params_v1370_present, 1)); if (ce_params_v1370_present) { HANDLE_CODE(ce_params_v1370.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1370_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_params_v1370_present, 1)); if (ce_params_v1370_present) { HANDLE_CODE(ce_params_v1370.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1370_s::to_json(json_writer& j) const { j.start_obj(); if (ce_params_v1370_present) { j.write_fieldname("ce-Parameters-v1370"); ce_params_v1370.to_json(j); } j.end_obj(); } // CE-Parameters-r13 ::= SEQUENCE SRSASN_CODE ce_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.pack(ce_mode_b_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ce_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.unpack(ce_mode_b_r13_present, 1)); return SRSASN_SUCCESS; } void ce_params_r13_s::to_json(json_writer& j) const { j.start_obj(); if (ce_mode_a_r13_present) { j.write_str("ce-ModeA-r13", "supported"); } if (ce_mode_b_r13_present) { j.write_str("ce-ModeB-r13", "supported"); } j.end_obj(); } // DC-Parameters-v1310 ::= SEQUENCE SRSASN_CODE dc_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pdcp_transfer_split_ul_r13_present, 1)); HANDLE_CODE(bref.pack(ue_sstd_meas_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE dc_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pdcp_transfer_split_ul_r13_present, 1)); HANDLE_CODE(bref.unpack(ue_sstd_meas_r13_present, 1)); return SRSASN_SUCCESS; } void dc_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (pdcp_transfer_split_ul_r13_present) { j.write_str("pdcp-TransferSplitUL-r13", "supported"); } if (ue_sstd_meas_r13_present) { j.write_str("ue-SSTD-Meas-r13", "supported"); } j.end_obj(); } // LAA-Parameters-r13 ::= SEQUENCE SRSASN_CODE laa_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cross_carrier_sched_laa_dl_r13_present, 1)); HANDLE_CODE(bref.pack(csi_rs_drs_rrm_meass_laa_r13_present, 1)); HANDLE_CODE(bref.pack(dl_laa_r13_present, 1)); HANDLE_CODE(bref.pack(ending_dw_pts_r13_present, 1)); HANDLE_CODE(bref.pack(second_slot_start_position_r13_present, 1)); HANDLE_CODE(bref.pack(tm9_laa_r13_present, 1)); HANDLE_CODE(bref.pack(tm10_laa_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE laa_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cross_carrier_sched_laa_dl_r13_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_drs_rrm_meass_laa_r13_present, 1)); HANDLE_CODE(bref.unpack(dl_laa_r13_present, 1)); HANDLE_CODE(bref.unpack(ending_dw_pts_r13_present, 1)); HANDLE_CODE(bref.unpack(second_slot_start_position_r13_present, 1)); HANDLE_CODE(bref.unpack(tm9_laa_r13_present, 1)); HANDLE_CODE(bref.unpack(tm10_laa_r13_present, 1)); return SRSASN_SUCCESS; } void laa_params_r13_s::to_json(json_writer& j) const { j.start_obj(); if (cross_carrier_sched_laa_dl_r13_present) { j.write_str("crossCarrierSchedulingLAA-DL-r13", "supported"); } if (csi_rs_drs_rrm_meass_laa_r13_present) { j.write_str("csi-RS-DRS-RRM-MeasurementsLAA-r13", "supported"); } if (dl_laa_r13_present) { j.write_str("downlinkLAA-r13", "supported"); } if (ending_dw_pts_r13_present) { j.write_str("endingDwPTS-r13", "supported"); } if (second_slot_start_position_r13_present) { j.write_str("secondSlotStartingPosition-r13", "supported"); } if (tm9_laa_r13_present) { j.write_str("tm9-LAA-r13", "supported"); } if (tm10_laa_r13_present) { j.write_str("tm10-LAA-r13", "supported"); } j.end_obj(); } // LWA-Parameters-r13 ::= SEQUENCE SRSASN_CODE lwa_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(lwa_r13_present, 1)); HANDLE_CODE(bref.pack(lwa_split_bearer_r13_present, 1)); HANDLE_CODE(bref.pack(wlan_mac_address_r13_present, 1)); HANDLE_CODE(bref.pack(lwa_buffer_size_r13_present, 1)); if (wlan_mac_address_r13_present) { HANDLE_CODE(wlan_mac_address_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE lwa_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(lwa_r13_present, 1)); HANDLE_CODE(bref.unpack(lwa_split_bearer_r13_present, 1)); HANDLE_CODE(bref.unpack(wlan_mac_address_r13_present, 1)); HANDLE_CODE(bref.unpack(lwa_buffer_size_r13_present, 1)); if (wlan_mac_address_r13_present) { HANDLE_CODE(wlan_mac_address_r13.unpack(bref)); } return SRSASN_SUCCESS; } void lwa_params_r13_s::to_json(json_writer& j) const { j.start_obj(); if (lwa_r13_present) { j.write_str("lwa-r13", "supported"); } if (lwa_split_bearer_r13_present) { j.write_str("lwa-SplitBearer-r13", "supported"); } if (wlan_mac_address_r13_present) { j.write_str("wlan-MAC-Address-r13", wlan_mac_address_r13.to_string()); } if (lwa_buffer_size_r13_present) { j.write_str("lwa-BufferSize-r13", "supported"); } j.end_obj(); } // LWIP-Parameters-r13 ::= SEQUENCE SRSASN_CODE lwip_params_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(lwip_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE lwip_params_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(lwip_r13_present, 1)); return SRSASN_SUCCESS; } void lwip_params_r13_s::to_json(json_writer& j) const { j.start_obj(); if (lwip_r13_present) { j.write_str("lwip-r13", "supported"); } j.end_obj(); } // MAC-Parameters-v1310 ::= SEQUENCE SRSASN_CODE mac_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(extended_mac_len_field_r13_present, 1)); HANDLE_CODE(bref.pack(extended_long_drx_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mac_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(extended_mac_len_field_r13_present, 1)); HANDLE_CODE(bref.unpack(extended_long_drx_r13_present, 1)); return SRSASN_SUCCESS; } void mac_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (extended_mac_len_field_r13_present) { j.write_str("extendedMAC-LengthField-r13", "supported"); } if (extended_long_drx_r13_present) { j.write_str("extendedLongDRX-r13", "supported"); } j.end_obj(); } // MeasParameters-v1310 ::= SEQUENCE SRSASN_CODE meas_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rs_sinr_meas_r13_present, 1)); HANDLE_CODE(bref.pack(white_cell_list_r13_present, 1)); HANDLE_CODE(bref.pack(extended_max_obj_id_r13_present, 1)); HANDLE_CODE(bref.pack(ul_pdcp_delay_r13_present, 1)); HANDLE_CODE(bref.pack(extended_freq_priorities_r13_present, 1)); HANDLE_CODE(bref.pack(multi_band_info_report_r13_present, 1)); HANDLE_CODE(bref.pack(rssi_and_ch_occupancy_report_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE meas_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rs_sinr_meas_r13_present, 1)); HANDLE_CODE(bref.unpack(white_cell_list_r13_present, 1)); HANDLE_CODE(bref.unpack(extended_max_obj_id_r13_present, 1)); HANDLE_CODE(bref.unpack(ul_pdcp_delay_r13_present, 1)); HANDLE_CODE(bref.unpack(extended_freq_priorities_r13_present, 1)); HANDLE_CODE(bref.unpack(multi_band_info_report_r13_present, 1)); HANDLE_CODE(bref.unpack(rssi_and_ch_occupancy_report_r13_present, 1)); return SRSASN_SUCCESS; } void meas_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (rs_sinr_meas_r13_present) { j.write_str("rs-SINR-Meas-r13", "supported"); } if (white_cell_list_r13_present) { j.write_str("whiteCellList-r13", "supported"); } if (extended_max_obj_id_r13_present) { j.write_str("extendedMaxObjectId-r13", "supported"); } if (ul_pdcp_delay_r13_present) { j.write_str("ul-PDCP-Delay-r13", "supported"); } if (extended_freq_priorities_r13_present) { j.write_str("extendedFreqPriorities-r13", "supported"); } if (multi_band_info_report_r13_present) { j.write_str("multiBandInfoReport-r13", "supported"); } if (rssi_and_ch_occupancy_report_r13_present) { j.write_str("rssi-AndChannelOccupancyReporting-r13", "supported"); } j.end_obj(); } // PDCP-Parameters-v1310 ::= SEQUENCE SRSASN_CODE pdcp_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pdcp_sn_ext_minus18bits_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE pdcp_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pdcp_sn_ext_minus18bits_r13_present, 1)); return SRSASN_SUCCESS; } void pdcp_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (pdcp_sn_ext_minus18bits_r13_present) { j.write_str("pdcp-SN-Extension-18bits-r13", "supported"); } j.end_obj(); } // RLC-Parameters-v1310 ::= SEQUENCE SRSASN_CODE rlc_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(extended_rlc_sn_so_field_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rlc_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(extended_rlc_sn_so_field_r13_present, 1)); return SRSASN_SUCCESS; } void rlc_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (extended_rlc_sn_so_field_r13_present) { j.write_str("extendedRLC-SN-SO-Field-r13", "supported"); } j.end_obj(); } // SL-Parameters-v1310 ::= SEQUENCE SRSASN_CODE sl_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(disc_sys_info_report_r13_present, 1)); HANDLE_CODE(bref.pack(comm_multiple_tx_r13_present, 1)); HANDLE_CODE(bref.pack(disc_inter_freq_tx_r13_present, 1)); HANDLE_CODE(bref.pack(disc_periodic_slss_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE sl_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(disc_sys_info_report_r13_present, 1)); HANDLE_CODE(bref.unpack(comm_multiple_tx_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_inter_freq_tx_r13_present, 1)); HANDLE_CODE(bref.unpack(disc_periodic_slss_r13_present, 1)); return SRSASN_SUCCESS; } void sl_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (disc_sys_info_report_r13_present) { j.write_str("discSysInfoReporting-r13", "supported"); } if (comm_multiple_tx_r13_present) { j.write_str("commMultipleTx-r13", "supported"); } if (disc_inter_freq_tx_r13_present) { j.write_str("discInterFreqTx-r13", "supported"); } if (disc_periodic_slss_r13_present) { j.write_str("discPeriodicSLSS-r13", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1320_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_params_v1320_present, 1)); HANDLE_CODE(bref.pack(phy_layer_params_v1320_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1320_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1320_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1320_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ce_params_v1320_present) { HANDLE_CODE(ce_params_v1320.pack(bref)); } if (phy_layer_params_v1320_present) { HANDLE_CODE(phy_layer_params_v1320.pack(bref)); } if (rf_params_v1320_present) { HANDLE_CODE(rf_params_v1320.pack(bref)); } if (fdd_add_ue_eutra_capabilities_v1320_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1320.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1320_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1320.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1320_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_params_v1320_present, 1)); HANDLE_CODE(bref.unpack(phy_layer_params_v1320_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1320_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1320_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1320_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ce_params_v1320_present) { HANDLE_CODE(ce_params_v1320.unpack(bref)); } if (phy_layer_params_v1320_present) { HANDLE_CODE(phy_layer_params_v1320.unpack(bref)); } if (rf_params_v1320_present) { HANDLE_CODE(rf_params_v1320.unpack(bref)); } if (fdd_add_ue_eutra_capabilities_v1320_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1320.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1320_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1320.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1320_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ce_params_v1320_present) { j.write_fieldname("ce-Parameters-v1320"); ce_params_v1320.to_json(j); } if (phy_layer_params_v1320_present) { j.write_fieldname("phyLayerParameters-v1320"); phy_layer_params_v1320.to_json(j); } if (rf_params_v1320_present) { j.write_fieldname("rf-Parameters-v1320"); rf_params_v1320.to_json(j); } if (fdd_add_ue_eutra_capabilities_v1320_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1320"); fdd_add_ue_eutra_capabilities_v1320.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1320_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1320"); tdd_add_ue_eutra_capabilities_v1320.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1370_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ce_params_v1370_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1370_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1370_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ce_params_v1370_present) { HANDLE_CODE(ce_params_v1370.pack(bref)); } if (fdd_add_ue_eutra_capabilities_v1370_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1370.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1370_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1370.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1370_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ce_params_v1370_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1370_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1370_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ce_params_v1370_present) { HANDLE_CODE(ce_params_v1370.unpack(bref)); } if (fdd_add_ue_eutra_capabilities_v1370_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1370.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1370_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1370.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1370_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ce_params_v1370_present) { j.write_fieldname("ce-Parameters-v1370"); ce_params_v1370.to_json(j); } if (fdd_add_ue_eutra_capabilities_v1370_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1370"); fdd_add_ue_eutra_capabilities_v1370.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1370_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1370"); tdd_add_ue_eutra_capabilities_v1370.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1310_present, 1)); if (phy_layer_params_v1310_present) { HANDLE_CODE(phy_layer_params_v1310.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1310_present, 1)); if (phy_layer_params_v1310_present) { HANDLE_CODE(phy_layer_params_v1310.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1310_present) { j.write_fieldname("phyLayerParameters-v1310"); phy_layer_params_v1310.to_json(j); } j.end_obj(); } // WLAN-IW-Parameters-v1310 ::= SEQUENCE SRSASN_CODE wlan_iw_params_v1310_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rclwi_r13_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE wlan_iw_params_v1310_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rclwi_r13_present, 1)); return SRSASN_SUCCESS; } void wlan_iw_params_v1310_s::to_json(json_writer& j) const { j.start_obj(); if (rclwi_r13_present) { j.write_str("rclwi-r13", "supported"); } j.end_obj(); } // PhyLayerParameters-v1280 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1280_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(alternative_tbs_indices_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1280_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(alternative_tbs_indices_r12_present, 1)); return SRSASN_SUCCESS; } void phy_layer_params_v1280_s::to_json(json_writer& j) const { j.start_obj(); if (alternative_tbs_indices_r12_present) { j.write_str("alternativeTBS-Indices-r12", "supported"); } j.end_obj(); } // RF-Parameters-v12b0 ::= SEQUENCE SRSASN_CODE rf_params_v12b0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(max_layers_mimo_ind_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v12b0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(max_layers_mimo_ind_r12_present, 1)); return SRSASN_SUCCESS; } void rf_params_v12b0_s::to_json(json_writer& j) const { j.start_obj(); if (max_layers_mimo_ind_r12_present) { j.write_str("maxLayersMIMO-Indication-r12", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v12x0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v12x0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v12x0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_dl_v1310_present, 1)); HANDLE_CODE(bref.pack(ue_category_ul_v1310_present, 1)); HANDLE_CODE(bref.pack(mac_params_v1310_present, 1)); HANDLE_CODE(bref.pack(phy_layer_params_v1310_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1310_present, 1)); HANDLE_CODE(bref.pack(meas_params_v1310_present, 1)); HANDLE_CODE(bref.pack(dc_params_v1310_present, 1)); HANDLE_CODE(bref.pack(sl_params_v1310_present, 1)); HANDLE_CODE(bref.pack(scptm_params_r13_present, 1)); HANDLE_CODE(bref.pack(ce_params_r13_present, 1)); HANDLE_CODE(bref.pack(laa_params_r13_present, 1)); HANDLE_CODE(bref.pack(lwa_params_r13_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1310_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1310_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_category_dl_v1310_present) { HANDLE_CODE(pack_enum(bref, ue_category_dl_v1310)); } if (ue_category_ul_v1310_present) { HANDLE_CODE(pack_enum(bref, ue_category_ul_v1310)); } HANDLE_CODE(pdcp_params_v1310.pack(bref)); HANDLE_CODE(rlc_params_v1310.pack(bref)); if (mac_params_v1310_present) { HANDLE_CODE(mac_params_v1310.pack(bref)); } if (phy_layer_params_v1310_present) { HANDLE_CODE(phy_layer_params_v1310.pack(bref)); } if (rf_params_v1310_present) { HANDLE_CODE(rf_params_v1310.pack(bref)); } if (meas_params_v1310_present) { HANDLE_CODE(meas_params_v1310.pack(bref)); } if (dc_params_v1310_present) { HANDLE_CODE(dc_params_v1310.pack(bref)); } if (sl_params_v1310_present) { HANDLE_CODE(sl_params_v1310.pack(bref)); } if (scptm_params_r13_present) { HANDLE_CODE(scptm_params_r13.pack(bref)); } if (ce_params_r13_present) { HANDLE_CODE(ce_params_r13.pack(bref)); } HANDLE_CODE(inter_rat_params_wlan_r13.pack(bref)); if (laa_params_r13_present) { HANDLE_CODE(laa_params_r13.pack(bref)); } if (lwa_params_r13_present) { HANDLE_CODE(lwa_params_r13.pack(bref)); } HANDLE_CODE(wlan_iw_params_v1310.pack(bref)); HANDLE_CODE(lwip_params_r13.pack(bref)); if (fdd_add_ue_eutra_capabilities_v1310_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1310.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1310_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1310.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_dl_v1310_present, 1)); HANDLE_CODE(bref.unpack(ue_category_ul_v1310_present, 1)); HANDLE_CODE(bref.unpack(mac_params_v1310_present, 1)); HANDLE_CODE(bref.unpack(phy_layer_params_v1310_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1310_present, 1)); HANDLE_CODE(bref.unpack(meas_params_v1310_present, 1)); HANDLE_CODE(bref.unpack(dc_params_v1310_present, 1)); HANDLE_CODE(bref.unpack(sl_params_v1310_present, 1)); HANDLE_CODE(bref.unpack(scptm_params_r13_present, 1)); HANDLE_CODE(bref.unpack(ce_params_r13_present, 1)); HANDLE_CODE(bref.unpack(laa_params_r13_present, 1)); HANDLE_CODE(bref.unpack(lwa_params_r13_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1310_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1310_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_category_dl_v1310_present) { HANDLE_CODE(unpack_enum(ue_category_dl_v1310, bref)); } if (ue_category_ul_v1310_present) { HANDLE_CODE(unpack_enum(ue_category_ul_v1310, bref)); } HANDLE_CODE(pdcp_params_v1310.unpack(bref)); HANDLE_CODE(rlc_params_v1310.unpack(bref)); if (mac_params_v1310_present) { HANDLE_CODE(mac_params_v1310.unpack(bref)); } if (phy_layer_params_v1310_present) { HANDLE_CODE(phy_layer_params_v1310.unpack(bref)); } if (rf_params_v1310_present) { HANDLE_CODE(rf_params_v1310.unpack(bref)); } if (meas_params_v1310_present) { HANDLE_CODE(meas_params_v1310.unpack(bref)); } if (dc_params_v1310_present) { HANDLE_CODE(dc_params_v1310.unpack(bref)); } if (sl_params_v1310_present) { HANDLE_CODE(sl_params_v1310.unpack(bref)); } if (scptm_params_r13_present) { HANDLE_CODE(scptm_params_r13.unpack(bref)); } if (ce_params_r13_present) { HANDLE_CODE(ce_params_r13.unpack(bref)); } HANDLE_CODE(inter_rat_params_wlan_r13.unpack(bref)); if (laa_params_r13_present) { HANDLE_CODE(laa_params_r13.unpack(bref)); } if (lwa_params_r13_present) { HANDLE_CODE(lwa_params_r13.unpack(bref)); } HANDLE_CODE(wlan_iw_params_v1310.unpack(bref)); HANDLE_CODE(lwip_params_r13.unpack(bref)); if (fdd_add_ue_eutra_capabilities_v1310_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1310.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1310_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1310.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_dl_v1310_present) { j.write_str("ue-CategoryDL-v1310", ue_category_dl_v1310.to_string()); } if (ue_category_ul_v1310_present) { j.write_str("ue-CategoryUL-v1310", ue_category_ul_v1310.to_string()); } j.write_fieldname("pdcp-Parameters-v1310"); pdcp_params_v1310.to_json(j); j.write_fieldname("rlc-Parameters-v1310"); rlc_params_v1310.to_json(j); if (mac_params_v1310_present) { j.write_fieldname("mac-Parameters-v1310"); mac_params_v1310.to_json(j); } if (phy_layer_params_v1310_present) { j.write_fieldname("phyLayerParameters-v1310"); phy_layer_params_v1310.to_json(j); } if (rf_params_v1310_present) { j.write_fieldname("rf-Parameters-v1310"); rf_params_v1310.to_json(j); } if (meas_params_v1310_present) { j.write_fieldname("measParameters-v1310"); meas_params_v1310.to_json(j); } if (dc_params_v1310_present) { j.write_fieldname("dc-Parameters-v1310"); dc_params_v1310.to_json(j); } if (sl_params_v1310_present) { j.write_fieldname("sl-Parameters-v1310"); sl_params_v1310.to_json(j); } if (scptm_params_r13_present) { j.write_fieldname("scptm-Parameters-r13"); scptm_params_r13.to_json(j); } if (ce_params_r13_present) { j.write_fieldname("ce-Parameters-r13"); ce_params_r13.to_json(j); } j.write_fieldname("interRAT-ParametersWLAN-r13"); inter_rat_params_wlan_r13.to_json(j); if (laa_params_r13_present) { j.write_fieldname("laa-Parameters-r13"); laa_params_r13.to_json(j); } if (lwa_params_r13_present) { j.write_fieldname("lwa-Parameters-r13"); lwa_params_r13.to_json(j); } j.write_fieldname("wlan-IW-Parameters-v1310"); wlan_iw_params_v1310.to_json(j); j.write_fieldname("lwip-Parameters-r13"); lwip_params_r13.to_json(j); if (fdd_add_ue_eutra_capabilities_v1310_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1310"); fdd_add_ue_eutra_capabilities_v1310.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1310_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1310"); tdd_add_ue_eutra_capabilities_v1310.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1280_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1280_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (phy_layer_params_v1280_present) { HANDLE_CODE(phy_layer_params_v1280.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1280_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1280_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (phy_layer_params_v1280_present) { HANDLE_CODE(phy_layer_params_v1280.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1280_ies_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1280_present) { j.write_fieldname("phyLayerParameters-v1280"); phy_layer_params_v1280.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v12b0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v12b0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v12b0_present) { HANDLE_CODE(rf_params_v12b0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v12b0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v12b0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v12b0_present) { HANDLE_CODE(rf_params_v12b0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v12b0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v12b0_present) { j.write_fieldname("rf-Parameters-v12b0"); rf_params_v12b0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // MeasParameters-v1250 ::= SEQUENCE SRSASN_CODE meas_params_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(timer_t312_r12_present, 1)); HANDLE_CODE(bref.pack(alternative_time_to_trigger_r12_present, 1)); HANDLE_CODE(bref.pack(inc_mon_eutra_r12_present, 1)); HANDLE_CODE(bref.pack(inc_mon_utra_r12_present, 1)); HANDLE_CODE(bref.pack(extended_max_meas_id_r12_present, 1)); HANDLE_CODE(bref.pack(extended_rsrq_lower_range_r12_present, 1)); HANDLE_CODE(bref.pack(rsrq_on_all_symbols_r12_present, 1)); HANDLE_CODE(bref.pack(crs_discovery_signals_meas_r12_present, 1)); HANDLE_CODE(bref.pack(csi_rs_discovery_signals_meas_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE meas_params_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(timer_t312_r12_present, 1)); HANDLE_CODE(bref.unpack(alternative_time_to_trigger_r12_present, 1)); HANDLE_CODE(bref.unpack(inc_mon_eutra_r12_present, 1)); HANDLE_CODE(bref.unpack(inc_mon_utra_r12_present, 1)); HANDLE_CODE(bref.unpack(extended_max_meas_id_r12_present, 1)); HANDLE_CODE(bref.unpack(extended_rsrq_lower_range_r12_present, 1)); HANDLE_CODE(bref.unpack(rsrq_on_all_symbols_r12_present, 1)); HANDLE_CODE(bref.unpack(crs_discovery_signals_meas_r12_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_discovery_signals_meas_r12_present, 1)); return SRSASN_SUCCESS; } void meas_params_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (timer_t312_r12_present) { j.write_str("timerT312-r12", "supported"); } if (alternative_time_to_trigger_r12_present) { j.write_str("alternativeTimeToTrigger-r12", "supported"); } if (inc_mon_eutra_r12_present) { j.write_str("incMonEUTRA-r12", "supported"); } if (inc_mon_utra_r12_present) { j.write_str("incMonUTRA-r12", "supported"); } if (extended_max_meas_id_r12_present) { j.write_str("extendedMaxMeasId-r12", "supported"); } if (extended_rsrq_lower_range_r12_present) { j.write_str("extendedRSRQ-LowerRange-r12", "supported"); } if (rsrq_on_all_symbols_r12_present) { j.write_str("rsrq-OnAllSymbols-r12", "supported"); } if (crs_discovery_signals_meas_r12_present) { j.write_str("crs-DiscoverySignalsMeas-r12", "supported"); } if (csi_rs_discovery_signals_meas_r12_present) { j.write_str("csi-RS-DiscoverySignalsMeas-r12", "supported"); } j.end_obj(); } // Other-Parameters-v11d0 ::= SEQUENCE SRSASN_CODE other_params_v11d0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(in_dev_coex_ind_ul_ca_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE other_params_v11d0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(in_dev_coex_ind_ul_ca_r11_present, 1)); return SRSASN_SUCCESS; } void other_params_v11d0_s::to_json(json_writer& j) const { j.start_obj(); if (in_dev_coex_ind_ul_ca_r11_present) { j.write_str("inDeviceCoexInd-UL-CA-r11", "supported"); } j.end_obj(); } // RF-Parameters-v10j0 ::= SEQUENCE SRSASN_CODE rf_params_v10j0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(multi_ns_pmax_r10_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v10j0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(multi_ns_pmax_r10_present, 1)); return SRSASN_SUCCESS; } void rf_params_v10j0_s::to_json(json_writer& j) const { j.start_obj(); if (multi_ns_pmax_r10_present) { j.write_str("multiNS-Pmax-r10", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v11x0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v11x0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v11x0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1270_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v1270_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v1270_present) { HANDLE_CODE(rf_params_v1270.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1270_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v1270_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v1270_present) { HANDLE_CODE(rf_params_v1270.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1270_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v1270_present) { j.write_fieldname("rf-Parameters-v1270"); rf_params_v1270.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // DC-Parameters-r12 ::= SEQUENCE SRSASN_CODE dc_params_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(drb_type_split_r12_present, 1)); HANDLE_CODE(bref.pack(drb_type_scg_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE dc_params_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(drb_type_split_r12_present, 1)); HANDLE_CODE(bref.unpack(drb_type_scg_r12_present, 1)); return SRSASN_SUCCESS; } void dc_params_r12_s::to_json(json_writer& j) const { j.start_obj(); if (drb_type_split_r12_present) { j.write_str("drb-TypeSplit-r12", "supported"); } if (drb_type_scg_r12_present) { j.write_str("drb-TypeSCG-r12", "supported"); } j.end_obj(); } // MAC-Parameters-r12 ::= SEQUENCE SRSASN_CODE mac_params_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(lc_ch_sr_prohibit_timer_r12_present, 1)); HANDLE_CODE(bref.pack(long_drx_cmd_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mac_params_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(lc_ch_sr_prohibit_timer_r12_present, 1)); HANDLE_CODE(bref.unpack(long_drx_cmd_r12_present, 1)); return SRSASN_SUCCESS; } void mac_params_r12_s::to_json(json_writer& j) const { j.start_obj(); if (lc_ch_sr_prohibit_timer_r12_present) { j.write_str("logicalChannelSR-ProhibitTimer-r12", "supported"); } if (long_drx_cmd_r12_present) { j.write_str("longDRX-Command-r12", "supported"); } j.end_obj(); } // MBMS-Parameters-v1250 ::= SEQUENCE SRSASN_CODE mbms_params_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mbms_async_dc_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_params_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mbms_async_dc_r12_present, 1)); return SRSASN_SUCCESS; } void mbms_params_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (mbms_async_dc_r12_present) { j.write_str("mbms-AsyncDC-r12", "supported"); } j.end_obj(); } // RLC-Parameters-r12 ::= SEQUENCE SRSASN_CODE rlc_params_r12_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE rlc_params_r12_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void rlc_params_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("extended-RLC-LI-Field-r12", "supported"); j.end_obj(); } // UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE SRSASN_CODE ue_based_netw_perf_meas_params_v1250_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE ue_based_netw_perf_meas_params_v1250_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void ue_based_netw_perf_meas_params_v1250_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("loggedMBSFNMeasurements-r12", "supported"); j.end_obj(); } // UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v10j0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v10j0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v10j0_present) { HANDLE_CODE(rf_params_v10j0.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v10j0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v10j0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v10j0_present) { HANDLE_CODE(rf_params_v10j0.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v10j0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v10j0_present) { j.write_fieldname("rf-Parameters-v10j0"); rf_params_v10j0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v11d0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v11d0_present, 1)); HANDLE_CODE(bref.pack(other_params_v11d0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v11d0_present) { HANDLE_CODE(rf_params_v11d0.pack(bref)); } if (other_params_v11d0_present) { HANDLE_CODE(other_params_v11d0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v11d0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v11d0_present, 1)); HANDLE_CODE(bref.unpack(other_params_v11d0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v11d0_present) { HANDLE_CODE(rf_params_v11d0.unpack(bref)); } if (other_params_v11d0_present) { HANDLE_CODE(other_params_v11d0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v11d0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v11d0_present) { j.write_fieldname("rf-Parameters-v11d0"); rf_params_v11d0.to_json(j); } if (other_params_v11d0_present) { j.write_fieldname("otherParameters-v11d0"); other_params_v11d0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1260_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_dl_v1260_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_category_dl_v1260_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_dl_v1260, (uint8_t)15, (uint8_t)16)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1260_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_dl_v1260_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_category_dl_v1260_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_dl_v1260, bref, (uint8_t)15, (uint8_t)16)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1260_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_dl_v1260_present) { j.write_int("ue-CategoryDL-v1260", ue_category_dl_v1260); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1250_present, 1)); HANDLE_CODE(bref.pack(meas_params_v1250_present, 1)); if (phy_layer_params_v1250_present) { HANDLE_CODE(phy_layer_params_v1250.pack(bref)); } if (meas_params_v1250_present) { HANDLE_CODE(meas_params_v1250.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1250_present, 1)); HANDLE_CODE(bref.unpack(meas_params_v1250_present, 1)); if (phy_layer_params_v1250_present) { HANDLE_CODE(phy_layer_params_v1250.unpack(bref)); } if (meas_params_v1250_present) { HANDLE_CODE(meas_params_v1250.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1250_present) { j.write_fieldname("phyLayerParameters-v1250"); phy_layer_params_v1250.to_json(j); } if (meas_params_v1250_present) { j.write_fieldname("measParameters-v1250"); meas_params_v1250.to_json(j); } j.end_obj(); } // WLAN-IW-Parameters-r12 ::= SEQUENCE SRSASN_CODE wlan_iw_params_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(wlan_iw_ran_rules_r12_present, 1)); HANDLE_CODE(bref.pack(wlan_iw_andsf_policies_r12_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE wlan_iw_params_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(wlan_iw_ran_rules_r12_present, 1)); HANDLE_CODE(bref.unpack(wlan_iw_andsf_policies_r12_present, 1)); return SRSASN_SUCCESS; } void wlan_iw_params_r12_s::to_json(json_writer& j) const { j.start_obj(); if (wlan_iw_ran_rules_r12_present) { j.write_str("wlan-IW-RAN-Rules-r12", "supported"); } if (wlan_iw_andsf_policies_r12_present) { j.write_str("wlan-IW-ANDSF-Policies-r12", "supported"); } j.end_obj(); } // MBMS-Parameters-r11 ::= SEQUENCE SRSASN_CODE mbms_params_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mbms_scell_r11_present, 1)); HANDLE_CODE(bref.pack(mbms_non_serving_cell_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE mbms_params_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mbms_scell_r11_present, 1)); HANDLE_CODE(bref.unpack(mbms_non_serving_cell_r11_present, 1)); return SRSASN_SUCCESS; } void mbms_params_r11_s::to_json(json_writer& j) const { j.start_obj(); if (mbms_scell_r11_present) { j.write_str("mbms-SCell-r11", "supported"); } if (mbms_non_serving_cell_r11_present) { j.write_str("mbms-NonServingCell-r11", "supported"); } j.end_obj(); } // MeasParameters-v11a0 ::= SEQUENCE SRSASN_CODE meas_params_v11a0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(benefits_from_interruption_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE meas_params_v11a0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(benefits_from_interruption_r11_present, 1)); return SRSASN_SUCCESS; } void meas_params_v11a0_s::to_json(json_writer& j) const { j.start_obj(); if (benefits_from_interruption_r11_present) { j.write_str("benefitsFromInterruption-r11", "true"); } j.end_obj(); } // RF-Parameters-v10f0 ::= SEQUENCE SRSASN_CODE rf_params_v10f0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(modified_mpr_behavior_r10_present, 1)); if (modified_mpr_behavior_r10_present) { HANDLE_CODE(modified_mpr_behavior_r10.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE rf_params_v10f0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(modified_mpr_behavior_r10_present, 1)); if (modified_mpr_behavior_r10_present) { HANDLE_CODE(modified_mpr_behavior_r10.unpack(bref)); } return SRSASN_SUCCESS; } void rf_params_v10f0_s::to_json(json_writer& j) const { j.start_obj(); if (modified_mpr_behavior_r10_present) { j.write_str("modifiedMPR-Behavior-r10", modified_mpr_behavior_r10.to_string()); } j.end_obj(); } // UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v10i0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v10i0_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v10i0_present) { HANDLE_CODE(rf_params_v10i0.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v10i0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v10i0_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v10i0_present) { HANDLE_CODE(rf_params_v10i0.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v10i0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v10i0_present) { j.write_fieldname("rf-Parameters-v10i0"); rf_params_v10i0.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1250_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1250_present, 1)); HANDLE_CODE(bref.pack(rlc_params_r12_present, 1)); HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_v1250_present, 1)); HANDLE_CODE(bref.pack(ue_category_dl_r12_present, 1)); HANDLE_CODE(bref.pack(ue_category_ul_r12_present, 1)); HANDLE_CODE(bref.pack(wlan_iw_params_r12_present, 1)); HANDLE_CODE(bref.pack(meas_params_v1250_present, 1)); HANDLE_CODE(bref.pack(dc_params_r12_present, 1)); HANDLE_CODE(bref.pack(mbms_params_v1250_present, 1)); HANDLE_CODE(bref.pack(mac_params_r12_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1250_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1250_present, 1)); HANDLE_CODE(bref.pack(sl_params_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (phy_layer_params_v1250_present) { HANDLE_CODE(phy_layer_params_v1250.pack(bref)); } if (rf_params_v1250_present) { HANDLE_CODE(rf_params_v1250.pack(bref)); } if (rlc_params_r12_present) { HANDLE_CODE(rlc_params_r12.pack(bref)); } if (ue_based_netw_perf_meas_params_v1250_present) { HANDLE_CODE(ue_based_netw_perf_meas_params_v1250.pack(bref)); } if (ue_category_dl_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_dl_r12, (uint8_t)0, (uint8_t)14)); } if (ue_category_ul_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_ul_r12, (uint8_t)0, (uint8_t)13)); } if (wlan_iw_params_r12_present) { HANDLE_CODE(wlan_iw_params_r12.pack(bref)); } if (meas_params_v1250_present) { HANDLE_CODE(meas_params_v1250.pack(bref)); } if (dc_params_r12_present) { HANDLE_CODE(dc_params_r12.pack(bref)); } if (mbms_params_v1250_present) { HANDLE_CODE(mbms_params_v1250.pack(bref)); } if (mac_params_r12_present) { HANDLE_CODE(mac_params_r12.pack(bref)); } if (fdd_add_ue_eutra_capabilities_v1250_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1250.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1250_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1250.pack(bref)); } if (sl_params_r12_present) { HANDLE_CODE(sl_params_r12.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1250_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1250_present, 1)); HANDLE_CODE(bref.unpack(rlc_params_r12_present, 1)); HANDLE_CODE(bref.unpack(ue_based_netw_perf_meas_params_v1250_present, 1)); HANDLE_CODE(bref.unpack(ue_category_dl_r12_present, 1)); HANDLE_CODE(bref.unpack(ue_category_ul_r12_present, 1)); HANDLE_CODE(bref.unpack(wlan_iw_params_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_params_v1250_present, 1)); HANDLE_CODE(bref.unpack(dc_params_r12_present, 1)); HANDLE_CODE(bref.unpack(mbms_params_v1250_present, 1)); HANDLE_CODE(bref.unpack(mac_params_r12_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1250_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1250_present, 1)); HANDLE_CODE(bref.unpack(sl_params_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (phy_layer_params_v1250_present) { HANDLE_CODE(phy_layer_params_v1250.unpack(bref)); } if (rf_params_v1250_present) { HANDLE_CODE(rf_params_v1250.unpack(bref)); } if (rlc_params_r12_present) { HANDLE_CODE(rlc_params_r12.unpack(bref)); } if (ue_based_netw_perf_meas_params_v1250_present) { HANDLE_CODE(ue_based_netw_perf_meas_params_v1250.unpack(bref)); } if (ue_category_dl_r12_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_dl_r12, bref, (uint8_t)0, (uint8_t)14)); } if (ue_category_ul_r12_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_ul_r12, bref, (uint8_t)0, (uint8_t)13)); } if (wlan_iw_params_r12_present) { HANDLE_CODE(wlan_iw_params_r12.unpack(bref)); } if (meas_params_v1250_present) { HANDLE_CODE(meas_params_v1250.unpack(bref)); } if (dc_params_r12_present) { HANDLE_CODE(dc_params_r12.unpack(bref)); } if (mbms_params_v1250_present) { HANDLE_CODE(mbms_params_v1250.unpack(bref)); } if (mac_params_r12_present) { HANDLE_CODE(mac_params_r12.unpack(bref)); } if (fdd_add_ue_eutra_capabilities_v1250_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1250.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1250_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1250.unpack(bref)); } if (sl_params_r12_present) { HANDLE_CODE(sl_params_r12.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1250_present) { j.write_fieldname("phyLayerParameters-v1250"); phy_layer_params_v1250.to_json(j); } if (rf_params_v1250_present) { j.write_fieldname("rf-Parameters-v1250"); rf_params_v1250.to_json(j); } if (rlc_params_r12_present) { j.write_fieldname("rlc-Parameters-r12"); rlc_params_r12.to_json(j); } if (ue_based_netw_perf_meas_params_v1250_present) { j.write_fieldname("ue-BasedNetwPerfMeasParameters-v1250"); ue_based_netw_perf_meas_params_v1250.to_json(j); } if (ue_category_dl_r12_present) { j.write_int("ue-CategoryDL-r12", ue_category_dl_r12); } if (ue_category_ul_r12_present) { j.write_int("ue-CategoryUL-r12", ue_category_ul_r12); } if (wlan_iw_params_r12_present) { j.write_fieldname("wlan-IW-Parameters-r12"); wlan_iw_params_r12.to_json(j); } if (meas_params_v1250_present) { j.write_fieldname("measParameters-v1250"); meas_params_v1250.to_json(j); } if (dc_params_r12_present) { j.write_fieldname("dc-Parameters-r12"); dc_params_r12.to_json(j); } if (mbms_params_v1250_present) { j.write_fieldname("mbms-Parameters-v1250"); mbms_params_v1250.to_json(j); } if (mac_params_r12_present) { j.write_fieldname("mac-Parameters-r12"); mac_params_r12.to_json(j); } if (fdd_add_ue_eutra_capabilities_v1250_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1250"); fdd_add_ue_eutra_capabilities_v1250.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1250_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1250"); tdd_add_ue_eutra_capabilities_v1250.to_json(j); } if (sl_params_r12_present) { j.write_fieldname("sl-Parameters-r12"); sl_params_r12.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // OTDOA-PositioningCapabilities-r10 ::= SEQUENCE SRSASN_CODE otdoa_positioning_capabilities_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_freq_rstd_meas_r10_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE otdoa_positioning_capabilities_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_freq_rstd_meas_r10_present, 1)); return SRSASN_SUCCESS; } void otdoa_positioning_capabilities_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("otdoa-UE-Assisted-r10", "supported"); if (inter_freq_rstd_meas_r10_present) { j.write_str("interFreqRSTD-Measurement-r10", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v10f0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v10f0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v10f0_present) { HANDLE_CODE(rf_params_v10f0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v10f0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v10f0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v10f0_present) { HANDLE_CODE(rf_params_v10f0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v10f0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v10f0_present) { j.write_fieldname("rf-Parameters-v10f0"); rf_params_v10f0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v11a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_v11a0_present, 1)); HANDLE_CODE(bref.pack(meas_params_v11a0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_category_v11a0_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_v11a0, (uint8_t)11, (uint8_t)12)); } if (meas_params_v11a0_present) { HANDLE_CODE(meas_params_v11a0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v11a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_v11a0_present, 1)); HANDLE_CODE(bref.unpack(meas_params_v11a0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_category_v11a0_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_v11a0, bref, (uint8_t)11, (uint8_t)12)); } if (meas_params_v11a0_present) { HANDLE_CODE(meas_params_v11a0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v11a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_v11a0_present) { j.write_int("ue-Category-v11a0", ue_category_v11a0); } if (meas_params_v11a0_present) { j.write_fieldname("measParameters-v11a0"); meas_params_v11a0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1180_s::pack(bit_ref& bref) const { HANDLE_CODE(mbms_params_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1180_s::unpack(bit_ref& bref) { HANDLE_CODE(mbms_params_r11.unpack(bref)); return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1180_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("mbms-Parameters-r11"); mbms_params_r11.to_json(j); j.end_obj(); } // IRAT-ParametersUTRA-v9h0 ::= SEQUENCE SRSASN_CODE irat_params_utra_v9h0_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE irat_params_utra_v9h0_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void irat_params_utra_v9h0_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("mfbi-UTRA-r9", "supported"); j.end_obj(); } // MeasParameters-v1130 ::= SEQUENCE SRSASN_CODE meas_params_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rsrq_meas_wideband_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE meas_params_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rsrq_meas_wideband_r11_present, 1)); return SRSASN_SUCCESS; } void meas_params_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (rsrq_meas_wideband_r11_present) { j.write_str("rsrqMeasWideband-r11", "supported"); } j.end_obj(); } // Other-Parameters-r11 ::= SEQUENCE SRSASN_CODE other_params_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(in_dev_coex_ind_r11_present, 1)); HANDLE_CODE(bref.pack(pwr_pref_ind_r11_present, 1)); HANDLE_CODE(bref.pack(ue_rx_tx_time_diff_meass_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE other_params_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(in_dev_coex_ind_r11_present, 1)); HANDLE_CODE(bref.unpack(pwr_pref_ind_r11_present, 1)); HANDLE_CODE(bref.unpack(ue_rx_tx_time_diff_meass_r11_present, 1)); return SRSASN_SUCCESS; } void other_params_r11_s::to_json(json_writer& j) const { j.start_obj(); if (in_dev_coex_ind_r11_present) { j.write_str("inDeviceCoexInd-r11", "supported"); } if (pwr_pref_ind_r11_present) { j.write_str("powerPrefInd-r11", "supported"); } if (ue_rx_tx_time_diff_meass_r11_present) { j.write_str("ue-Rx-TxTimeDiffMeasurements-r11", "supported"); } j.end_obj(); } // PhyLayerParameters-v1130 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(crs_interf_handl_r11_present, 1)); HANDLE_CODE(bref.pack(e_pdcch_r11_present, 1)); HANDLE_CODE(bref.pack(multi_ack_csi_report_r11_present, 1)); HANDLE_CODE(bref.pack(ss_cch_interf_handl_r11_present, 1)); HANDLE_CODE(bref.pack(tdd_special_sf_r11_present, 1)); HANDLE_CODE(bref.pack(tx_div_pucch1b_ch_select_r11_present, 1)); HANDLE_CODE(bref.pack(ul_co_mp_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(crs_interf_handl_r11_present, 1)); HANDLE_CODE(bref.unpack(e_pdcch_r11_present, 1)); HANDLE_CODE(bref.unpack(multi_ack_csi_report_r11_present, 1)); HANDLE_CODE(bref.unpack(ss_cch_interf_handl_r11_present, 1)); HANDLE_CODE(bref.unpack(tdd_special_sf_r11_present, 1)); HANDLE_CODE(bref.unpack(tx_div_pucch1b_ch_select_r11_present, 1)); HANDLE_CODE(bref.unpack(ul_co_mp_r11_present, 1)); return SRSASN_SUCCESS; } void phy_layer_params_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (crs_interf_handl_r11_present) { j.write_str("crs-InterfHandl-r11", "supported"); } if (e_pdcch_r11_present) { j.write_str("ePDCCH-r11", "supported"); } if (multi_ack_csi_report_r11_present) { j.write_str("multiACK-CSI-Reporting-r11", "supported"); } if (ss_cch_interf_handl_r11_present) { j.write_str("ss-CCH-InterfHandl-r11", "supported"); } if (tdd_special_sf_r11_present) { j.write_str("tdd-SpecialSubframe-r11", "supported"); } if (tx_div_pucch1b_ch_select_r11_present) { j.write_str("txDiv-PUCCH1b-ChSelect-r11", "supported"); } if (ul_co_mp_r11_present) { j.write_str("ul-CoMP-r11", "supported"); } j.end_obj(); } // PhyLayerParameters-v1170 ::= SEQUENCE SRSASN_CODE phy_layer_params_v1170_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_band_tdd_ca_with_different_cfg_r11_present, 1)); if (inter_band_tdd_ca_with_different_cfg_r11_present) { HANDLE_CODE(inter_band_tdd_ca_with_different_cfg_r11.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1170_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_band_tdd_ca_with_different_cfg_r11_present, 1)); if (inter_band_tdd_ca_with_different_cfg_r11_present) { HANDLE_CODE(inter_band_tdd_ca_with_different_cfg_r11.unpack(bref)); } return SRSASN_SUCCESS; } void phy_layer_params_v1170_s::to_json(json_writer& j) const { j.start_obj(); if (inter_band_tdd_ca_with_different_cfg_r11_present) { j.write_str("interBandTDD-CA-WithDifferentConfig-r11", inter_band_tdd_ca_with_different_cfg_r11.to_string()); } j.end_obj(); } // UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v10c0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(otdoa_positioning_capabilities_r10_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (otdoa_positioning_capabilities_r10_present) { HANDLE_CODE(otdoa_positioning_capabilities_r10.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v10c0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(otdoa_positioning_capabilities_r10_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (otdoa_positioning_capabilities_r10_present) { HANDLE_CODE(otdoa_positioning_capabilities_r10.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v10c0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (otdoa_positioning_capabilities_r10_present) { j.write_fieldname("otdoa-PositioningCapabilities-r10"); otdoa_positioning_capabilities_r10.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1180_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v1180_present, 1)); HANDLE_CODE(bref.pack(mbms_params_r11_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1180_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1180_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v1180_present) { HANDLE_CODE(rf_params_v1180.pack(bref)); } if (mbms_params_r11_present) { HANDLE_CODE(mbms_params_r11.pack(bref)); } if (fdd_add_ue_eutra_capabilities_v1180_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1180.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1180_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1180.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1180_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v1180_present, 1)); HANDLE_CODE(bref.unpack(mbms_params_r11_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1180_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1180_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v1180_present) { HANDLE_CODE(rf_params_v1180.unpack(bref)); } if (mbms_params_r11_present) { HANDLE_CODE(mbms_params_r11.unpack(bref)); } if (fdd_add_ue_eutra_capabilities_v1180_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1180.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1180_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1180.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1180_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v1180_present) { j.write_fieldname("rf-Parameters-v1180"); rf_params_v1180.to_json(j); } if (mbms_params_r11_present) { j.write_fieldname("mbms-Parameters-r11"); mbms_params_r11.to_json(j); } if (fdd_add_ue_eutra_capabilities_v1180_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1180"); fdd_add_ue_eutra_capabilities_v1180.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1180_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1180"); tdd_add_ue_eutra_capabilities_v1180.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE SRSASN_CODE irat_params_cdma2000_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cdma2000_nw_sharing_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_cdma2000_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(cdma2000_nw_sharing_r11_present, 1)); return SRSASN_SUCCESS; } void irat_params_cdma2000_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (cdma2000_nw_sharing_r11_present) { j.write_str("cdma2000-NW-Sharing-r11", "supported"); } j.end_obj(); } // PDCP-Parameters-v1130 ::= SEQUENCE SRSASN_CODE pdcp_params_v1130_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pdcp_sn_ext_r11_present, 1)); HANDLE_CODE(bref.pack(support_rohc_context_continue_r11_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE pdcp_params_v1130_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(pdcp_sn_ext_r11_present, 1)); HANDLE_CODE(bref.unpack(support_rohc_context_continue_r11_present, 1)); return SRSASN_SUCCESS; } void pdcp_params_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (pdcp_sn_ext_r11_present) { j.write_str("pdcp-SN-Extension-r11", "supported"); } if (support_rohc_context_continue_r11_present) { j.write_str("supportRohcContextContinue-r11", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1170_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1170_present, 1)); HANDLE_CODE(bref.pack(ue_category_v1170_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (phy_layer_params_v1170_present) { HANDLE_CODE(phy_layer_params_v1170.pack(bref)); } if (ue_category_v1170_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_v1170, (uint8_t)9, (uint8_t)10)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1170_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1170_present, 1)); HANDLE_CODE(bref.unpack(ue_category_v1170_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (phy_layer_params_v1170_present) { HANDLE_CODE(phy_layer_params_v1170.unpack(bref)); } if (ue_category_v1170_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_v1170, bref, (uint8_t)9, (uint8_t)10)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1170_ies_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1170_present) { j.write_fieldname("phyLayerParameters-v1170"); phy_layer_params_v1170.to_json(j); } if (ue_category_v1170_present) { j.write_int("ue-Category-v1170", ue_category_v1170); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v9h0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_rat_params_utra_v9h0_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (inter_rat_params_utra_v9h0_present) { HANDLE_CODE(inter_rat_params_utra_v9h0.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v9h0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_rat_params_utra_v9h0_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (inter_rat_params_utra_v9h0_present) { HANDLE_CODE(inter_rat_params_utra_v9h0.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v9h0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (inter_rat_params_utra_v9h0_present) { j.write_fieldname("interRAT-ParametersUTRA-v9h0"); inter_rat_params_utra_v9h0.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1130_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(phy_layer_params_v1130_present, 1)); HANDLE_CODE(bref.pack(meas_params_v1130_present, 1)); HANDLE_CODE(bref.pack(other_params_r11_present, 1)); if (phy_layer_params_v1130_present) { HANDLE_CODE(phy_layer_params_v1130.pack(bref)); } if (meas_params_v1130_present) { HANDLE_CODE(meas_params_v1130.pack(bref)); } if (other_params_r11_present) { HANDLE_CODE(other_params_r11.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1130_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(phy_layer_params_v1130_present, 1)); HANDLE_CODE(bref.unpack(meas_params_v1130_present, 1)); HANDLE_CODE(bref.unpack(other_params_r11_present, 1)); if (phy_layer_params_v1130_present) { HANDLE_CODE(phy_layer_params_v1130.unpack(bref)); } if (meas_params_v1130_present) { HANDLE_CODE(meas_params_v1130.unpack(bref)); } if (other_params_r11_present) { HANDLE_CODE(other_params_r11.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1130_present) { j.write_fieldname("phyLayerParameters-v1130"); phy_layer_params_v1130.to_json(j); } if (meas_params_v1130_present) { j.write_fieldname("measParameters-v1130"); meas_params_v1130.to_json(j); } if (other_params_r11_present) { j.write_fieldname("otherParameters-r11"); other_params_r11.to_json(j); } j.end_obj(); } // IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE SRSASN_CODE irat_params_cdma2000_minus1_xrtt_v1020_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE irat_params_cdma2000_minus1_xrtt_v1020_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void irat_params_cdma2000_minus1_xrtt_v1020_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("e-CSFB-dual-1XRTT-r10", "supported"); j.end_obj(); } // IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE SRSASN_CODE irat_params_utra_tdd_v1020_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE irat_params_utra_tdd_v1020_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void irat_params_utra_tdd_v1020_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("e-RedirectionUTRA-TDD-r10", "supported"); j.end_obj(); } // PhyLayerParameters-v9d0 ::= SEQUENCE SRSASN_CODE phy_layer_params_v9d0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(tm5_fdd_r9_present, 1)); HANDLE_CODE(bref.pack(tm5_tdd_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v9d0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(tm5_fdd_r9_present, 1)); HANDLE_CODE(bref.unpack(tm5_tdd_r9_present, 1)); return SRSASN_SUCCESS; } void phy_layer_params_v9d0_s::to_json(json_writer& j) const { j.start_obj(); if (tm5_fdd_r9_present) { j.write_str("tm5-FDD-r9", "supported"); } if (tm5_tdd_r9_present) { j.write_str("tm5-TDD-r9", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v1130_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1130_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1130_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pdcp_params_v1130.pack(bref)); if (phy_layer_params_v1130_present) { HANDLE_CODE(phy_layer_params_v1130.pack(bref)); } HANDLE_CODE(rf_params_v1130.pack(bref)); HANDLE_CODE(meas_params_v1130.pack(bref)); HANDLE_CODE(inter_rat_params_cdma2000_v1130.pack(bref)); HANDLE_CODE(other_params_r11.pack(bref)); if (fdd_add_ue_eutra_capabilities_v1130_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1130.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1130_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1130.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v1130_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1130_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1130_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(pdcp_params_v1130.unpack(bref)); if (phy_layer_params_v1130_present) { HANDLE_CODE(phy_layer_params_v1130.unpack(bref)); } HANDLE_CODE(rf_params_v1130.unpack(bref)); HANDLE_CODE(meas_params_v1130.unpack(bref)); HANDLE_CODE(inter_rat_params_cdma2000_v1130.unpack(bref)); HANDLE_CODE(other_params_r11.unpack(bref)); if (fdd_add_ue_eutra_capabilities_v1130_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1130.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1130_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1130.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("pdcp-Parameters-v1130"); pdcp_params_v1130.to_json(j); if (phy_layer_params_v1130_present) { j.write_fieldname("phyLayerParameters-v1130"); phy_layer_params_v1130.to_json(j); } j.write_fieldname("rf-Parameters-v1130"); rf_params_v1130.to_json(j); j.write_fieldname("measParameters-v1130"); meas_params_v1130.to_json(j); j.write_fieldname("interRAT-ParametersCDMA2000-v1130"); inter_rat_params_cdma2000_v1130.to_json(j); j.write_fieldname("otherParameters-r11"); other_params_r11.to_json(j); if (fdd_add_ue_eutra_capabilities_v1130_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1130"); fdd_add_ue_eutra_capabilities_v1130.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1130_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1130"); tdd_add_ue_eutra_capabilities_v1130.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v9e0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v9e0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v9e0_present) { HANDLE_CODE(rf_params_v9e0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v9e0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v9e0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v9e0_present) { HANDLE_CODE(rf_params_v9e0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v9e0_present) { j.write_fieldname("rf-Parameters-v9e0"); rf_params_v9e0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE SRSASN_CODE irat_params_cdma2000_minus1_xrtt_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(e_csfb_conc_ps_mob1_xrtt_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_cdma2000_minus1_xrtt_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(e_csfb_conc_ps_mob1_xrtt_r9_present, 1)); return SRSASN_SUCCESS; } void irat_params_cdma2000_minus1_xrtt_v920_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("e-CSFB-1XRTT-r9", "supported"); if (e_csfb_conc_ps_mob1_xrtt_r9_present) { j.write_str("e-CSFB-ConcPS-Mob1XRTT-r9", "supported"); } j.end_obj(); } // IRAT-ParametersUTRA-v920 ::= SEQUENCE SRSASN_CODE irat_params_utra_v920_s::pack(bit_ref& bref) const { return SRSASN_SUCCESS; } SRSASN_CODE irat_params_utra_v920_s::unpack(bit_ref& bref) { return SRSASN_SUCCESS; } void irat_params_utra_v920_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("e-RedirectionUTRA-r9", "supported"); j.end_obj(); } // IRAT-ParametersUTRA-v9c0 ::= SEQUENCE SRSASN_CODE irat_params_utra_v9c0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(voice_over_ps_hs_utra_fdd_r9_present, 1)); HANDLE_CODE(bref.pack(voice_over_ps_hs_utra_tdd128_r9_present, 1)); HANDLE_CODE(bref.pack(srvcc_from_utra_fdd_to_utra_fdd_r9_present, 1)); HANDLE_CODE(bref.pack(srvcc_from_utra_fdd_to_geran_r9_present, 1)); HANDLE_CODE(bref.pack(srvcc_from_utra_tdd128_to_utra_tdd128_r9_present, 1)); HANDLE_CODE(bref.pack(srvcc_from_utra_tdd128_to_geran_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_utra_v9c0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(voice_over_ps_hs_utra_fdd_r9_present, 1)); HANDLE_CODE(bref.unpack(voice_over_ps_hs_utra_tdd128_r9_present, 1)); HANDLE_CODE(bref.unpack(srvcc_from_utra_fdd_to_utra_fdd_r9_present, 1)); HANDLE_CODE(bref.unpack(srvcc_from_utra_fdd_to_geran_r9_present, 1)); HANDLE_CODE(bref.unpack(srvcc_from_utra_tdd128_to_utra_tdd128_r9_present, 1)); HANDLE_CODE(bref.unpack(srvcc_from_utra_tdd128_to_geran_r9_present, 1)); return SRSASN_SUCCESS; } void irat_params_utra_v9c0_s::to_json(json_writer& j) const { j.start_obj(); if (voice_over_ps_hs_utra_fdd_r9_present) { j.write_str("voiceOverPS-HS-UTRA-FDD-r9", "supported"); } if (voice_over_ps_hs_utra_tdd128_r9_present) { j.write_str("voiceOverPS-HS-UTRA-TDD128-r9", "supported"); } if (srvcc_from_utra_fdd_to_utra_fdd_r9_present) { j.write_str("srvcc-FromUTRA-FDD-ToUTRA-FDD-r9", "supported"); } if (srvcc_from_utra_fdd_to_geran_r9_present) { j.write_str("srvcc-FromUTRA-FDD-ToGERAN-r9", "supported"); } if (srvcc_from_utra_tdd128_to_utra_tdd128_r9_present) { j.write_str("srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9", "supported"); } if (srvcc_from_utra_tdd128_to_geran_r9_present) { j.write_str("srvcc-FromUTRA-TDD128-ToGERAN-r9", "supported"); } j.end_obj(); } // NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE SRSASN_CODE neigh_cell_si_acquisition_params_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(intra_freq_si_acquisition_for_ho_r9_present, 1)); HANDLE_CODE(bref.pack(inter_freq_si_acquisition_for_ho_r9_present, 1)); HANDLE_CODE(bref.pack(utran_si_acquisition_for_ho_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE neigh_cell_si_acquisition_params_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(intra_freq_si_acquisition_for_ho_r9_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_si_acquisition_for_ho_r9_present, 1)); HANDLE_CODE(bref.unpack(utran_si_acquisition_for_ho_r9_present, 1)); return SRSASN_SUCCESS; } void neigh_cell_si_acquisition_params_r9_s::to_json(json_writer& j) const { j.start_obj(); if (intra_freq_si_acquisition_for_ho_r9_present) { j.write_str("intraFreqSI-AcquisitionForHO-r9", "supported"); } if (inter_freq_si_acquisition_for_ho_r9_present) { j.write_str("interFreqSI-AcquisitionForHO-r9", "supported"); } if (utran_si_acquisition_for_ho_r9_present) { j.write_str("utran-SI-AcquisitionForHO-r9", "supported"); } j.end_obj(); } // PhyLayerParameters ::= SEQUENCE SRSASN_CODE phy_layer_params_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_tx_ant_sel_supported, 1)); HANDLE_CODE(bref.pack(ue_specific_ref_sigs_supported, 1)); return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_tx_ant_sel_supported, 1)); HANDLE_CODE(bref.unpack(ue_specific_ref_sigs_supported, 1)); return SRSASN_SUCCESS; } void phy_layer_params_s::to_json(json_writer& j) const { j.start_obj(); j.write_bool("ue-TxAntennaSelectionSupported", ue_tx_ant_sel_supported); j.write_bool("ue-SpecificRefSigsSupported", ue_specific_ref_sigs_supported); j.end_obj(); } // UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1090_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rf_params_v1090_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rf_params_v1090_present) { HANDLE_CODE(rf_params_v1090.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1090_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rf_params_v1090_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rf_params_v1090_present) { HANDLE_CODE(rf_params_v1090.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1090_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rf_params_v1090_present) { j.write_fieldname("rf-Parameters-v1090"); rf_params_v1090.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v9d0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(phy_layer_params_v9d0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (phy_layer_params_v9d0_present) { HANDLE_CODE(phy_layer_params_v9d0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v9d0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(phy_layer_params_v9d0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (phy_layer_params_v9d0_present) { HANDLE_CODE(phy_layer_params_v9d0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v9d0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v9d0_present) { j.write_fieldname("phyLayerParameters-v9d0"); phy_layer_params_v9d0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1060_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(phy_layer_params_v1060_present, 1)); HANDLE_CODE(bref.pack(feature_group_ind_rel10_v1060_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params_cdma2000_v1060_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params_utra_tdd_v1060_present, 1)); if (phy_layer_params_v1060_present) { HANDLE_CODE(phy_layer_params_v1060.pack(bref)); } if (feature_group_ind_rel10_v1060_present) { HANDLE_CODE(feature_group_ind_rel10_v1060.pack(bref)); } if (inter_rat_params_cdma2000_v1060_present) { HANDLE_CODE(inter_rat_params_cdma2000_v1060.pack(bref)); } if (inter_rat_params_utra_tdd_v1060_present) { HANDLE_CODE(inter_rat_params_utra_tdd_v1060.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(otdoa_positioning_capabilities_r10_present != (otdoa_positioning_capabilities_r10.get() != NULL), __FILE__, __LINE__); group_flags[0] |= otdoa_positioning_capabilities_r10_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(otdoa_positioning_capabilities_r10_present, 1)); if (otdoa_positioning_capabilities_r10_present) { HANDLE_CODE(otdoa_positioning_capabilities_r10->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1060_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(phy_layer_params_v1060_present, 1)); HANDLE_CODE(bref.unpack(feature_group_ind_rel10_v1060_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params_cdma2000_v1060_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params_utra_tdd_v1060_present, 1)); if (phy_layer_params_v1060_present) { HANDLE_CODE(phy_layer_params_v1060.unpack(bref)); } if (feature_group_ind_rel10_v1060_present) { HANDLE_CODE(feature_group_ind_rel10_v1060.unpack(bref)); } if (inter_rat_params_cdma2000_v1060_present) { HANDLE_CODE(inter_rat_params_cdma2000_v1060.unpack(bref)); } if (inter_rat_params_utra_tdd_v1060_present) { HANDLE_CODE(inter_rat_params_utra_tdd_v1060.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(otdoa_positioning_capabilities_r10_present, 1)); if (otdoa_positioning_capabilities_r10_present) { otdoa_positioning_capabilities_r10 = make_copy_ptr(otdoa_positioning_capabilities_r10_s()); HANDLE_CODE(otdoa_positioning_capabilities_r10->unpack(bref)); } } } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_v1060_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_v1060_present) { j.write_fieldname("phyLayerParameters-v1060"); phy_layer_params_v1060.to_json(j); } if (feature_group_ind_rel10_v1060_present) { j.write_str("featureGroupIndRel10-v1060", feature_group_ind_rel10_v1060.to_string()); } if (inter_rat_params_cdma2000_v1060_present) { j.write_fieldname("interRAT-ParametersCDMA2000-v1060"); inter_rat_params_cdma2000_v1060.to_json(j); } if (inter_rat_params_utra_tdd_v1060_present) { j.write_fieldname("interRAT-ParametersUTRA-TDD-v1060"); inter_rat_params_utra_tdd_v1060.to_json(j); } if (ext) { rrc_asn1_warn_assert(otdoa_positioning_capabilities_r10_present != (otdoa_positioning_capabilities_r10.get() != NULL), __FILE__, __LINE__); if (otdoa_positioning_capabilities_r10_present) { j.write_fieldname("otdoa-PositioningCapabilities-r10"); otdoa_positioning_capabilities_r10->to_json(j); } } j.end_obj(); } // UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE SRSASN_CODE ue_based_netw_perf_meas_params_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(logged_meass_idle_r10_present, 1)); HANDLE_CODE(bref.pack(standalone_gnss_location_r10_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE ue_based_netw_perf_meas_params_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(logged_meass_idle_r10_present, 1)); HANDLE_CODE(bref.unpack(standalone_gnss_location_r10_present, 1)); return SRSASN_SUCCESS; } void ue_based_netw_perf_meas_params_r10_s::to_json(json_writer& j) const { j.start_obj(); if (logged_meass_idle_r10_present) { j.write_str("loggedMeasurementsIdle-r10", "supported"); } if (standalone_gnss_location_r10_present) { j.write_str("standaloneGNSS-Location-r10", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1060_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_v1060_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_v1060_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1060_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (fdd_add_ue_eutra_capabilities_v1060_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1060.pack(bref)); } if (tdd_add_ue_eutra_capabilities_v1060_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1060.pack(bref)); } if (rf_params_v1060_present) { HANDLE_CODE(rf_params_v1060.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1060_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_v1060_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_v1060_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1060_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (fdd_add_ue_eutra_capabilities_v1060_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_v1060.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_v1060_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_v1060.unpack(bref)); } if (rf_params_v1060_present) { HANDLE_CODE(rf_params_v1060.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1060_ies_s::to_json(json_writer& j) const { j.start_obj(); if (fdd_add_ue_eutra_capabilities_v1060_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1060"); fdd_add_ue_eutra_capabilities_v1060.to_json(j); } if (tdd_add_ue_eutra_capabilities_v1060_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1060"); tdd_add_ue_eutra_capabilities_v1060.to_json(j); } if (rf_params_v1060_present) { j.write_fieldname("rf-Parameters-v1060"); rf_params_v1060.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v9c0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_rat_params_utra_v9c0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (inter_rat_params_utra_v9c0_present) { HANDLE_CODE(inter_rat_params_utra_v9c0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v9c0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_rat_params_utra_v9c0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (inter_rat_params_utra_v9c0_present) { HANDLE_CODE(inter_rat_params_utra_v9c0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v9c0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (inter_rat_params_utra_v9c0_present) { j.write_fieldname("interRAT-ParametersUTRA-v9c0"); inter_rat_params_utra_v9c0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(phy_layer_params_r9_present, 1)); HANDLE_CODE(bref.pack(feature_group_inds_r9_present, 1)); HANDLE_CODE(bref.pack(feature_group_ind_rel9_add_r9_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params_geran_r9_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params_utra_r9_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params_cdma2000_r9_present, 1)); HANDLE_CODE(bref.pack(neigh_cell_si_acquisition_params_r9_present, 1)); if (phy_layer_params_r9_present) { HANDLE_CODE(phy_layer_params_r9.pack(bref)); } if (feature_group_inds_r9_present) { HANDLE_CODE(feature_group_inds_r9.pack(bref)); } if (feature_group_ind_rel9_add_r9_present) { HANDLE_CODE(feature_group_ind_rel9_add_r9.pack(bref)); } if (inter_rat_params_geran_r9_present) { HANDLE_CODE(inter_rat_params_geran_r9.pack(bref)); } if (inter_rat_params_utra_r9_present) { HANDLE_CODE(inter_rat_params_utra_r9.pack(bref)); } if (inter_rat_params_cdma2000_r9_present) { HANDLE_CODE(inter_rat_params_cdma2000_r9.pack(bref)); } if (neigh_cell_si_acquisition_params_r9_present) { HANDLE_CODE(neigh_cell_si_acquisition_params_r9.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_add_xdd_mode_r9_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(phy_layer_params_r9_present, 1)); HANDLE_CODE(bref.unpack(feature_group_inds_r9_present, 1)); HANDLE_CODE(bref.unpack(feature_group_ind_rel9_add_r9_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params_geran_r9_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params_utra_r9_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params_cdma2000_r9_present, 1)); HANDLE_CODE(bref.unpack(neigh_cell_si_acquisition_params_r9_present, 1)); if (phy_layer_params_r9_present) { HANDLE_CODE(phy_layer_params_r9.unpack(bref)); } if (feature_group_inds_r9_present) { HANDLE_CODE(feature_group_inds_r9.unpack(bref)); } if (feature_group_ind_rel9_add_r9_present) { HANDLE_CODE(feature_group_ind_rel9_add_r9.unpack(bref)); } if (inter_rat_params_geran_r9_present) { HANDLE_CODE(inter_rat_params_geran_r9.unpack(bref)); } if (inter_rat_params_utra_r9_present) { HANDLE_CODE(inter_rat_params_utra_r9.unpack(bref)); } if (inter_rat_params_cdma2000_r9_present) { HANDLE_CODE(inter_rat_params_cdma2000_r9.unpack(bref)); } if (neigh_cell_si_acquisition_params_r9_present) { HANDLE_CODE(neigh_cell_si_acquisition_params_r9.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_add_xdd_mode_r9_s::to_json(json_writer& j) const { j.start_obj(); if (phy_layer_params_r9_present) { j.write_fieldname("phyLayerParameters-r9"); phy_layer_params_r9.to_json(j); } if (feature_group_inds_r9_present) { j.write_str("featureGroupIndicators-r9", feature_group_inds_r9.to_string()); } if (feature_group_ind_rel9_add_r9_present) { j.write_str("featureGroupIndRel9Add-r9", feature_group_ind_rel9_add_r9.to_string()); } if (inter_rat_params_geran_r9_present) { j.write_fieldname("interRAT-ParametersGERAN-r9"); inter_rat_params_geran_r9.to_json(j); } if (inter_rat_params_utra_r9_present) { j.write_fieldname("interRAT-ParametersUTRA-r9"); inter_rat_params_utra_r9.to_json(j); } if (inter_rat_params_cdma2000_r9_present) { j.write_fieldname("interRAT-ParametersCDMA2000-r9"); inter_rat_params_cdma2000_r9.to_json(j); } if (neigh_cell_si_acquisition_params_r9_present) { j.write_fieldname("neighCellSI-AcquisitionParameters-r9"); neigh_cell_si_acquisition_params_r9.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1020_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_category_v1020_present, 1)); HANDLE_CODE(bref.pack(phy_layer_params_v1020_present, 1)); HANDLE_CODE(bref.pack(rf_params_v1020_present, 1)); HANDLE_CODE(bref.pack(meas_params_v1020_present, 1)); HANDLE_CODE(bref.pack(feature_group_ind_rel10_r10_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params_cdma2000_v1020_present, 1)); HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_r10_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params_utra_tdd_v1020_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_category_v1020_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_category_v1020, (uint8_t)6, (uint8_t)8)); } if (phy_layer_params_v1020_present) { HANDLE_CODE(phy_layer_params_v1020.pack(bref)); } if (rf_params_v1020_present) { HANDLE_CODE(rf_params_v1020.pack(bref)); } if (meas_params_v1020_present) { HANDLE_CODE(meas_params_v1020.pack(bref)); } if (feature_group_ind_rel10_r10_present) { HANDLE_CODE(feature_group_ind_rel10_r10.pack(bref)); } if (inter_rat_params_cdma2000_v1020_present) { HANDLE_CODE(inter_rat_params_cdma2000_v1020.pack(bref)); } if (ue_based_netw_perf_meas_params_r10_present) { HANDLE_CODE(ue_based_netw_perf_meas_params_r10.pack(bref)); } if (inter_rat_params_utra_tdd_v1020_present) { HANDLE_CODE(inter_rat_params_utra_tdd_v1020.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v1020_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_category_v1020_present, 1)); HANDLE_CODE(bref.unpack(phy_layer_params_v1020_present, 1)); HANDLE_CODE(bref.unpack(rf_params_v1020_present, 1)); HANDLE_CODE(bref.unpack(meas_params_v1020_present, 1)); HANDLE_CODE(bref.unpack(feature_group_ind_rel10_r10_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params_cdma2000_v1020_present, 1)); HANDLE_CODE(bref.unpack(ue_based_netw_perf_meas_params_r10_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params_utra_tdd_v1020_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_category_v1020_present) { HANDLE_CODE(unpack_unalign_integer(ue_category_v1020, bref, (uint8_t)6, (uint8_t)8)); } if (phy_layer_params_v1020_present) { HANDLE_CODE(phy_layer_params_v1020.unpack(bref)); } if (rf_params_v1020_present) { HANDLE_CODE(rf_params_v1020.unpack(bref)); } if (meas_params_v1020_present) { HANDLE_CODE(meas_params_v1020.unpack(bref)); } if (feature_group_ind_rel10_r10_present) { HANDLE_CODE(feature_group_ind_rel10_r10.unpack(bref)); } if (inter_rat_params_cdma2000_v1020_present) { HANDLE_CODE(inter_rat_params_cdma2000_v1020.unpack(bref)); } if (ue_based_netw_perf_meas_params_r10_present) { HANDLE_CODE(ue_based_netw_perf_meas_params_r10.unpack(bref)); } if (inter_rat_params_utra_tdd_v1020_present) { HANDLE_CODE(inter_rat_params_utra_tdd_v1020.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v1020_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_category_v1020_present) { j.write_int("ue-Category-v1020", ue_category_v1020); } if (phy_layer_params_v1020_present) { j.write_fieldname("phyLayerParameters-v1020"); phy_layer_params_v1020.to_json(j); } if (rf_params_v1020_present) { j.write_fieldname("rf-Parameters-v1020"); rf_params_v1020.to_json(j); } if (meas_params_v1020_present) { j.write_fieldname("measParameters-v1020"); meas_params_v1020.to_json(j); } if (feature_group_ind_rel10_r10_present) { j.write_str("featureGroupIndRel10-r10", feature_group_ind_rel10_r10.to_string()); } if (inter_rat_params_cdma2000_v1020_present) { j.write_fieldname("interRAT-ParametersCDMA2000-v1020"); inter_rat_params_cdma2000_v1020.to_json(j); } if (ue_based_netw_perf_meas_params_r10_present) { j.write_fieldname("ue-BasedNetwPerfMeasParameters-r10"); ue_based_netw_perf_meas_params_r10.to_json(j); } if (inter_rat_params_utra_tdd_v1020_present) { j.write_fieldname("interRAT-ParametersUTRA-TDD-v1020"); inter_rat_params_utra_tdd_v1020.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v9a0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(feature_group_ind_rel9_add_r9_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_eutra_capabilities_r9_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_eutra_capabilities_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (feature_group_ind_rel9_add_r9_present) { HANDLE_CODE(feature_group_ind_rel9_add_r9.pack(bref)); } if (fdd_add_ue_eutra_capabilities_r9_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_r9.pack(bref)); } if (tdd_add_ue_eutra_capabilities_r9_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_r9.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v9a0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(feature_group_ind_rel9_add_r9_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_capabilities_r9_present, 1)); HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_capabilities_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (feature_group_ind_rel9_add_r9_present) { HANDLE_CODE(feature_group_ind_rel9_add_r9.unpack(bref)); } if (fdd_add_ue_eutra_capabilities_r9_present) { HANDLE_CODE(fdd_add_ue_eutra_capabilities_r9.unpack(bref)); } if (tdd_add_ue_eutra_capabilities_r9_present) { HANDLE_CODE(tdd_add_ue_eutra_capabilities_r9.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v9a0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (feature_group_ind_rel9_add_r9_present) { j.write_str("featureGroupIndRel9Add-r9", feature_group_ind_rel9_add_r9.to_string()); } if (fdd_add_ue_eutra_capabilities_r9_present) { j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-r9"); fdd_add_ue_eutra_capabilities_r9.to_json(j); } if (tdd_add_ue_eutra_capabilities_r9_present) { j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-r9"); tdd_add_ue_eutra_capabilities_r9.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // CSG-ProximityIndicationParameters-r9 ::= SEQUENCE SRSASN_CODE csg_proximity_ind_params_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(intra_freq_proximity_ind_r9_present, 1)); HANDLE_CODE(bref.pack(inter_freq_proximity_ind_r9_present, 1)); HANDLE_CODE(bref.pack(utran_proximity_ind_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE csg_proximity_ind_params_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(intra_freq_proximity_ind_r9_present, 1)); HANDLE_CODE(bref.unpack(inter_freq_proximity_ind_r9_present, 1)); HANDLE_CODE(bref.unpack(utran_proximity_ind_r9_present, 1)); return SRSASN_SUCCESS; } void csg_proximity_ind_params_r9_s::to_json(json_writer& j) const { j.start_obj(); if (intra_freq_proximity_ind_r9_present) { j.write_str("intraFreqProximityIndication-r9", "supported"); } if (inter_freq_proximity_ind_r9_present) { j.write_str("interFreqProximityIndication-r9", "supported"); } if (utran_proximity_ind_r9_present) { j.write_str("utran-ProximityIndication-r9", "supported"); } j.end_obj(); } // IRAT-ParametersGERAN-v920 ::= SEQUENCE SRSASN_CODE irat_params_geran_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(dtm_r9_present, 1)); HANDLE_CODE(bref.pack(e_redirection_geran_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE irat_params_geran_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(dtm_r9_present, 1)); HANDLE_CODE(bref.unpack(e_redirection_geran_r9_present, 1)); return SRSASN_SUCCESS; } void irat_params_geran_v920_s::to_json(json_writer& j) const { j.start_obj(); if (dtm_r9_present) { j.write_str("dtm-r9", "supported"); } if (e_redirection_geran_r9_present) { j.write_str("e-RedirectionGERAN-r9", "supported"); } j.end_obj(); } // PhyLayerParameters-v920 ::= SEQUENCE SRSASN_CODE phy_layer_params_v920_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(enhanced_dual_layer_fdd_r9_present, 1)); HANDLE_CODE(bref.pack(enhanced_dual_layer_tdd_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v920_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(enhanced_dual_layer_fdd_r9_present, 1)); HANDLE_CODE(bref.unpack(enhanced_dual_layer_tdd_r9_present, 1)); return SRSASN_SUCCESS; } void phy_layer_params_v920_s::to_json(json_writer& j) const { j.start_obj(); if (enhanced_dual_layer_fdd_r9_present) { j.write_str("enhancedDualLayerFDD-r9", "supported"); } if (enhanced_dual_layer_tdd_r9_present) { j.write_str("enhancedDualLayerTDD-r9", "supported"); } j.end_obj(); } // SON-Parameters-r9 ::= SEQUENCE SRSASN_CODE son_params_r9_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rach_report_r9_present, 1)); return SRSASN_SUCCESS; } SRSASN_CODE son_params_r9_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rach_report_r9_present, 1)); return SRSASN_SUCCESS; } void son_params_r9_s::to_json(json_writer& j) const { j.start_obj(); if (rach_report_r9_present) { j.write_str("rach-Report-r9", "supported"); } j.end_obj(); } // UE-EUTRA-Capability-v940-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v940_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v940_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v940_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability-v920-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v920_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(inter_rat_params_utra_v920_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params_cdma2000_v920_present, 1)); HANDLE_CODE(bref.pack(dev_type_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(phy_layer_params_v920.pack(bref)); HANDLE_CODE(inter_rat_params_geran_v920.pack(bref)); if (inter_rat_params_utra_v920_present) { HANDLE_CODE(inter_rat_params_utra_v920.pack(bref)); } if (inter_rat_params_cdma2000_v920_present) { HANDLE_CODE(inter_rat_params_cdma2000_v920.pack(bref)); } HANDLE_CODE(csg_proximity_ind_params_r9.pack(bref)); HANDLE_CODE(neigh_cell_si_acquisition_params_r9.pack(bref)); HANDLE_CODE(son_params_r9.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_v920_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(inter_rat_params_utra_v920_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params_cdma2000_v920_present, 1)); HANDLE_CODE(bref.unpack(dev_type_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(phy_layer_params_v920.unpack(bref)); HANDLE_CODE(inter_rat_params_geran_v920.unpack(bref)); if (inter_rat_params_utra_v920_present) { HANDLE_CODE(inter_rat_params_utra_v920.unpack(bref)); } if (inter_rat_params_cdma2000_v920_present) { HANDLE_CODE(inter_rat_params_cdma2000_v920.unpack(bref)); } HANDLE_CODE(csg_proximity_ind_params_r9.unpack(bref)); HANDLE_CODE(neigh_cell_si_acquisition_params_r9.unpack(bref)); HANDLE_CODE(son_params_r9.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_v920_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("phyLayerParameters-v920"); phy_layer_params_v920.to_json(j); j.write_fieldname("interRAT-ParametersGERAN-v920"); inter_rat_params_geran_v920.to_json(j); if (inter_rat_params_utra_v920_present) { j.write_fieldname("interRAT-ParametersUTRA-v920"); inter_rat_params_utra_v920.to_json(j); } if (inter_rat_params_cdma2000_v920_present) { j.write_fieldname("interRAT-ParametersCDMA2000-v920"); inter_rat_params_cdma2000_v920.to_json(j); } if (dev_type_r9_present) { j.write_str("deviceType-r9", "noBenFromBatConsumpOpt"); } j.write_fieldname("csg-ProximityIndicationParameters-r9"); csg_proximity_ind_params_r9.to_json(j); j.write_fieldname("neighCellSI-AcquisitionParameters-r9"); neigh_cell_si_acquisition_params_r9.to_json(j); j.write_fieldname("son-Parameters-r9"); son_params_r9.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UE-EUTRA-Capability ::= SEQUENCE SRSASN_CODE ue_eutra_cap_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(feature_group_inds_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_enum(bref, access_stratum_release)); HANDLE_CODE(pack_unalign_integer(bref, ue_category, (uint8_t)1, (uint8_t)5)); HANDLE_CODE(pdcp_params.pack(bref)); HANDLE_CODE(phy_layer_params.pack(bref)); HANDLE_CODE(rf_params.pack(bref)); HANDLE_CODE(meas_params.pack(bref)); if (feature_group_inds_present) { HANDLE_CODE(feature_group_inds.pack(bref)); } HANDLE_CODE(bref.pack(inter_rat_params.utra_fdd_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params.utra_tdd128_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params.utra_tdd384_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params.utra_tdd768_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params.geran_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params.cdma2000_hrpd_present, 1)); HANDLE_CODE(bref.pack(inter_rat_params.cdma2000_minus1x_rtt_present, 1)); if (inter_rat_params.utra_fdd_present) { HANDLE_CODE(inter_rat_params.utra_fdd.pack(bref)); } if (inter_rat_params.utra_tdd128_present) { HANDLE_CODE(inter_rat_params.utra_tdd128.pack(bref)); } if (inter_rat_params.utra_tdd384_present) { HANDLE_CODE(inter_rat_params.utra_tdd384.pack(bref)); } if (inter_rat_params.utra_tdd768_present) { HANDLE_CODE(inter_rat_params.utra_tdd768.pack(bref)); } if (inter_rat_params.geran_present) { HANDLE_CODE(inter_rat_params.geran.pack(bref)); } if (inter_rat_params.cdma2000_hrpd_present) { HANDLE_CODE(inter_rat_params.cdma2000_hrpd.pack(bref)); } if (inter_rat_params.cdma2000_minus1x_rtt_present) { HANDLE_CODE(inter_rat_params.cdma2000_minus1x_rtt.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_eutra_cap_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(feature_group_inds_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_enum(access_stratum_release, bref)); HANDLE_CODE(unpack_unalign_integer(ue_category, bref, (uint8_t)1, (uint8_t)5)); HANDLE_CODE(pdcp_params.unpack(bref)); HANDLE_CODE(phy_layer_params.unpack(bref)); HANDLE_CODE(rf_params.unpack(bref)); HANDLE_CODE(meas_params.unpack(bref)); if (feature_group_inds_present) { HANDLE_CODE(feature_group_inds.unpack(bref)); } HANDLE_CODE(bref.unpack(inter_rat_params.utra_fdd_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params.utra_tdd128_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params.utra_tdd384_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params.utra_tdd768_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params.geran_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params.cdma2000_hrpd_present, 1)); HANDLE_CODE(bref.unpack(inter_rat_params.cdma2000_minus1x_rtt_present, 1)); if (inter_rat_params.utra_fdd_present) { HANDLE_CODE(inter_rat_params.utra_fdd.unpack(bref)); } if (inter_rat_params.utra_tdd128_present) { HANDLE_CODE(inter_rat_params.utra_tdd128.unpack(bref)); } if (inter_rat_params.utra_tdd384_present) { HANDLE_CODE(inter_rat_params.utra_tdd384.unpack(bref)); } if (inter_rat_params.utra_tdd768_present) { HANDLE_CODE(inter_rat_params.utra_tdd768.unpack(bref)); } if (inter_rat_params.geran_present) { HANDLE_CODE(inter_rat_params.geran.unpack(bref)); } if (inter_rat_params.cdma2000_hrpd_present) { HANDLE_CODE(inter_rat_params.cdma2000_hrpd.unpack(bref)); } if (inter_rat_params.cdma2000_minus1x_rtt_present) { HANDLE_CODE(inter_rat_params.cdma2000_minus1x_rtt.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_eutra_cap_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("accessStratumRelease", access_stratum_release.to_string()); j.write_int("ue-Category", ue_category); j.write_fieldname("pdcp-Parameters"); pdcp_params.to_json(j); j.write_fieldname("phyLayerParameters"); phy_layer_params.to_json(j); j.write_fieldname("rf-Parameters"); rf_params.to_json(j); j.write_fieldname("measParameters"); meas_params.to_json(j); if (feature_group_inds_present) { j.write_str("featureGroupIndicators", feature_group_inds.to_string()); } j.write_fieldname("interRAT-Parameters"); j.start_obj(); if (inter_rat_params.utra_fdd_present) { j.write_fieldname("utraFDD"); inter_rat_params.utra_fdd.to_json(j); } if (inter_rat_params.utra_tdd128_present) { j.write_fieldname("utraTDD128"); inter_rat_params.utra_tdd128.to_json(j); } if (inter_rat_params.utra_tdd384_present) { j.write_fieldname("utraTDD384"); inter_rat_params.utra_tdd384.to_json(j); } if (inter_rat_params.utra_tdd768_present) { j.write_fieldname("utraTDD768"); inter_rat_params.utra_tdd768.to_json(j); } if (inter_rat_params.geran_present) { j.write_fieldname("geran"); inter_rat_params.geran.to_json(j); } if (inter_rat_params.cdma2000_hrpd_present) { j.write_fieldname("cdma2000-HRPD"); inter_rat_params.cdma2000_hrpd.to_json(j); } if (inter_rat_params.cdma2000_minus1x_rtt_present) { j.write_fieldname("cdma2000-1xRTT"); inter_rat_params.cdma2000_minus1x_rtt.to_json(j); } j.end_obj(); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SCG-Config-r12-IEs ::= SEQUENCE SRSASN_CODE scg_cfg_r12_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(scg_radio_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (scg_radio_cfg_r12_present) { HANDLE_CODE(scg_radio_cfg_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_r12_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(scg_radio_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (scg_radio_cfg_r12_present) { HANDLE_CODE(scg_radio_cfg_r12.unpack(bref)); } return SRSASN_SUCCESS; } void scg_cfg_r12_ies_s::to_json(json_writer& j) const { j.start_obj(); if (scg_radio_cfg_r12_present) { j.write_fieldname("scg-RadioConfig-r12"); scg_radio_cfg_r12.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // AS-ConfigNR-r15 ::= SEQUENCE SRSASN_CODE as_cfg_nr_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(source_rb_cfg_nr_r15_present, 1)); HANDLE_CODE(bref.pack(source_rb_cfg_sn_nr_r15_present, 1)); HANDLE_CODE(bref.pack(source_other_cfg_sn_nr_r15_present, 1)); if (source_rb_cfg_nr_r15_present) { HANDLE_CODE(source_rb_cfg_nr_r15.pack(bref)); } if (source_rb_cfg_sn_nr_r15_present) { HANDLE_CODE(source_rb_cfg_sn_nr_r15.pack(bref)); } if (source_other_cfg_sn_nr_r15_present) { HANDLE_CODE(source_other_cfg_sn_nr_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE as_cfg_nr_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(source_rb_cfg_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(source_rb_cfg_sn_nr_r15_present, 1)); HANDLE_CODE(bref.unpack(source_other_cfg_sn_nr_r15_present, 1)); if (source_rb_cfg_nr_r15_present) { HANDLE_CODE(source_rb_cfg_nr_r15.unpack(bref)); } if (source_rb_cfg_sn_nr_r15_present) { HANDLE_CODE(source_rb_cfg_sn_nr_r15.unpack(bref)); } if (source_other_cfg_sn_nr_r15_present) { HANDLE_CODE(source_other_cfg_sn_nr_r15.unpack(bref)); } return SRSASN_SUCCESS; } void as_cfg_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); if (source_rb_cfg_nr_r15_present) { j.write_str("sourceRB-ConfigNR-r15", source_rb_cfg_nr_r15.to_string()); } if (source_rb_cfg_sn_nr_r15_present) { j.write_str("sourceRB-ConfigSN-NR-r15", source_rb_cfg_sn_nr_r15.to_string()); } if (source_other_cfg_sn_nr_r15_present) { j.write_str("sourceOtherConfigSN-NR-r15", source_other_cfg_sn_nr_r15.to_string()); } j.end_obj(); } // SCG-Config-r12 ::= SEQUENCE SRSASN_CODE scg_cfg_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void scg_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void scg_cfg_r12_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void scg_cfg_r12_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); } } scg_cfg_r12_s::crit_exts_c_::crit_exts_c_(const scg_cfg_r12_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); } } scg_cfg_r12_s::crit_exts_c_& scg_cfg_r12_s::crit_exts_c_::operator=(const scg_cfg_r12_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); } return *this; } void scg_cfg_r12_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE scg_cfg_r12_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_r12_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void scg_cfg_r12_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void scg_cfg_r12_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::scg_cfg_r12: j.write_fieldname("scg-Config-r12"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE scg_cfg_r12_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::scg_cfg_r12: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_r12_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::scg_cfg_r12: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // AS-Config ::= SEQUENCE SRSASN_CODE as_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(source_meas_cfg.pack(bref)); HANDLE_CODE(source_rr_cfg.pack(bref)); HANDLE_CODE(source_security_algorithm_cfg.pack(bref)); HANDLE_CODE(source_ue_id.pack(bref)); HANDLE_CODE(source_mib.pack(bref)); HANDLE_CODE(source_sib_type1.pack(bref)); HANDLE_CODE(source_sib_type2.pack(bref)); HANDLE_CODE(ant_info_common.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, source_dl_carrier_freq, (uint16_t)0, (uint16_t)65535)); if (ext) { ext_groups_header group_flags(4); group_flags[0] |= source_sib_type1_ext_present; group_flags[0] |= source_other_cfg_r9.get() != NULL; rrc_asn1_warn_assert(source_scell_cfg_list_r10_present != (source_scell_cfg_list_r10.get() != NULL), __FILE__, __LINE__); group_flags[1] |= source_scell_cfg_list_r10_present; rrc_asn1_warn_assert(source_cfg_scg_r12_present != (source_cfg_scg_r12.get() != NULL), __FILE__, __LINE__); group_flags[2] |= source_cfg_scg_r12_present; rrc_asn1_warn_assert(as_cfg_nr_r15_present != (as_cfg_nr_r15.get() != NULL), __FILE__, __LINE__); group_flags[3] |= as_cfg_nr_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(source_sib_type1_ext_present, 1)); if (source_sib_type1_ext_present) { HANDLE_CODE(source_sib_type1_ext.pack(bref)); } HANDLE_CODE(source_other_cfg_r9->pack(bref)); } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(source_scell_cfg_list_r10_present, 1)); if (source_scell_cfg_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *source_scell_cfg_list_r10, 1, 4)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(source_cfg_scg_r12_present, 1)); if (source_cfg_scg_r12_present) { HANDLE_CODE(source_cfg_scg_r12->pack(bref)); } } if (group_flags[3]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(as_cfg_nr_r15_present, 1)); if (as_cfg_nr_r15_present) { HANDLE_CODE(as_cfg_nr_r15->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE as_cfg_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(source_meas_cfg.unpack(bref)); HANDLE_CODE(source_rr_cfg.unpack(bref)); HANDLE_CODE(source_security_algorithm_cfg.unpack(bref)); HANDLE_CODE(source_ue_id.unpack(bref)); HANDLE_CODE(source_mib.unpack(bref)); HANDLE_CODE(source_sib_type1.unpack(bref)); HANDLE_CODE(source_sib_type2.unpack(bref)); HANDLE_CODE(ant_info_common.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(source_dl_carrier_freq, bref, (uint16_t)0, (uint16_t)65535)); if (ext) { ext_groups_header group_flags(4); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(source_sib_type1_ext_present, 1)); if (source_sib_type1_ext_present) { HANDLE_CODE(source_sib_type1_ext.unpack(bref)); } source_other_cfg_r9 = make_copy_ptr(other_cfg_r9_s()); HANDLE_CODE(source_other_cfg_r9->unpack(bref)); } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(source_scell_cfg_list_r10_present, 1)); if (source_scell_cfg_list_r10_present) { source_scell_cfg_list_r10 = make_copy_ptr(scell_to_add_mod_list_r10_l()); HANDLE_CODE(unpack_dyn_seq_of(*source_scell_cfg_list_r10, bref, 1, 4)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(source_cfg_scg_r12_present, 1)); if (source_cfg_scg_r12_present) { source_cfg_scg_r12 = make_copy_ptr(scg_cfg_r12_s()); HANDLE_CODE(source_cfg_scg_r12->unpack(bref)); } } if (group_flags[3]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(as_cfg_nr_r15_present, 1)); if (as_cfg_nr_r15_present) { as_cfg_nr_r15 = make_copy_ptr(as_cfg_nr_r15_s()); HANDLE_CODE(as_cfg_nr_r15->unpack(bref)); } } } return SRSASN_SUCCESS; } void as_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("sourceMeasConfig"); source_meas_cfg.to_json(j); j.write_fieldname("sourceRadioResourceConfig"); source_rr_cfg.to_json(j); j.write_fieldname("sourceSecurityAlgorithmConfig"); source_security_algorithm_cfg.to_json(j); j.write_str("sourceUE-Identity", source_ue_id.to_string()); j.write_fieldname("sourceMasterInformationBlock"); source_mib.to_json(j); j.write_fieldname("sourceSystemInformationBlockType1"); source_sib_type1.to_json(j); j.write_fieldname("sourceSystemInformationBlockType2"); source_sib_type2.to_json(j); j.write_fieldname("antennaInfoCommon"); ant_info_common.to_json(j); j.write_int("sourceDl-CarrierFreq", source_dl_carrier_freq); if (ext) { if (source_sib_type1_ext_present) { j.write_str("sourceSystemInformationBlockType1Ext", source_sib_type1_ext.to_string()); } j.write_fieldname("sourceOtherConfig-r9"); source_other_cfg_r9->to_json(j); rrc_asn1_warn_assert(source_scell_cfg_list_r10_present != (source_scell_cfg_list_r10.get() != NULL), __FILE__, __LINE__); if (source_scell_cfg_list_r10_present) { j.start_array("sourceSCellConfigList-r10"); for (uint32_t i1 = 0; i1 < source_scell_cfg_list_r10->size(); ++i1) { ((*source_scell_cfg_list_r10)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(source_cfg_scg_r12_present != (source_cfg_scg_r12.get() != NULL), __FILE__, __LINE__); if (source_cfg_scg_r12_present) { j.write_fieldname("sourceConfigSCG-r12"); source_cfg_scg_r12->to_json(j); } rrc_asn1_warn_assert(as_cfg_nr_r15_present != (as_cfg_nr_r15.get() != NULL), __FILE__, __LINE__); if (as_cfg_nr_r15_present) { j.write_fieldname("as-ConfigNR-r15"); as_cfg_nr_r15->to_json(j); } } j.end_obj(); } // AS-Config-v10j0 ::= SEQUENCE SRSASN_CODE as_cfg_v10j0_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ant_info_ded_pcell_v10i0_present, 1)); if (ant_info_ded_pcell_v10i0_present) { HANDLE_CODE(ant_info_ded_pcell_v10i0.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE as_cfg_v10j0_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ant_info_ded_pcell_v10i0_present, 1)); if (ant_info_ded_pcell_v10i0_present) { HANDLE_CODE(ant_info_ded_pcell_v10i0.unpack(bref)); } return SRSASN_SUCCESS; } void as_cfg_v10j0_s::to_json(json_writer& j) const { j.start_obj(); if (ant_info_ded_pcell_v10i0_present) { j.write_fieldname("antennaInfoDedicatedPCell-v10i0"); ant_info_ded_pcell_v10i0.to_json(j); } j.end_obj(); } // AS-Config-v1250 ::= SEQUENCE SRSASN_CODE as_cfg_v1250_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(source_wlan_offload_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(source_sl_comm_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(source_sl_disc_cfg_r12_present, 1)); if (source_wlan_offload_cfg_r12_present) { HANDLE_CODE(source_wlan_offload_cfg_r12.pack(bref)); } if (source_sl_comm_cfg_r12_present) { HANDLE_CODE(source_sl_comm_cfg_r12.pack(bref)); } if (source_sl_disc_cfg_r12_present) { HANDLE_CODE(source_sl_disc_cfg_r12.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE as_cfg_v1250_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(source_wlan_offload_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(source_sl_comm_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(source_sl_disc_cfg_r12_present, 1)); if (source_wlan_offload_cfg_r12_present) { HANDLE_CODE(source_wlan_offload_cfg_r12.unpack(bref)); } if (source_sl_comm_cfg_r12_present) { HANDLE_CODE(source_sl_comm_cfg_r12.unpack(bref)); } if (source_sl_disc_cfg_r12_present) { HANDLE_CODE(source_sl_disc_cfg_r12.unpack(bref)); } return SRSASN_SUCCESS; } void as_cfg_v1250_s::to_json(json_writer& j) const { j.start_obj(); if (source_wlan_offload_cfg_r12_present) { j.write_fieldname("sourceWlan-OffloadConfig-r12"); source_wlan_offload_cfg_r12.to_json(j); } if (source_sl_comm_cfg_r12_present) { j.write_fieldname("sourceSL-CommConfig-r12"); source_sl_comm_cfg_r12.to_json(j); } if (source_sl_disc_cfg_r12_present) { j.write_fieldname("sourceSL-DiscConfig-r12"); source_sl_disc_cfg_r12.to_json(j); } j.end_obj(); } // AS-Config-v1320 ::= SEQUENCE SRSASN_CODE as_cfg_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(source_scell_cfg_list_r13_present, 1)); HANDLE_CODE(bref.pack(source_rclwi_cfg_r13_present, 1)); if (source_scell_cfg_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, source_scell_cfg_list_r13, 1, 31)); } if (source_rclwi_cfg_r13_present) { HANDLE_CODE(source_rclwi_cfg_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE as_cfg_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(source_scell_cfg_list_r13_present, 1)); HANDLE_CODE(bref.unpack(source_rclwi_cfg_r13_present, 1)); if (source_scell_cfg_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(source_scell_cfg_list_r13, bref, 1, 31)); } if (source_rclwi_cfg_r13_present) { HANDLE_CODE(source_rclwi_cfg_r13.unpack(bref)); } return SRSASN_SUCCESS; } void as_cfg_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (source_scell_cfg_list_r13_present) { j.start_array("sourceSCellConfigList-r13"); for (uint32_t i1 = 0; i1 < source_scell_cfg_list_r13.size(); ++i1) { source_scell_cfg_list_r13[i1].to_json(j); } j.end_array(); } if (source_rclwi_cfg_r13_present) { j.write_fieldname("sourceRCLWI-Configuration-r13"); source_rclwi_cfg_r13.to_json(j); } j.end_obj(); } // AS-Config-v1430 ::= SEQUENCE SRSASN_CODE as_cfg_v1430_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(source_sl_v2x_comm_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(source_lwa_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(source_wlan_meas_result_r14_present, 1)); if (source_sl_v2x_comm_cfg_r14_present) { HANDLE_CODE(source_sl_v2x_comm_cfg_r14.pack(bref)); } if (source_lwa_cfg_r14_present) { HANDLE_CODE(source_lwa_cfg_r14.pack(bref)); } if (source_wlan_meas_result_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, source_wlan_meas_result_r14, 1, 8)); } return SRSASN_SUCCESS; } SRSASN_CODE as_cfg_v1430_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(source_sl_v2x_comm_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(source_lwa_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(source_wlan_meas_result_r14_present, 1)); if (source_sl_v2x_comm_cfg_r14_present) { HANDLE_CODE(source_sl_v2x_comm_cfg_r14.unpack(bref)); } if (source_lwa_cfg_r14_present) { HANDLE_CODE(source_lwa_cfg_r14.unpack(bref)); } if (source_wlan_meas_result_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(source_wlan_meas_result_r14, bref, 1, 8)); } return SRSASN_SUCCESS; } void as_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); if (source_sl_v2x_comm_cfg_r14_present) { j.write_fieldname("sourceSL-V2X-CommConfig-r14"); source_sl_v2x_comm_cfg_r14.to_json(j); } if (source_lwa_cfg_r14_present) { j.write_fieldname("sourceLWA-Config-r14"); source_lwa_cfg_r14.to_json(j); } if (source_wlan_meas_result_r14_present) { j.start_array("sourceWLAN-MeasResult-r14"); for (uint32_t i1 = 0; i1 < source_wlan_meas_result_r14.size(); ++i1) { source_wlan_meas_result_r14[i1].to_json(j); } j.end_array(); } j.end_obj(); } // AS-Config-v9e0 ::= SEQUENCE SRSASN_CODE as_cfg_v9e0_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, source_dl_carrier_freq_v9e0, (uint32_t)65536, (uint32_t)262143)); return SRSASN_SUCCESS; } SRSASN_CODE as_cfg_v9e0_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(source_dl_carrier_freq_v9e0, bref, (uint32_t)65536, (uint32_t)262143)); return SRSASN_SUCCESS; } void as_cfg_v9e0_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sourceDl-CarrierFreq-v9e0", source_dl_carrier_freq_v9e0); j.end_obj(); } // AdditionalReestabInfo ::= SEQUENCE SRSASN_CODE add_reestab_info_s::pack(bit_ref& bref) const { HANDLE_CODE(cell_id.pack(bref)); HANDLE_CODE(key_e_node_b_star.pack(bref)); HANDLE_CODE(short_mac_i.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE add_reestab_info_s::unpack(bit_ref& bref) { HANDLE_CODE(cell_id.unpack(bref)); HANDLE_CODE(key_e_node_b_star.unpack(bref)); HANDLE_CODE(short_mac_i.unpack(bref)); return SRSASN_SUCCESS; } void add_reestab_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cellIdentity", cell_id.to_string()); j.write_str("key-eNodeB-Star", key_e_node_b_star.to_string()); j.write_str("shortMAC-I", short_mac_i.to_string()); j.end_obj(); } // ReestablishmentInfo ::= SEQUENCE SRSASN_CODE reest_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(add_reestab_info_list_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, source_pci, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(target_cell_short_mac_i.pack(bref)); if (add_reestab_info_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, add_reestab_info_list, 1, 32)); } return SRSASN_SUCCESS; } SRSASN_CODE reest_info_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(add_reestab_info_list_present, 1)); HANDLE_CODE(unpack_unalign_integer(source_pci, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(target_cell_short_mac_i.unpack(bref)); if (add_reestab_info_list_present) { HANDLE_CODE(unpack_dyn_seq_of(add_reestab_info_list, bref, 1, 32)); } return SRSASN_SUCCESS; } void reest_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sourcePhysCellId", source_pci); j.write_str("targetCellShortMAC-I", target_cell_short_mac_i.to_string()); if (add_reestab_info_list_present) { j.start_array("additionalReestabInfoList"); for (uint32_t i1 = 0; i1 < add_reestab_info_list.size(); ++i1) { add_reestab_info_list[i1].to_json(j); } j.end_array(); } j.end_obj(); } // AS-Context ::= SEQUENCE SRSASN_CODE as_context_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(reest_info_present, 1)); if (reest_info_present) { HANDLE_CODE(reest_info.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE as_context_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(reest_info_present, 1)); if (reest_info_present) { HANDLE_CODE(reest_info.unpack(bref)); } return SRSASN_SUCCESS; } void as_context_s::to_json(json_writer& j) const { j.start_obj(); if (reest_info_present) { j.write_fieldname("reestablishmentInfo"); reest_info.to_json(j); } j.end_obj(); } // AS-Context-v1130 ::= SEQUENCE SRSASN_CODE as_context_v1130_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(idc_ind_r11_present, 1)); HANDLE_CODE(bref.pack(mbms_interest_ind_r11_present, 1)); HANDLE_CODE(bref.pack(pwr_pref_ind_r11_present, 1)); if (idc_ind_r11_present) { HANDLE_CODE(idc_ind_r11.pack(bref)); } if (mbms_interest_ind_r11_present) { HANDLE_CODE(mbms_interest_ind_r11.pack(bref)); } if (pwr_pref_ind_r11_present) { HANDLE_CODE(pwr_pref_ind_r11.pack(bref)); } if (ext) { ext_groups_header group_flags(2); group_flags[0] |= sidelink_ue_info_r12_present; group_flags[1] |= source_context_en_dc_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sidelink_ue_info_r12_present, 1)); if (sidelink_ue_info_r12_present) { HANDLE_CODE(sidelink_ue_info_r12.pack(bref)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(source_context_en_dc_r15_present, 1)); if (source_context_en_dc_r15_present) { HANDLE_CODE(source_context_en_dc_r15.pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE as_context_v1130_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(idc_ind_r11_present, 1)); HANDLE_CODE(bref.unpack(mbms_interest_ind_r11_present, 1)); HANDLE_CODE(bref.unpack(pwr_pref_ind_r11_present, 1)); if (idc_ind_r11_present) { HANDLE_CODE(idc_ind_r11.unpack(bref)); } if (mbms_interest_ind_r11_present) { HANDLE_CODE(mbms_interest_ind_r11.unpack(bref)); } if (pwr_pref_ind_r11_present) { HANDLE_CODE(pwr_pref_ind_r11.unpack(bref)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sidelink_ue_info_r12_present, 1)); if (sidelink_ue_info_r12_present) { HANDLE_CODE(sidelink_ue_info_r12.unpack(bref)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(source_context_en_dc_r15_present, 1)); if (source_context_en_dc_r15_present) { HANDLE_CODE(source_context_en_dc_r15.unpack(bref)); } } } return SRSASN_SUCCESS; } void as_context_v1130_s::to_json(json_writer& j) const { j.start_obj(); if (idc_ind_r11_present) { j.write_str("idc-Indication-r11", idc_ind_r11.to_string()); } if (mbms_interest_ind_r11_present) { j.write_str("mbmsInterestIndication-r11", mbms_interest_ind_r11.to_string()); } if (pwr_pref_ind_r11_present) { j.write_str("powerPrefIndication-r11", pwr_pref_ind_r11.to_string()); } if (ext) { if (sidelink_ue_info_r12_present) { j.write_str("sidelinkUEInformation-r12", sidelink_ue_info_r12.to_string()); } if (source_context_en_dc_r15_present) { j.write_str("sourceContextEN-DC-r15", source_context_en_dc_r15.to_string()); } } j.end_obj(); } // AS-Context-v1320 ::= SEQUENCE SRSASN_CODE as_context_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(wlan_conn_status_report_r13_present, 1)); if (wlan_conn_status_report_r13_present) { HANDLE_CODE(wlan_conn_status_report_r13.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE as_context_v1320_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(wlan_conn_status_report_r13_present, 1)); if (wlan_conn_status_report_r13_present) { HANDLE_CODE(wlan_conn_status_report_r13.unpack(bref)); } return SRSASN_SUCCESS; } void as_context_v1320_s::to_json(json_writer& j) const { j.start_obj(); if (wlan_conn_status_report_r13_present) { j.write_str("wlanConnectionStatusReport-r13", wlan_conn_status_report_r13.to_string()); } j.end_obj(); } // CandidateCellInfo-r10 ::= SEQUENCE SRSASN_CODE candidate_cell_info_r10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rsrp_result_r10_present, 1)); HANDLE_CODE(bref.pack(rsrq_result_r10_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, pci_r10, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq_r10, (uint16_t)0, (uint16_t)65535)); if (rsrp_result_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, rsrp_result_r10, (uint8_t)0, (uint8_t)97)); } if (rsrq_result_r10_present) { HANDLE_CODE(pack_unalign_integer(bref, rsrq_result_r10, (uint8_t)0, (uint8_t)34)); } if (ext) { ext_groups_header group_flags(3); group_flags[0] |= dl_carrier_freq_v1090_present; group_flags[1] |= rsrq_result_v1250_present; group_flags[2] |= rs_sinr_result_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(dl_carrier_freq_v1090_present, 1)); if (dl_carrier_freq_v1090_present) { HANDLE_CODE(pack_unalign_integer(bref, dl_carrier_freq_v1090, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rsrq_result_v1250_present, 1)); if (rsrq_result_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, rsrq_result_v1250, (int8_t)-30, (int8_t)46)); } } if (group_flags[2]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(rs_sinr_result_r13_present, 1)); if (rs_sinr_result_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, rs_sinr_result_r13, (uint8_t)0, (uint8_t)127)); } } } return SRSASN_SUCCESS; } SRSASN_CODE candidate_cell_info_r10_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rsrp_result_r10_present, 1)); HANDLE_CODE(bref.unpack(rsrq_result_r10_present, 1)); HANDLE_CODE(unpack_unalign_integer(pci_r10, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq_r10, bref, (uint16_t)0, (uint16_t)65535)); if (rsrp_result_r10_present) { HANDLE_CODE(unpack_unalign_integer(rsrp_result_r10, bref, (uint8_t)0, (uint8_t)97)); } if (rsrq_result_r10_present) { HANDLE_CODE(unpack_unalign_integer(rsrq_result_r10, bref, (uint8_t)0, (uint8_t)34)); } if (ext) { ext_groups_header group_flags(3); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(dl_carrier_freq_v1090_present, 1)); if (dl_carrier_freq_v1090_present) { HANDLE_CODE(unpack_unalign_integer(dl_carrier_freq_v1090, bref, (uint32_t)65536, (uint32_t)262143)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rsrq_result_v1250_present, 1)); if (rsrq_result_v1250_present) { HANDLE_CODE(unpack_unalign_integer(rsrq_result_v1250, bref, (int8_t)-30, (int8_t)46)); } } if (group_flags[2]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(rs_sinr_result_r13_present, 1)); if (rs_sinr_result_r13_present) { HANDLE_CODE(unpack_unalign_integer(rs_sinr_result_r13, bref, (uint8_t)0, (uint8_t)127)); } } } return SRSASN_SUCCESS; } void candidate_cell_info_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("physCellId-r10", pci_r10); j.write_int("dl-CarrierFreq-r10", dl_carrier_freq_r10); if (rsrp_result_r10_present) { j.write_int("rsrpResult-r10", rsrp_result_r10); } if (rsrq_result_r10_present) { j.write_int("rsrqResult-r10", rsrq_result_r10); } if (ext) { if (dl_carrier_freq_v1090_present) { j.write_int("dl-CarrierFreq-v1090", dl_carrier_freq_v1090); } if (rsrq_result_v1250_present) { j.write_int("rsrqResult-v1250", rsrq_result_v1250); } if (rs_sinr_result_r13_present) { j.write_int("rs-sinr-Result-r13", rs_sinr_result_r13); } } j.end_obj(); } // Cell-ToAddMod-r12 ::= SEQUENCE SRSASN_CODE cell_to_add_mod_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(cell_identif_r12_present, 1)); HANDLE_CODE(bref.pack(meas_result_cell_to_add_r12_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, s_cell_idx_r12, (uint8_t)1, (uint8_t)7)); if (cell_identif_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, cell_identif_r12.pci_r12, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(pack_unalign_integer(bref, cell_identif_r12.dl_carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); } if (meas_result_cell_to_add_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_result_cell_to_add_r12.rsrp_result_r12, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_cell_to_add_r12.rsrq_result_r12, (uint8_t)0, (uint8_t)34)); } if (ext) { ext_groups_header group_flags(1); group_flags[0] |= s_cell_idx_r13_present; rrc_asn1_warn_assert(meas_result_cell_to_add_v1310_present != (meas_result_cell_to_add_v1310.get() != NULL), __FILE__, __LINE__); group_flags[0] |= meas_result_cell_to_add_v1310_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(s_cell_idx_r13_present, 1)); HANDLE_CODE(bref.pack(meas_result_cell_to_add_v1310_present, 1)); if (s_cell_idx_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, s_cell_idx_r13, (uint8_t)1, (uint8_t)31)); } if (meas_result_cell_to_add_v1310_present) { HANDLE_CODE( pack_unalign_integer(bref, meas_result_cell_to_add_v1310->rs_sinr_result_r13, (uint8_t)0, (uint8_t)127)); } } } return SRSASN_SUCCESS; } SRSASN_CODE cell_to_add_mod_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(cell_identif_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_result_cell_to_add_r12_present, 1)); HANDLE_CODE(unpack_unalign_integer(s_cell_idx_r12, bref, (uint8_t)1, (uint8_t)7)); if (cell_identif_r12_present) { HANDLE_CODE(unpack_unalign_integer(cell_identif_r12.pci_r12, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(unpack_unalign_integer(cell_identif_r12.dl_carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); } if (meas_result_cell_to_add_r12_present) { HANDLE_CODE(unpack_unalign_integer(meas_result_cell_to_add_r12.rsrp_result_r12, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(meas_result_cell_to_add_r12.rsrq_result_r12, bref, (uint8_t)0, (uint8_t)34)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(s_cell_idx_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_result_cell_to_add_v1310_present, 1)); if (s_cell_idx_r13_present) { HANDLE_CODE(unpack_unalign_integer(s_cell_idx_r13, bref, (uint8_t)1, (uint8_t)31)); } if (meas_result_cell_to_add_v1310_present) { meas_result_cell_to_add_v1310 = make_copy_ptr(meas_result_cell_to_add_v1310_s_()); HANDLE_CODE( unpack_unalign_integer(meas_result_cell_to_add_v1310->rs_sinr_result_r13, bref, (uint8_t)0, (uint8_t)127)); } } } return SRSASN_SUCCESS; } void cell_to_add_mod_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("sCellIndex-r12", s_cell_idx_r12); if (cell_identif_r12_present) { j.write_fieldname("cellIdentification-r12"); j.start_obj(); j.write_int("physCellId-r12", cell_identif_r12.pci_r12); j.write_int("dl-CarrierFreq-r12", cell_identif_r12.dl_carrier_freq_r12); j.end_obj(); } if (meas_result_cell_to_add_r12_present) { j.write_fieldname("measResultCellToAdd-r12"); j.start_obj(); j.write_int("rsrpResult-r12", meas_result_cell_to_add_r12.rsrp_result_r12); j.write_int("rsrqResult-r12", meas_result_cell_to_add_r12.rsrq_result_r12); j.end_obj(); } if (ext) { if (s_cell_idx_r13_present) { j.write_int("sCellIndex-r13", s_cell_idx_r13); } rrc_asn1_warn_assert(meas_result_cell_to_add_v1310_present != (meas_result_cell_to_add_v1310.get() != NULL), __FILE__, __LINE__); if (meas_result_cell_to_add_v1310_present) { j.write_fieldname("measResultCellToAdd-v1310"); j.start_obj(); j.write_int("rs-sinr-Result-r13", meas_result_cell_to_add_v1310->rs_sinr_result_r13); j.end_obj(); } } j.end_obj(); } void cells_triggered_list_item_c_::destroy_() { switch (type_) { case types::pci_utra: c.destroy(); break; case types::pci_geran: c.destroy(); break; case types::wlan_ids_r13: c.destroy(); break; case types::pci_nr_r15: c.destroy(); break; default: break; } } void cells_triggered_list_item_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::pci_eutra: break; case types::pci_utra: c.init(); break; case types::pci_geran: c.init(); break; case types::pci_cdma2000: break; case types::wlan_ids_r13: c.init(); break; case types::pci_nr_r15: c.init(); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_"); } } cells_triggered_list_item_c_::cells_triggered_list_item_c_(const cells_triggered_list_item_c_& other) { type_ = other.type(); switch (type_) { case types::pci_eutra: c.init(other.c.get()); break; case types::pci_utra: c.init(other.c.get()); break; case types::pci_geran: c.init(other.c.get()); break; case types::pci_cdma2000: c.init(other.c.get()); break; case types::wlan_ids_r13: c.init(other.c.get()); break; case types::pci_nr_r15: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_"); } } cells_triggered_list_item_c_& cells_triggered_list_item_c_::operator=(const cells_triggered_list_item_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::pci_eutra: c.set(other.c.get()); break; case types::pci_utra: c.set(other.c.get()); break; case types::pci_geran: c.set(other.c.get()); break; case types::pci_cdma2000: c.set(other.c.get()); break; case types::wlan_ids_r13: c.set(other.c.get()); break; case types::pci_nr_r15: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_"); } return *this; } void cells_triggered_list_item_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::pci_eutra: j.write_int("physCellIdEUTRA", c.get()); break; case types::pci_utra: j.write_fieldname("physCellIdUTRA"); c.get().to_json(j); break; case types::pci_geran: j.write_fieldname("physCellIdGERAN"); j.start_obj(); j.write_fieldname("carrierFreq"); c.get().carrier_freq.to_json(j); j.write_fieldname("physCellId"); c.get().pci.to_json(j); j.end_obj(); break; case types::pci_cdma2000: j.write_int("physCellIdCDMA2000", c.get()); break; case types::wlan_ids_r13: j.write_fieldname("wlan-Identifiers-r13"); c.get().to_json(j); break; case types::pci_nr_r15: j.write_fieldname("physCellIdNR-r15"); j.start_obj(); j.write_int("carrierFreq", c.get().carrier_freq); j.write_int("physCellId", c.get().pci); if (c.get().rs_idx_list_r15_present) { j.start_array("rs-IndexList-r15"); for (uint32_t i1 = 0; i1 < c.get().rs_idx_list_r15.size(); ++i1) { j.write_int(c.get().rs_idx_list_r15[i1]); } j.end_array(); } j.end_obj(); break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_"); } j.end_obj(); } SRSASN_CODE cells_triggered_list_item_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::pci_eutra: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)503)); break; case types::pci_utra: HANDLE_CODE(c.get().pack(bref)); break; case types::pci_geran: HANDLE_CODE(c.get().carrier_freq.pack(bref)); HANDLE_CODE(c.get().pci.pack(bref)); break; case types::pci_cdma2000: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::wlan_ids_r13: HANDLE_CODE(c.get().pack(bref)); break; case types::pci_nr_r15: HANDLE_CODE(bref.pack(c.get().rs_idx_list_r15_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, c.get().carrier_freq, (uint32_t)0, (uint32_t)3279165)); HANDLE_CODE(pack_unalign_integer(bref, c.get().pci, (uint16_t)0, (uint16_t)1007)); if (c.get().rs_idx_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().rs_idx_list_r15, 1, 64, UnalignedIntegerPacker(0, 63))); } break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cells_triggered_list_item_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::pci_eutra: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)503)); break; case types::pci_utra: HANDLE_CODE(c.get().unpack(bref)); break; case types::pci_geran: HANDLE_CODE(c.get().carrier_freq.unpack(bref)); HANDLE_CODE(c.get().pci.unpack(bref)); break; case types::pci_cdma2000: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::wlan_ids_r13: HANDLE_CODE(c.get().unpack(bref)); break; case types::pci_nr_r15: HANDLE_CODE(bref.unpack(c.get().rs_idx_list_r15_present, 1)); HANDLE_CODE(unpack_unalign_integer(c.get().carrier_freq, bref, (uint32_t)0, (uint32_t)3279165)); HANDLE_CODE(unpack_unalign_integer(c.get().pci, bref, (uint16_t)0, (uint16_t)1007)); if (c.get().rs_idx_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().rs_idx_list_r15, bref, 1, 64, UnalignedIntegerPacker(0, 63))); } break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void cells_triggered_list_item_c_::pci_utra_c_::destroy_() {} void cells_triggered_list_item_c_::pci_utra_c_::set(types::options e) { destroy_(); type_ = e; } cells_triggered_list_item_c_::pci_utra_c_::pci_utra_c_(const cells_triggered_list_item_c_::pci_utra_c_& other) { type_ = other.type(); switch (type_) { case types::fdd: c.init(other.c.get()); break; case types::tdd: c.init(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_::pci_utra_c_"); } } cells_triggered_list_item_c_::pci_utra_c_& cells_triggered_list_item_c_::pci_utra_c_:: operator=(const cells_triggered_list_item_c_::pci_utra_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::fdd: c.set(other.c.get()); break; case types::tdd: c.set(other.c.get()); break; case types::nulltype: break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_::pci_utra_c_"); } return *this; } void cells_triggered_list_item_c_::pci_utra_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::fdd: j.write_int("fdd", c.get()); break; case types::tdd: j.write_int("tdd", c.get()); break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_::pci_utra_c_"); } j.end_obj(); } SRSASN_CODE cells_triggered_list_item_c_::pci_utra_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::fdd: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint16_t)0, (uint16_t)511)); break; case types::tdd: HANDLE_CODE(pack_unalign_integer(bref, c.get(), (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_::pci_utra_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE cells_triggered_list_item_c_::pci_utra_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::fdd: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint16_t)0, (uint16_t)511)); break; case types::tdd: HANDLE_CODE(unpack_unalign_integer(c.get(), bref, (uint8_t)0, (uint8_t)127)); break; default: log_invalid_choice_id(type_, "cells_triggered_list_item_c_::pci_utra_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // DRB-InfoSCG-r12 ::= SEQUENCE SRSASN_CODE drb_info_scg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(eps_bearer_id_r12_present, 1)); HANDLE_CODE(bref.pack(drb_type_r12_present, 1)); if (eps_bearer_id_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, eps_bearer_id_r12, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(pack_unalign_integer(bref, drb_id_r12, (uint8_t)1, (uint8_t)32)); if (drb_type_r12_present) { HANDLE_CODE(pack_enum(bref, drb_type_r12)); } return SRSASN_SUCCESS; } SRSASN_CODE drb_info_scg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(eps_bearer_id_r12_present, 1)); HANDLE_CODE(bref.unpack(drb_type_r12_present, 1)); if (eps_bearer_id_r12_present) { HANDLE_CODE(unpack_unalign_integer(eps_bearer_id_r12, bref, (uint8_t)0, (uint8_t)15)); } HANDLE_CODE(unpack_unalign_integer(drb_id_r12, bref, (uint8_t)1, (uint8_t)32)); if (drb_type_r12_present) { HANDLE_CODE(unpack_enum(drb_type_r12, bref)); } return SRSASN_SUCCESS; } void drb_info_scg_r12_s::to_json(json_writer& j) const { j.start_obj(); if (eps_bearer_id_r12_present) { j.write_int("eps-BearerIdentity-r12", eps_bearer_id_r12); } j.write_int("drb-Identity-r12", drb_id_r12); if (drb_type_r12_present) { j.write_str("drb-Type-r12", drb_type_r12.to_string()); } j.end_obj(); } // HandoverCommand-r8-IEs ::= SEQUENCE SRSASN_CODE ho_cmd_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(ho_cmd_msg.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ho_cmd_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(ho_cmd_msg.unpack(bref)); return SRSASN_SUCCESS; } void ho_cmd_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("handoverCommandMessage", ho_cmd_msg.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // HandoverCommand ::= SEQUENCE SRSASN_CODE ho_cmd_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ho_cmd_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ho_cmd_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ho_cmd_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ho_cmd_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); } } ho_cmd_s::crit_exts_c_::crit_exts_c_(const ho_cmd_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); } } ho_cmd_s::crit_exts_c_& ho_cmd_s::crit_exts_c_::operator=(const ho_cmd_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); } return *this; } void ho_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ho_cmd_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ho_cmd_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ho_cmd_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ho_cmd_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ho_cmd_r8: j.write_fieldname("handoverCommand-r8"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ho_cmd_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ho_cmd_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ho_cmd_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ho_cmd_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // HandoverPreparationInformation-v1430-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(as_cfg_v1430_present, 1)); HANDLE_CODE(bref.pack(make_before_break_req_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (as_cfg_v1430_present) { HANDLE_CODE(as_cfg_v1430.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(as_cfg_v1430_present, 1)); HANDLE_CODE(bref.unpack(make_before_break_req_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (as_cfg_v1430_present) { HANDLE_CODE(as_cfg_v1430.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (as_cfg_v1430_present) { j.write_fieldname("as-Config-v1430"); as_cfg_v1430.to_json(j); } if (make_before_break_req_r14_present) { j.write_str("makeBeforeBreakReq-r14", "true"); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // HandoverPreparationInformation-v1320-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v1320_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(as_cfg_v1320_present, 1)); HANDLE_CODE(bref.pack(as_context_v1320_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (as_cfg_v1320_present) { HANDLE_CODE(as_cfg_v1320.pack(bref)); } if (as_context_v1320_present) { HANDLE_CODE(as_context_v1320.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v1320_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(as_cfg_v1320_present, 1)); HANDLE_CODE(bref.unpack(as_context_v1320_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (as_cfg_v1320_present) { HANDLE_CODE(as_cfg_v1320.unpack(bref)); } if (as_context_v1320_present) { HANDLE_CODE(as_context_v1320.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v1320_ies_s::to_json(json_writer& j) const { j.start_obj(); if (as_cfg_v1320_present) { j.write_fieldname("as-Config-v1320"); as_cfg_v1320.to_json(j); } if (as_context_v1320_present) { j.write_fieldname("as-Context-v1320"); as_context_v1320.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // HandoverPreparationInformation-v1250-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v1250_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_supported_earfcn_r12_present, 1)); HANDLE_CODE(bref.pack(as_cfg_v1250_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_supported_earfcn_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, ue_supported_earfcn_r12, (uint32_t)0, (uint32_t)262143)); } if (as_cfg_v1250_present) { HANDLE_CODE(as_cfg_v1250.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v1250_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_supported_earfcn_r12_present, 1)); HANDLE_CODE(bref.unpack(as_cfg_v1250_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_supported_earfcn_r12_present) { HANDLE_CODE(unpack_unalign_integer(ue_supported_earfcn_r12, bref, (uint32_t)0, (uint32_t)262143)); } if (as_cfg_v1250_present) { HANDLE_CODE(as_cfg_v1250.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v1250_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_supported_earfcn_r12_present) { j.write_int("ue-SupportedEARFCN-r12", ue_supported_earfcn_r12); } if (as_cfg_v1250_present) { j.write_fieldname("as-Config-v1250"); as_cfg_v1250.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v10j0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(as_cfg_v10j0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (as_cfg_v10j0_present) { HANDLE_CODE(as_cfg_v10j0.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v10j0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(as_cfg_v10j0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (as_cfg_v10j0_present) { HANDLE_CODE(as_cfg_v10j0.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v10j0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (as_cfg_v10j0_present) { j.write_fieldname("as-Config-v10j0"); as_cfg_v10j0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // HandoverPreparationInformation-v1130-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v1130_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(as_context_v1130_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (as_context_v1130_present) { HANDLE_CODE(as_context_v1130.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v1130_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(as_context_v1130_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (as_context_v1130_present) { HANDLE_CODE(as_context_v1130.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v1130_ies_s::to_json(json_writer& j) const { j.start_obj(); if (as_context_v1130_present) { j.write_fieldname("as-Context-v1130"); as_context_v1130.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v9e0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(as_cfg_v9e0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (as_cfg_v9e0_present) { HANDLE_CODE(as_cfg_v9e0.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v9e0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(as_cfg_v9e0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (as_cfg_v9e0_present) { HANDLE_CODE(as_cfg_v9e0.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (as_cfg_v9e0_present) { j.write_fieldname("as-Config-v9e0"); as_cfg_v9e0.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v9j0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v9j0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v9j0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v9d0_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v9d0_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v9d0_ies_s::to_json(json_writer& j) const { j.start_obj(); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // HandoverPreparationInformation-v920-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v920_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_cfg_release_r9_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_cfg_release_r9_present) { HANDLE_CODE(pack_enum(bref, ue_cfg_release_r9)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v920_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ue_cfg_release_r9_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ue_cfg_release_r9_present) { HANDLE_CODE(unpack_enum(ue_cfg_release_r9, bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v920_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ue_cfg_release_r9_present) { j.write_str("ue-ConfigRelease-r9", ue_cfg_release_r9.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // RRM-Config ::= SEQUENCE SRSASN_CODE rrm_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ue_inactive_time_present, 1)); if (ue_inactive_time_present) { HANDLE_CODE(pack_enum(bref, ue_inactive_time)); } if (ext) { ext_groups_header group_flags(2); rrc_asn1_warn_assert(candidate_cell_info_list_r10_present != (candidate_cell_info_list_r10.get() != NULL), __FILE__, __LINE__); group_flags[0] |= candidate_cell_info_list_r10_present; rrc_asn1_warn_assert(candidate_cell_info_list_nr_r15_present != (candidate_cell_info_list_nr_r15.get() != NULL), __FILE__, __LINE__); group_flags[1] |= candidate_cell_info_list_nr_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(candidate_cell_info_list_r10_present, 1)); if (candidate_cell_info_list_r10_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *candidate_cell_info_list_r10, 1, 8)); } } if (group_flags[1]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(candidate_cell_info_list_nr_r15_present, 1)); if (candidate_cell_info_list_nr_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *candidate_cell_info_list_nr_r15, 1, 32)); } } } return SRSASN_SUCCESS; } SRSASN_CODE rrm_cfg_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ue_inactive_time_present, 1)); if (ue_inactive_time_present) { HANDLE_CODE(unpack_enum(ue_inactive_time, bref)); } if (ext) { ext_groups_header group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(candidate_cell_info_list_r10_present, 1)); if (candidate_cell_info_list_r10_present) { candidate_cell_info_list_r10 = make_copy_ptr(candidate_cell_info_list_r10_l()); HANDLE_CODE(unpack_dyn_seq_of(*candidate_cell_info_list_r10, bref, 1, 8)); } } if (group_flags[1]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(candidate_cell_info_list_nr_r15_present, 1)); if (candidate_cell_info_list_nr_r15_present) { candidate_cell_info_list_nr_r15 = make_copy_ptr(meas_result_serv_freq_list_nr_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*candidate_cell_info_list_nr_r15, bref, 1, 32)); } } } return SRSASN_SUCCESS; } void rrm_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (ue_inactive_time_present) { j.write_str("ue-InactiveTime", ue_inactive_time.to_string()); } if (ext) { rrc_asn1_warn_assert(candidate_cell_info_list_r10_present != (candidate_cell_info_list_r10.get() != NULL), __FILE__, __LINE__); if (candidate_cell_info_list_r10_present) { j.start_array("candidateCellInfoList-r10"); for (uint32_t i1 = 0; i1 < candidate_cell_info_list_r10->size(); ++i1) { ((*candidate_cell_info_list_r10)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(candidate_cell_info_list_nr_r15_present != (candidate_cell_info_list_nr_r15.get() != NULL), __FILE__, __LINE__); if (candidate_cell_info_list_nr_r15_present) { j.start_array("candidateCellInfoListNR-r15"); for (uint32_t i1 = 0; i1 < candidate_cell_info_list_nr_r15->size(); ++i1) { ((*candidate_cell_info_list_nr_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // HandoverPreparationInformation-r8-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(as_cfg_present, 1)); HANDLE_CODE(bref.pack(rrm_cfg_present, 1)); HANDLE_CODE(bref.pack(as_context_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, ue_radio_access_cap_info, 0, 8)); if (as_cfg_present) { HANDLE_CODE(as_cfg.pack(bref)); } if (rrm_cfg_present) { HANDLE_CODE(rrm_cfg.pack(bref)); } if (as_context_present) { HANDLE_CODE(as_context.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(as_cfg_present, 1)); HANDLE_CODE(bref.unpack(rrm_cfg_present, 1)); HANDLE_CODE(bref.unpack(as_context_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(ue_radio_access_cap_info, bref, 0, 8)); if (as_cfg_present) { HANDLE_CODE(as_cfg.unpack(bref)); } if (rrm_cfg_present) { HANDLE_CODE(rrm_cfg.unpack(bref)); } if (as_context_present) { HANDLE_CODE(as_context.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("ue-RadioAccessCapabilityInfo"); for (uint32_t i1 = 0; i1 < ue_radio_access_cap_info.size(); ++i1) { ue_radio_access_cap_info[i1].to_json(j); } j.end_array(); if (as_cfg_present) { j.write_fieldname("as-Config"); as_cfg.to_json(j); } if (rrm_cfg_present) { j.write_fieldname("rrm-Config"); rrm_cfg.to_json(j); } if (as_context_present) { j.write_fieldname("as-Context"); as_context.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // HandoverPreparationInformation ::= SEQUENCE SRSASN_CODE ho_prep_info_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ho_prep_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ho_prep_info_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ho_prep_info_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); } } ho_prep_info_s::crit_exts_c_::crit_exts_c_(const ho_prep_info_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); } } ho_prep_info_s::crit_exts_c_& ho_prep_info_s::crit_exts_c_::operator=(const ho_prep_info_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); } return *this; } void ho_prep_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ho_prep_info_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ho_prep_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ho_prep_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ho_prep_info_r8: j.write_fieldname("handoverPreparationInformation-r8"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ho_prep_info_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ho_prep_info_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ho_prep_info_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // HandoverPreparationInformation-v1530-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ran_notif_area_info_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ran_notif_area_info_r15_present) { HANDLE_CODE(ran_notif_area_info_r15.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ho_prep_info_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(ran_notif_area_info_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (ran_notif_area_info_r15_present) { HANDLE_CODE(ran_notif_area_info_r15.unpack(bref)); } return SRSASN_SUCCESS; } void ho_prep_info_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (ran_notif_area_info_r15_present) { j.write_fieldname("ran-NotificationAreaInfo-r15"); ran_notif_area_info_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // TDD-ConfigSL-r12 ::= SEQUENCE SRSASN_CODE tdd_cfg_sl_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sf_assign_sl_r12)); return SRSASN_SUCCESS; } SRSASN_CODE tdd_cfg_sl_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sf_assign_sl_r12, bref)); return SRSASN_SUCCESS; } void tdd_cfg_sl_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("subframeAssignmentSL-r12", sf_assign_sl_r12.to_string()); j.end_obj(); } // MasterInformationBlock-SL ::= SEQUENCE SRSASN_CODE mib_sl_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sl_bw_r12)); HANDLE_CODE(tdd_cfg_sl_r12.pack(bref)); HANDLE_CODE(direct_frame_num_r12.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, direct_sf_num_r12, (uint8_t)0, (uint8_t)9)); HANDLE_CODE(bref.pack(in_coverage_r12, 1)); HANDLE_CODE(reserved_r12.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mib_sl_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sl_bw_r12, bref)); HANDLE_CODE(tdd_cfg_sl_r12.unpack(bref)); HANDLE_CODE(direct_frame_num_r12.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(direct_sf_num_r12, bref, (uint8_t)0, (uint8_t)9)); HANDLE_CODE(bref.unpack(in_coverage_r12, 1)); HANDLE_CODE(reserved_r12.unpack(bref)); return SRSASN_SUCCESS; } void mib_sl_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sl-Bandwidth-r12", sl_bw_r12.to_string()); j.write_fieldname("tdd-ConfigSL-r12"); tdd_cfg_sl_r12.to_json(j); j.write_str("directFrameNumber-r12", direct_frame_num_r12.to_string()); j.write_int("directSubframeNumber-r12", direct_sf_num_r12); j.write_bool("inCoverage-r12", in_coverage_r12); j.write_str("reserved-r12", reserved_r12.to_string()); j.end_obj(); } // MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE SRSASN_CODE mib_sl_v2x_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_enum(bref, sl_bw_r14)); HANDLE_CODE(tdd_cfg_sl_r14.pack(bref)); HANDLE_CODE(direct_frame_num_r14.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, direct_sf_num_r14, (uint8_t)0, (uint8_t)9)); HANDLE_CODE(bref.pack(in_coverage_r14, 1)); HANDLE_CODE(reserved_r14.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE mib_sl_v2x_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_enum(sl_bw_r14, bref)); HANDLE_CODE(tdd_cfg_sl_r14.unpack(bref)); HANDLE_CODE(direct_frame_num_r14.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(direct_sf_num_r14, bref, (uint8_t)0, (uint8_t)9)); HANDLE_CODE(bref.unpack(in_coverage_r14, 1)); HANDLE_CODE(reserved_r14.unpack(bref)); return SRSASN_SUCCESS; } void mib_sl_v2x_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sl-Bandwidth-r14", sl_bw_r14.to_string()); j.write_fieldname("tdd-ConfigSL-r14"); tdd_cfg_sl_r14.to_json(j); j.write_str("directFrameNumber-r14", direct_frame_num_r14.to_string()); j.write_int("directSubframeNumber-r14", direct_sf_num_r14); j.write_bool("inCoverage-r14", in_coverage_r14); j.write_str("reserved-r14", reserved_r14.to_string()); j.end_obj(); } // MeasResultRSSI-SCG-r13 ::= SEQUENCE SRSASN_CODE meas_result_rssi_scg_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, serv_cell_id_r13, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(meas_result_for_rssi_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE meas_result_rssi_scg_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(serv_cell_id_r13, bref, (uint8_t)0, (uint8_t)31)); HANDLE_CODE(meas_result_for_rssi_r13.unpack(bref)); return SRSASN_SUCCESS; } void meas_result_rssi_scg_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("servCellId-r13", serv_cell_id_r13); j.write_fieldname("measResultForRSSI-r13"); meas_result_for_rssi_r13.to_json(j); j.end_obj(); } // MeasResultServCellSCG-r12 ::= SEQUENCE SRSASN_CODE meas_result_serv_cell_scg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_unalign_integer(bref, serv_cell_id_r12, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_r12.rsrp_result_scell_r12, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(pack_unalign_integer(bref, meas_result_scell_r12.rsrq_result_scell_r12, (uint8_t)0, (uint8_t)34)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= serv_cell_id_r13_present; rrc_asn1_warn_assert(meas_result_scell_v1310_present != (meas_result_scell_v1310.get() != NULL), __FILE__, __LINE__); group_flags[0] |= meas_result_scell_v1310_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(serv_cell_id_r13_present, 1)); HANDLE_CODE(bref.pack(meas_result_scell_v1310_present, 1)); if (serv_cell_id_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, serv_cell_id_r13, (uint8_t)0, (uint8_t)31)); } if (meas_result_scell_v1310_present) { HANDLE_CODE( pack_unalign_integer(bref, meas_result_scell_v1310->rs_sinr_result_scell_r13, (uint8_t)0, (uint8_t)127)); } } } return SRSASN_SUCCESS; } SRSASN_CODE meas_result_serv_cell_scg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_unalign_integer(serv_cell_id_r12, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_unalign_integer(meas_result_scell_r12.rsrp_result_scell_r12, bref, (uint8_t)0, (uint8_t)97)); HANDLE_CODE(unpack_unalign_integer(meas_result_scell_r12.rsrq_result_scell_r12, bref, (uint8_t)0, (uint8_t)34)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(serv_cell_id_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_result_scell_v1310_present, 1)); if (serv_cell_id_r13_present) { HANDLE_CODE(unpack_unalign_integer(serv_cell_id_r13, bref, (uint8_t)0, (uint8_t)31)); } if (meas_result_scell_v1310_present) { meas_result_scell_v1310 = make_copy_ptr(meas_result_scell_v1310_s_()); HANDLE_CODE( unpack_unalign_integer(meas_result_scell_v1310->rs_sinr_result_scell_r13, bref, (uint8_t)0, (uint8_t)127)); } } } return SRSASN_SUCCESS; } void meas_result_serv_cell_scg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("servCellId-r12", serv_cell_id_r12); j.write_fieldname("measResultSCell-r12"); j.start_obj(); j.write_int("rsrpResultSCell-r12", meas_result_scell_r12.rsrp_result_scell_r12); j.write_int("rsrqResultSCell-r12", meas_result_scell_r12.rsrq_result_scell_r12); j.end_obj(); if (ext) { if (serv_cell_id_r13_present) { j.write_int("servCellId-r13", serv_cell_id_r13); } rrc_asn1_warn_assert(meas_result_scell_v1310_present != (meas_result_scell_v1310.get() != NULL), __FILE__, __LINE__); if (meas_result_scell_v1310_present) { j.write_fieldname("measResultSCell-v1310"); j.start_obj(); j.write_int("rs-sinr-ResultSCell-r13", meas_result_scell_v1310->rs_sinr_result_scell_r13); j.end_obj(); } } j.end_obj(); } // SBCCH-SL-BCH-Message ::= SEQUENCE SRSASN_CODE sbcch_sl_bch_msg_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE sbcch_sl_bch_msg_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void sbcch_sl_bch_msg_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("SBCCH-SL-BCH-Message"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE SRSASN_CODE sbcch_sl_bch_msg_v2x_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(msg.pack(bref)); bref.align_bytes_zero(); return SRSASN_SUCCESS; } SRSASN_CODE sbcch_sl_bch_msg_v2x_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(msg.unpack(bref)); bref.align_bytes(); return SRSASN_SUCCESS; } void sbcch_sl_bch_msg_v2x_r14_s::to_json(json_writer& j) const { j.start_array(); j.start_obj(); j.start_obj("SBCCH-SL-BCH-Message-V2X-r14"); j.write_fieldname("message"); msg.to_json(j); j.end_obj(); j.end_obj(); j.end_array(); } // SCG-ConfigInfo-v1530-IEs ::= SEQUENCE SRSASN_CODE scg_cfg_info_v1530_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(drb_to_add_mod_list_scg_r15_present, 1)); HANDLE_CODE(bref.pack(drb_to_release_list_scg_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (drb_to_add_mod_list_scg_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_add_mod_list_scg_r15, 1, 15)); } if (drb_to_release_list_scg_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_release_list_scg_r15, 1, 15, UnalignedIntegerPacker(1, 32))); } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_info_v1530_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(drb_to_add_mod_list_scg_r15_present, 1)); HANDLE_CODE(bref.unpack(drb_to_release_list_scg_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (drb_to_add_mod_list_scg_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_to_add_mod_list_scg_r15, bref, 1, 15)); } if (drb_to_release_list_scg_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_to_release_list_scg_r15, bref, 1, 15, UnalignedIntegerPacker(1, 32))); } return SRSASN_SUCCESS; } void scg_cfg_info_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (drb_to_add_mod_list_scg_r15_present) { j.start_array("drb-ToAddModListSCG-r15"); for (uint32_t i1 = 0; i1 < drb_to_add_mod_list_scg_r15.size(); ++i1) { drb_to_add_mod_list_scg_r15[i1].to_json(j); } j.end_array(); } if (drb_to_release_list_scg_r15_present) { j.start_array("drb-ToReleaseListSCG-r15"); for (uint32_t i1 = 0; i1 < drb_to_release_list_scg_r15.size(); ++i1) { j.write_int(drb_to_release_list_scg_r15[i1]); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // SCG-ConfigInfo-v1430-IEs ::= SEQUENCE SRSASN_CODE scg_cfg_info_v1430_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(make_before_break_scg_req_r14_present, 1)); HANDLE_CODE(bref.pack(meas_gap_cfg_per_cc_list_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (meas_gap_cfg_per_cc_list_present) { HANDLE_CODE(meas_gap_cfg_per_cc_list.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_info_v1430_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(make_before_break_scg_req_r14_present, 1)); HANDLE_CODE(bref.unpack(meas_gap_cfg_per_cc_list_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (meas_gap_cfg_per_cc_list_present) { HANDLE_CODE(meas_gap_cfg_per_cc_list.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void scg_cfg_info_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); if (make_before_break_scg_req_r14_present) { j.write_str("makeBeforeBreakSCG-Req-r14", "true"); } if (meas_gap_cfg_per_cc_list_present) { j.write_fieldname("measGapConfigPerCC-List"); meas_gap_cfg_per_cc_list.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SCG-ConfigInfo-v1330-IEs ::= SEQUENCE SRSASN_CODE scg_cfg_info_v1330_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_result_list_rssi_scg_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (meas_result_list_rssi_scg_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_rssi_scg_r13, 1, 32)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_info_v1330_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_result_list_rssi_scg_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (meas_result_list_rssi_scg_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_rssi_scg_r13, bref, 1, 32)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void scg_cfg_info_v1330_ies_s::to_json(json_writer& j) const { j.start_obj(); if (meas_result_list_rssi_scg_r13_present) { j.start_array("measResultListRSSI-SCG-r13"); for (uint32_t i1 = 0; i1 < meas_result_list_rssi_scg_r13.size(); ++i1) { meas_result_list_rssi_scg_r13[i1].to_json(j); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SCG-ConfigInfo-v1310-IEs ::= SEQUENCE SRSASN_CODE scg_cfg_info_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_result_sstd_r13_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_mcg_ext_r13_present, 1)); HANDLE_CODE(bref.pack(meas_result_serv_cell_list_scg_ext_r13_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_scg_ext_r13_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_release_list_scg_ext_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (meas_result_sstd_r13_present) { HANDLE_CODE(meas_result_sstd_r13.pack(bref)); } if (s_cell_to_add_mod_list_mcg_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_mcg_ext_r13, 1, 31)); } if (meas_result_serv_cell_list_scg_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_serv_cell_list_scg_ext_r13, 1, 32)); } if (s_cell_to_add_mod_list_scg_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_scg_ext_r13, 1, 31)); } if (s_cell_to_release_list_scg_ext_r13_present) { HANDLE_CODE( pack_dyn_seq_of(bref, s_cell_to_release_list_scg_ext_r13, 1, 31, UnalignedIntegerPacker(1, 31))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_info_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_result_sstd_r13_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_mcg_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_result_serv_cell_list_scg_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_scg_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_release_list_scg_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (meas_result_sstd_r13_present) { HANDLE_CODE(meas_result_sstd_r13.unpack(bref)); } if (s_cell_to_add_mod_list_mcg_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_mcg_ext_r13, bref, 1, 31)); } if (meas_result_serv_cell_list_scg_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_serv_cell_list_scg_ext_r13, bref, 1, 32)); } if (s_cell_to_add_mod_list_scg_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_scg_ext_r13, bref, 1, 31)); } if (s_cell_to_release_list_scg_ext_r13_present) { HANDLE_CODE( unpack_dyn_seq_of(s_cell_to_release_list_scg_ext_r13, bref, 1, 31, UnalignedIntegerPacker(1, 31))); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void scg_cfg_info_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (meas_result_sstd_r13_present) { j.write_fieldname("measResultSSTD-r13"); meas_result_sstd_r13.to_json(j); } if (s_cell_to_add_mod_list_mcg_ext_r13_present) { j.start_array("sCellToAddModListMCG-Ext-r13"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_mcg_ext_r13.size(); ++i1) { s_cell_to_add_mod_list_mcg_ext_r13[i1].to_json(j); } j.end_array(); } if (meas_result_serv_cell_list_scg_ext_r13_present) { j.start_array("measResultServCellListSCG-Ext-r13"); for (uint32_t i1 = 0; i1 < meas_result_serv_cell_list_scg_ext_r13.size(); ++i1) { meas_result_serv_cell_list_scg_ext_r13[i1].to_json(j); } j.end_array(); } if (s_cell_to_add_mod_list_scg_ext_r13_present) { j.start_array("sCellToAddModListSCG-Ext-r13"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_scg_ext_r13.size(); ++i1) { s_cell_to_add_mod_list_scg_ext_r13[i1].to_json(j); } j.end_array(); } if (s_cell_to_release_list_scg_ext_r13_present) { j.start_array("sCellToReleaseListSCG-Ext-r13"); for (uint32_t i1 = 0; i1 < s_cell_to_release_list_scg_ext_r13.size(); ++i1) { j.write_int(s_cell_to_release_list_scg_ext_r13[i1]); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SCG-ConfigRestrictInfo-r12 ::= SEQUENCE SRSASN_CODE scg_cfg_restrict_info_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, max_sch_tb_bits_dl_r12, (uint8_t)1, (uint8_t)100)); HANDLE_CODE(pack_unalign_integer(bref, max_sch_tb_bits_ul_r12, (uint8_t)1, (uint8_t)100)); return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_restrict_info_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(max_sch_tb_bits_dl_r12, bref, (uint8_t)1, (uint8_t)100)); HANDLE_CODE(unpack_unalign_integer(max_sch_tb_bits_ul_r12, bref, (uint8_t)1, (uint8_t)100)); return SRSASN_SUCCESS; } void scg_cfg_restrict_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("maxSCH-TB-BitsDL-r12", max_sch_tb_bits_dl_r12); j.write_int("maxSCH-TB-BitsUL-r12", max_sch_tb_bits_ul_r12); j.end_obj(); } // SCG-ConfigInfo-r12-IEs ::= SEQUENCE SRSASN_CODE scg_cfg_info_r12_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(rr_cfg_ded_mcg_r12_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_mcg_r12_present, 1)); HANDLE_CODE(bref.pack(meas_gap_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(pwr_coordination_info_r12_present, 1)); HANDLE_CODE(bref.pack(scg_radio_cfg_r12_present, 1)); HANDLE_CODE(bref.pack(eutra_cap_info_r12_present, 1)); HANDLE_CODE(bref.pack(scg_cfg_restrict_info_r12_present, 1)); HANDLE_CODE(bref.pack(mbms_interest_ind_r12_present, 1)); HANDLE_CODE(bref.pack(meas_result_serv_cell_list_scg_r12_present, 1)); HANDLE_CODE(bref.pack(drb_to_add_mod_list_scg_r12_present, 1)); HANDLE_CODE(bref.pack(drb_to_release_list_scg_r12_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_add_mod_list_scg_r12_present, 1)); HANDLE_CODE(bref.pack(s_cell_to_release_list_scg_r12_present, 1)); HANDLE_CODE(bref.pack(p_max_r12_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (rr_cfg_ded_mcg_r12_present) { HANDLE_CODE(rr_cfg_ded_mcg_r12.pack(bref)); } if (s_cell_to_add_mod_list_mcg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_mcg_r12, 1, 4)); } if (meas_gap_cfg_r12_present) { HANDLE_CODE(meas_gap_cfg_r12.pack(bref)); } if (pwr_coordination_info_r12_present) { HANDLE_CODE(pwr_coordination_info_r12.pack(bref)); } if (scg_radio_cfg_r12_present) { HANDLE_CODE(scg_radio_cfg_r12.pack(bref)); } if (eutra_cap_info_r12_present) { HANDLE_CODE(eutra_cap_info_r12.pack(bref)); } if (scg_cfg_restrict_info_r12_present) { HANDLE_CODE(scg_cfg_restrict_info_r12.pack(bref)); } if (mbms_interest_ind_r12_present) { HANDLE_CODE(mbms_interest_ind_r12.pack(bref)); } if (meas_result_serv_cell_list_scg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_serv_cell_list_scg_r12, 1, 5)); } if (drb_to_add_mod_list_scg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_add_mod_list_scg_r12, 1, 11)); } if (drb_to_release_list_scg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_release_list_scg_r12, 1, 11, UnalignedIntegerPacker(1, 32))); } if (s_cell_to_add_mod_list_scg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_add_mod_list_scg_r12, 1, 4)); } if (s_cell_to_release_list_scg_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, s_cell_to_release_list_scg_r12, 1, 4, UnalignedIntegerPacker(1, 7))); } if (p_max_r12_present) { HANDLE_CODE(pack_unalign_integer(bref, p_max_r12, (int8_t)-30, (int8_t)33)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_info_r12_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(rr_cfg_ded_mcg_r12_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_mcg_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_gap_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(pwr_coordination_info_r12_present, 1)); HANDLE_CODE(bref.unpack(scg_radio_cfg_r12_present, 1)); HANDLE_CODE(bref.unpack(eutra_cap_info_r12_present, 1)); HANDLE_CODE(bref.unpack(scg_cfg_restrict_info_r12_present, 1)); HANDLE_CODE(bref.unpack(mbms_interest_ind_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_result_serv_cell_list_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(drb_to_add_mod_list_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(drb_to_release_list_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_add_mod_list_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(s_cell_to_release_list_scg_r12_present, 1)); HANDLE_CODE(bref.unpack(p_max_r12_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (rr_cfg_ded_mcg_r12_present) { HANDLE_CODE(rr_cfg_ded_mcg_r12.unpack(bref)); } if (s_cell_to_add_mod_list_mcg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_mcg_r12, bref, 1, 4)); } if (meas_gap_cfg_r12_present) { HANDLE_CODE(meas_gap_cfg_r12.unpack(bref)); } if (pwr_coordination_info_r12_present) { HANDLE_CODE(pwr_coordination_info_r12.unpack(bref)); } if (scg_radio_cfg_r12_present) { HANDLE_CODE(scg_radio_cfg_r12.unpack(bref)); } if (eutra_cap_info_r12_present) { HANDLE_CODE(eutra_cap_info_r12.unpack(bref)); } if (scg_cfg_restrict_info_r12_present) { HANDLE_CODE(scg_cfg_restrict_info_r12.unpack(bref)); } if (mbms_interest_ind_r12_present) { HANDLE_CODE(mbms_interest_ind_r12.unpack(bref)); } if (meas_result_serv_cell_list_scg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result_serv_cell_list_scg_r12, bref, 1, 5)); } if (drb_to_add_mod_list_scg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_to_add_mod_list_scg_r12, bref, 1, 11)); } if (drb_to_release_list_scg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(drb_to_release_list_scg_r12, bref, 1, 11, UnalignedIntegerPacker(1, 32))); } if (s_cell_to_add_mod_list_scg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_add_mod_list_scg_r12, bref, 1, 4)); } if (s_cell_to_release_list_scg_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(s_cell_to_release_list_scg_r12, bref, 1, 4, UnalignedIntegerPacker(1, 7))); } if (p_max_r12_present) { HANDLE_CODE(unpack_unalign_integer(p_max_r12, bref, (int8_t)-30, (int8_t)33)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void scg_cfg_info_r12_ies_s::to_json(json_writer& j) const { j.start_obj(); if (rr_cfg_ded_mcg_r12_present) { j.write_fieldname("radioResourceConfigDedMCG-r12"); rr_cfg_ded_mcg_r12.to_json(j); } if (s_cell_to_add_mod_list_mcg_r12_present) { j.start_array("sCellToAddModListMCG-r12"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_mcg_r12.size(); ++i1) { s_cell_to_add_mod_list_mcg_r12[i1].to_json(j); } j.end_array(); } if (meas_gap_cfg_r12_present) { j.write_fieldname("measGapConfig-r12"); meas_gap_cfg_r12.to_json(j); } if (pwr_coordination_info_r12_present) { j.write_fieldname("powerCoordinationInfo-r12"); pwr_coordination_info_r12.to_json(j); } if (scg_radio_cfg_r12_present) { j.write_fieldname("scg-RadioConfig-r12"); scg_radio_cfg_r12.to_json(j); } if (eutra_cap_info_r12_present) { j.write_str("eutra-CapabilityInfo-r12", eutra_cap_info_r12.to_string()); } if (scg_cfg_restrict_info_r12_present) { j.write_fieldname("scg-ConfigRestrictInfo-r12"); scg_cfg_restrict_info_r12.to_json(j); } if (mbms_interest_ind_r12_present) { j.write_str("mbmsInterestIndication-r12", mbms_interest_ind_r12.to_string()); } if (meas_result_serv_cell_list_scg_r12_present) { j.start_array("measResultServCellListSCG-r12"); for (uint32_t i1 = 0; i1 < meas_result_serv_cell_list_scg_r12.size(); ++i1) { meas_result_serv_cell_list_scg_r12[i1].to_json(j); } j.end_array(); } if (drb_to_add_mod_list_scg_r12_present) { j.start_array("drb-ToAddModListSCG-r12"); for (uint32_t i1 = 0; i1 < drb_to_add_mod_list_scg_r12.size(); ++i1) { drb_to_add_mod_list_scg_r12[i1].to_json(j); } j.end_array(); } if (drb_to_release_list_scg_r12_present) { j.start_array("drb-ToReleaseListSCG-r12"); for (uint32_t i1 = 0; i1 < drb_to_release_list_scg_r12.size(); ++i1) { j.write_int(drb_to_release_list_scg_r12[i1]); } j.end_array(); } if (s_cell_to_add_mod_list_scg_r12_present) { j.start_array("sCellToAddModListSCG-r12"); for (uint32_t i1 = 0; i1 < s_cell_to_add_mod_list_scg_r12.size(); ++i1) { s_cell_to_add_mod_list_scg_r12[i1].to_json(j); } j.end_array(); } if (s_cell_to_release_list_scg_r12_present) { j.start_array("sCellToReleaseListSCG-r12"); for (uint32_t i1 = 0; i1 < s_cell_to_release_list_scg_r12.size(); ++i1) { j.write_int(s_cell_to_release_list_scg_r12[i1]); } j.end_array(); } if (p_max_r12_present) { j.write_int("p-Max-r12", p_max_r12); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // SCG-ConfigInfo-r12 ::= SEQUENCE SRSASN_CODE scg_cfg_info_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_info_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void scg_cfg_info_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void scg_cfg_info_r12_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void scg_cfg_info_r12_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); } } scg_cfg_info_r12_s::crit_exts_c_::crit_exts_c_(const scg_cfg_info_r12_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); } } scg_cfg_info_r12_s::crit_exts_c_& scg_cfg_info_r12_s::crit_exts_c_:: operator=(const scg_cfg_info_r12_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); } return *this; } void scg_cfg_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE scg_cfg_info_r12_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_info_r12_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::scg_cfg_info_r12: j.write_fieldname("scg-ConfigInfo-r12"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE scg_cfg_info_r12_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::scg_cfg_info_r12: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE scg_cfg_info_r12_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::scg_cfg_info_r12: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE SRSASN_CODE sl_pppp_tx_precfg_idx_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_unalign_integer(bref, prio_thres_r14, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(pack_unalign_integer(bref, default_tx_cfg_idx_r14, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(pack_unalign_integer(bref, cbr_cfg_idx_r14, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(pack_dyn_seq_of(bref, tx_cfg_idx_list_r14, 1, 16, UnalignedIntegerPacker(0, 127))); return SRSASN_SUCCESS; } SRSASN_CODE sl_pppp_tx_precfg_idx_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_unalign_integer(prio_thres_r14, bref, (uint8_t)1, (uint8_t)8)); HANDLE_CODE(unpack_unalign_integer(default_tx_cfg_idx_r14, bref, (uint8_t)0, (uint8_t)15)); HANDLE_CODE(unpack_unalign_integer(cbr_cfg_idx_r14, bref, (uint8_t)0, (uint8_t)7)); HANDLE_CODE(unpack_dyn_seq_of(tx_cfg_idx_list_r14, bref, 1, 16, UnalignedIntegerPacker(0, 127))); return SRSASN_SUCCESS; } void sl_pppp_tx_precfg_idx_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("priorityThreshold-r14", prio_thres_r14); j.write_int("defaultTxConfigIndex-r14", default_tx_cfg_idx_r14); j.write_int("cbr-ConfigIndex-r14", cbr_cfg_idx_r14); j.start_array("tx-ConfigIndexList-r14"); for (uint32_t i1 = 0; i1 < tx_cfg_idx_list_r14.size(); ++i1) { j.write_int(tx_cfg_idx_list_r14[i1]); } j.end_array(); j.end_obj(); } // SL-PPPP-TxPreconfigIndex-v1530 ::= SEQUENCE SRSASN_CODE sl_pppp_tx_precfg_idx_v1530_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mcs_pssch_range_r15_present, 1)); if (mcs_pssch_range_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, mcs_pssch_range_r15, 1, 16)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_pppp_tx_precfg_idx_v1530_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mcs_pssch_range_r15_present, 1)); if (mcs_pssch_range_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(mcs_pssch_range_r15, bref, 1, 16)); } return SRSASN_SUCCESS; } void sl_pppp_tx_precfg_idx_v1530_s::to_json(json_writer& j) const { j.start_obj(); if (mcs_pssch_range_r15_present) { j.start_array("mcs-PSSCH-Range-r15"); for (uint32_t i1 = 0; i1 < mcs_pssch_range_r15.size(); ++i1) { mcs_pssch_range_r15[i1].to_json(j); } j.end_array(); } j.end_obj(); } // SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE SRSASN_CODE sl_cbr_precfg_tx_cfg_list_r14_s::pack(bit_ref& bref) const { HANDLE_CODE( pack_dyn_seq_of(bref, cbr_range_common_cfg_list_r14, 1, 8, SeqOfPacker >(1, 16, UnalignedIntegerPacker(0, 100)))); HANDLE_CODE(pack_dyn_seq_of(bref, sl_cbr_pssch_tx_cfg_list_r14, 1, 128)); return SRSASN_SUCCESS; } SRSASN_CODE sl_cbr_precfg_tx_cfg_list_r14_s::unpack(bit_ref& bref) { HANDLE_CODE( unpack_dyn_seq_of(cbr_range_common_cfg_list_r14, bref, 1, 8, SeqOfPacker >(1, 16, UnalignedIntegerPacker(0, 100)))); HANDLE_CODE(unpack_dyn_seq_of(sl_cbr_pssch_tx_cfg_list_r14, bref, 1, 128)); return SRSASN_SUCCESS; } void sl_cbr_precfg_tx_cfg_list_r14_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("cbr-RangeCommonConfigList-r14"); for (uint32_t i1 = 0; i1 < cbr_range_common_cfg_list_r14.size(); ++i1) { j.start_array(); for (uint32_t i2 = 0; i2 < cbr_range_common_cfg_list_r14[i1].size(); ++i2) { j.write_int(cbr_range_common_cfg_list_r14[i1][i2]); } j.end_array(); } j.end_array(); j.start_array("sl-CBR-PSSCH-TxConfigList-r14"); for (uint32_t i1 = 0; i1 < sl_cbr_pssch_tx_cfg_list_r14.size(); ++i1) { sl_cbr_pssch_tx_cfg_list_r14[i1].to_json(j); } j.end_array(); j.end_obj(); } // SL-PreconfigCommPool-r12 ::= SEQUENCE SRSASN_CODE sl_precfg_comm_pool_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, sc_cp_len_r12)); HANDLE_CODE(pack_enum(bref, sc_period_r12)); HANDLE_CODE(sc_tf_res_cfg_r12.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, sc_tx_params_r12, (int8_t)-126, (int8_t)31)); HANDLE_CODE(pack_enum(bref, data_cp_len_r12)); HANDLE_CODE(data_tf_res_cfg_r12.pack(bref)); HANDLE_CODE(data_hop_cfg_r12.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, data_tx_params_r12, (int8_t)-126, (int8_t)31)); HANDLE_CODE(trpt_subset_r12.pack(bref)); if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(prio_list_r13_present != (prio_list_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= prio_list_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(prio_list_r13_present, 1)); if (prio_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *prio_list_r13, 1, 8, UnalignedIntegerPacker(1, 8))); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_precfg_comm_pool_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(sc_cp_len_r12, bref)); HANDLE_CODE(unpack_enum(sc_period_r12, bref)); HANDLE_CODE(sc_tf_res_cfg_r12.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(sc_tx_params_r12, bref, (int8_t)-126, (int8_t)31)); HANDLE_CODE(unpack_enum(data_cp_len_r12, bref)); HANDLE_CODE(data_tf_res_cfg_r12.unpack(bref)); HANDLE_CODE(data_hop_cfg_r12.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(data_tx_params_r12, bref, (int8_t)-126, (int8_t)31)); HANDLE_CODE(trpt_subset_r12.unpack(bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(prio_list_r13_present, 1)); if (prio_list_r13_present) { prio_list_r13 = make_copy_ptr(sl_prio_list_r13_l()); HANDLE_CODE(unpack_dyn_seq_of(*prio_list_r13, bref, 1, 8, UnalignedIntegerPacker(1, 8))); } } } return SRSASN_SUCCESS; } void sl_precfg_comm_pool_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("sc-CP-Len-r12", sc_cp_len_r12.to_string()); j.write_str("sc-Period-r12", sc_period_r12.to_string()); j.write_fieldname("sc-TF-ResourceConfig-r12"); sc_tf_res_cfg_r12.to_json(j); j.write_int("sc-TxParameters-r12", sc_tx_params_r12); j.write_str("data-CP-Len-r12", data_cp_len_r12.to_string()); j.write_fieldname("data-TF-ResourceConfig-r12"); data_tf_res_cfg_r12.to_json(j); j.write_fieldname("dataHoppingConfig-r12"); data_hop_cfg_r12.to_json(j); j.write_int("dataTxParameters-r12", data_tx_params_r12); j.write_str("trpt-Subset-r12", trpt_subset_r12.to_string()); if (ext) { rrc_asn1_warn_assert(prio_list_r13_present != (prio_list_r13.get() != NULL), __FILE__, __LINE__); if (prio_list_r13_present) { j.start_array("priorityList-r13"); for (uint32_t i1 = 0; i1 < prio_list_r13->size(); ++i1) { j.write_int(((*prio_list_r13)[i1])); } j.end_array(); } } j.end_obj(); } // SL-PreconfigDiscPool-r13 ::= SEQUENCE SRSASN_CODE sl_precfg_disc_pool_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(tx_params_r13_present, 1)); HANDLE_CODE(pack_enum(bref, cp_len_r13)); HANDLE_CODE(pack_enum(bref, disc_period_r13)); HANDLE_CODE(pack_unalign_integer(bref, num_retx_r13, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(pack_unalign_integer(bref, num_repeat_r13, (uint8_t)1, (uint8_t)50)); HANDLE_CODE(tf_res_cfg_r13.pack(bref)); if (tx_params_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, tx_params_r13.tx_params_general_r13, (int8_t)-126, (int8_t)31)); HANDLE_CODE(pack_enum(bref, tx_params_r13.tx_probability_r13)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_precfg_disc_pool_r13_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(tx_params_r13_present, 1)); HANDLE_CODE(unpack_enum(cp_len_r13, bref)); HANDLE_CODE(unpack_enum(disc_period_r13, bref)); HANDLE_CODE(unpack_unalign_integer(num_retx_r13, bref, (uint8_t)0, (uint8_t)3)); HANDLE_CODE(unpack_unalign_integer(num_repeat_r13, bref, (uint8_t)1, (uint8_t)50)); HANDLE_CODE(tf_res_cfg_r13.unpack(bref)); if (tx_params_r13_present) { HANDLE_CODE(unpack_unalign_integer(tx_params_r13.tx_params_general_r13, bref, (int8_t)-126, (int8_t)31)); HANDLE_CODE(unpack_enum(tx_params_r13.tx_probability_r13, bref)); } return SRSASN_SUCCESS; } void sl_precfg_disc_pool_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cp-Len-r13", cp_len_r13.to_string()); j.write_str("discPeriod-r13", disc_period_r13.to_string()); j.write_int("numRetx-r13", num_retx_r13); j.write_int("numRepetition-r13", num_repeat_r13); j.write_fieldname("tf-ResourceConfig-r13"); tf_res_cfg_r13.to_json(j); if (tx_params_r13_present) { j.write_fieldname("txParameters-r13"); j.start_obj(); j.write_int("txParametersGeneral-r13", tx_params_r13.tx_params_general_r13); j.write_str("txProbability-r13", tx_params_r13.tx_probability_r13.to_string()); j.end_obj(); } j.end_obj(); } // SL-PreconfigGeneral-r12 ::= SEQUENCE SRSASN_CODE sl_precfg_general_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(rohc_profiles_r12.profile0x0001_r12, 1)); HANDLE_CODE(bref.pack(rohc_profiles_r12.profile0x0002_r12, 1)); HANDLE_CODE(bref.pack(rohc_profiles_r12.profile0x0004_r12, 1)); HANDLE_CODE(bref.pack(rohc_profiles_r12.profile0x0006_r12, 1)); HANDLE_CODE(bref.pack(rohc_profiles_r12.profile0x0101_r12, 1)); HANDLE_CODE(bref.pack(rohc_profiles_r12.profile0x0102_r12, 1)); HANDLE_CODE(bref.pack(rohc_profiles_r12.profile0x0104_r12, 1)); HANDLE_CODE(pack_unalign_integer(bref, carrier_freq_r12, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(pack_unalign_integer(bref, max_tx_pwr_r12, (int8_t)-30, (int8_t)33)); HANDLE_CODE(pack_unalign_integer(bref, add_spec_emission_r12, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(pack_enum(bref, sl_bw_r12)); HANDLE_CODE(tdd_cfg_sl_r12.pack(bref)); HANDLE_CODE(reserved_r12.pack(bref)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= add_spec_emission_v1440_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(add_spec_emission_v1440_present, 1)); if (add_spec_emission_v1440_present) { HANDLE_CODE(pack_unalign_integer(bref, add_spec_emission_v1440, (uint16_t)33, (uint16_t)288)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_precfg_general_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(rohc_profiles_r12.profile0x0001_r12, 1)); HANDLE_CODE(bref.unpack(rohc_profiles_r12.profile0x0002_r12, 1)); HANDLE_CODE(bref.unpack(rohc_profiles_r12.profile0x0004_r12, 1)); HANDLE_CODE(bref.unpack(rohc_profiles_r12.profile0x0006_r12, 1)); HANDLE_CODE(bref.unpack(rohc_profiles_r12.profile0x0101_r12, 1)); HANDLE_CODE(bref.unpack(rohc_profiles_r12.profile0x0102_r12, 1)); HANDLE_CODE(bref.unpack(rohc_profiles_r12.profile0x0104_r12, 1)); HANDLE_CODE(unpack_unalign_integer(carrier_freq_r12, bref, (uint32_t)0, (uint32_t)262143)); HANDLE_CODE(unpack_unalign_integer(max_tx_pwr_r12, bref, (int8_t)-30, (int8_t)33)); HANDLE_CODE(unpack_unalign_integer(add_spec_emission_r12, bref, (uint8_t)1, (uint8_t)32)); HANDLE_CODE(unpack_enum(sl_bw_r12, bref)); HANDLE_CODE(tdd_cfg_sl_r12.unpack(bref)); HANDLE_CODE(reserved_r12.unpack(bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(add_spec_emission_v1440_present, 1)); if (add_spec_emission_v1440_present) { HANDLE_CODE(unpack_unalign_integer(add_spec_emission_v1440, bref, (uint16_t)33, (uint16_t)288)); } } } return SRSASN_SUCCESS; } void sl_precfg_general_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("rohc-Profiles-r12"); j.start_obj(); j.write_bool("profile0x0001-r12", rohc_profiles_r12.profile0x0001_r12); j.write_bool("profile0x0002-r12", rohc_profiles_r12.profile0x0002_r12); j.write_bool("profile0x0004-r12", rohc_profiles_r12.profile0x0004_r12); j.write_bool("profile0x0006-r12", rohc_profiles_r12.profile0x0006_r12); j.write_bool("profile0x0101-r12", rohc_profiles_r12.profile0x0101_r12); j.write_bool("profile0x0102-r12", rohc_profiles_r12.profile0x0102_r12); j.write_bool("profile0x0104-r12", rohc_profiles_r12.profile0x0104_r12); j.end_obj(); j.write_int("carrierFreq-r12", carrier_freq_r12); j.write_int("maxTxPower-r12", max_tx_pwr_r12); j.write_int("additionalSpectrumEmission-r12", add_spec_emission_r12); j.write_str("sl-bandwidth-r12", sl_bw_r12.to_string()); j.write_fieldname("tdd-ConfigSL-r12"); tdd_cfg_sl_r12.to_json(j); j.write_str("reserved-r12", reserved_r12.to_string()); if (ext) { if (add_spec_emission_v1440_present) { j.write_int("additionalSpectrumEmission-v1440", add_spec_emission_v1440); } } j.end_obj(); } // SL-PreconfigRelay-r13 ::= SEQUENCE SRSASN_CODE sl_precfg_relay_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(resel_info_oo_c_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE sl_precfg_relay_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(resel_info_oo_c_r13.unpack(bref)); return SRSASN_SUCCESS; } void sl_precfg_relay_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("reselectionInfoOoC-r13"); resel_info_oo_c_r13.to_json(j); j.end_obj(); } // SL-PreconfigSync-r12 ::= SEQUENCE SRSASN_CODE sl_precfg_sync_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(pack_enum(bref, sync_cp_len_r12)); HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind1_r12, (uint8_t)0, (uint8_t)39)); HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind2_r12, (uint8_t)0, (uint8_t)39)); HANDLE_CODE(pack_unalign_integer(bref, sync_tx_params_r12, (int8_t)-126, (int8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, sync_tx_thresh_oo_c_r12, (uint8_t)0, (uint8_t)11)); HANDLE_CODE(pack_enum(bref, filt_coef_r12)); HANDLE_CODE(pack_enum(bref, sync_ref_min_hyst_r12)); HANDLE_CODE(pack_enum(bref, sync_ref_diff_hyst_r12)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= sync_tx_periodic_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sync_tx_periodic_r13_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE sl_precfg_sync_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(unpack_enum(sync_cp_len_r12, bref)); HANDLE_CODE(unpack_unalign_integer(sync_offset_ind1_r12, bref, (uint8_t)0, (uint8_t)39)); HANDLE_CODE(unpack_unalign_integer(sync_offset_ind2_r12, bref, (uint8_t)0, (uint8_t)39)); HANDLE_CODE(unpack_unalign_integer(sync_tx_params_r12, bref, (int8_t)-126, (int8_t)31)); HANDLE_CODE(unpack_unalign_integer(sync_tx_thresh_oo_c_r12, bref, (uint8_t)0, (uint8_t)11)); HANDLE_CODE(unpack_enum(filt_coef_r12, bref)); HANDLE_CODE(unpack_enum(sync_ref_min_hyst_r12, bref)); HANDLE_CODE(unpack_enum(sync_ref_diff_hyst_r12, bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sync_tx_periodic_r13_present, 1)); } } return SRSASN_SUCCESS; } void sl_precfg_sync_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("syncCP-Len-r12", sync_cp_len_r12.to_string()); j.write_int("syncOffsetIndicator1-r12", sync_offset_ind1_r12); j.write_int("syncOffsetIndicator2-r12", sync_offset_ind2_r12); j.write_int("syncTxParameters-r12", sync_tx_params_r12); j.write_int("syncTxThreshOoC-r12", sync_tx_thresh_oo_c_r12); j.write_str("filterCoefficient-r12", filt_coef_r12.to_string()); j.write_str("syncRefMinHyst-r12", sync_ref_min_hyst_r12.to_string()); j.write_str("syncRefDiffHyst-r12", sync_ref_diff_hyst_r12.to_string()); if (ext) { if (sync_tx_periodic_r13_present) { j.write_str("syncTxPeriodic-r13", "true"); } } j.end_obj(); } // SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE SRSASN_CODE sl_v2x_precfg_comm_pool_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(sl_offset_ind_r14_present, 1)); HANDLE_CODE(bref.pack(start_rb_pscch_pool_r14_present, 1)); HANDLE_CODE(bref.pack(zone_id_r14_present, 1)); HANDLE_CODE(bref.pack(thresh_s_rssi_cbr_r14_present, 1)); HANDLE_CODE(bref.pack(cbr_pssch_tx_cfg_list_r14_present, 1)); HANDLE_CODE(bref.pack(res_sel_cfg_p2_x_r14_present, 1)); HANDLE_CODE(bref.pack(sync_allowed_r14_present, 1)); HANDLE_CODE(bref.pack(restrict_res_reserv_period_r14_present, 1)); if (sl_offset_ind_r14_present) { HANDLE_CODE(sl_offset_ind_r14.pack(bref)); } HANDLE_CODE(sl_sf_r14.pack(bref)); HANDLE_CODE(bref.pack(adjacency_pscch_pssch_r14, 1)); HANDLE_CODE(pack_enum(bref, size_subch_r14)); HANDLE_CODE(pack_enum(bref, num_subch_r14)); HANDLE_CODE(pack_unalign_integer(bref, start_rb_subch_r14, (uint8_t)0, (uint8_t)99)); if (start_rb_pscch_pool_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, start_rb_pscch_pool_r14, (uint8_t)0, (uint8_t)99)); } HANDLE_CODE(pack_unalign_integer(bref, data_tx_params_r14, (int8_t)-126, (int8_t)31)); if (zone_id_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, zone_id_r14, (uint8_t)0, (uint8_t)7)); } if (thresh_s_rssi_cbr_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, thresh_s_rssi_cbr_r14, (uint8_t)0, (uint8_t)45)); } if (cbr_pssch_tx_cfg_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cbr_pssch_tx_cfg_list_r14, 1, 8)); } if (res_sel_cfg_p2_x_r14_present) { HANDLE_CODE(res_sel_cfg_p2_x_r14.pack(bref)); } if (sync_allowed_r14_present) { HANDLE_CODE(sync_allowed_r14.pack(bref)); } if (restrict_res_reserv_period_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, restrict_res_reserv_period_r14, 1, 16, EnumPacker())); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(sl_min_t2_value_list_r15_present != (sl_min_t2_value_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= sl_min_t2_value_list_r15_present; rrc_asn1_warn_assert(cbr_pssch_tx_cfg_list_v1530_present != (cbr_pssch_tx_cfg_list_v1530.get() != NULL), __FILE__, __LINE__); group_flags[0] |= cbr_pssch_tx_cfg_list_v1530_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(sl_min_t2_value_list_r15_present, 1)); HANDLE_CODE(bref.pack(cbr_pssch_tx_cfg_list_v1530_present, 1)); if (sl_min_t2_value_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *sl_min_t2_value_list_r15, 1, 8)); } if (cbr_pssch_tx_cfg_list_v1530_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *cbr_pssch_tx_cfg_list_v1530, 1, 8)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_precfg_comm_pool_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(sl_offset_ind_r14_present, 1)); HANDLE_CODE(bref.unpack(start_rb_pscch_pool_r14_present, 1)); HANDLE_CODE(bref.unpack(zone_id_r14_present, 1)); HANDLE_CODE(bref.unpack(thresh_s_rssi_cbr_r14_present, 1)); HANDLE_CODE(bref.unpack(cbr_pssch_tx_cfg_list_r14_present, 1)); HANDLE_CODE(bref.unpack(res_sel_cfg_p2_x_r14_present, 1)); HANDLE_CODE(bref.unpack(sync_allowed_r14_present, 1)); HANDLE_CODE(bref.unpack(restrict_res_reserv_period_r14_present, 1)); if (sl_offset_ind_r14_present) { HANDLE_CODE(sl_offset_ind_r14.unpack(bref)); } HANDLE_CODE(sl_sf_r14.unpack(bref)); HANDLE_CODE(bref.unpack(adjacency_pscch_pssch_r14, 1)); HANDLE_CODE(unpack_enum(size_subch_r14, bref)); HANDLE_CODE(unpack_enum(num_subch_r14, bref)); HANDLE_CODE(unpack_unalign_integer(start_rb_subch_r14, bref, (uint8_t)0, (uint8_t)99)); if (start_rb_pscch_pool_r14_present) { HANDLE_CODE(unpack_unalign_integer(start_rb_pscch_pool_r14, bref, (uint8_t)0, (uint8_t)99)); } HANDLE_CODE(unpack_unalign_integer(data_tx_params_r14, bref, (int8_t)-126, (int8_t)31)); if (zone_id_r14_present) { HANDLE_CODE(unpack_unalign_integer(zone_id_r14, bref, (uint8_t)0, (uint8_t)7)); } if (thresh_s_rssi_cbr_r14_present) { HANDLE_CODE(unpack_unalign_integer(thresh_s_rssi_cbr_r14, bref, (uint8_t)0, (uint8_t)45)); } if (cbr_pssch_tx_cfg_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(cbr_pssch_tx_cfg_list_r14, bref, 1, 8)); } if (res_sel_cfg_p2_x_r14_present) { HANDLE_CODE(res_sel_cfg_p2_x_r14.unpack(bref)); } if (sync_allowed_r14_present) { HANDLE_CODE(sync_allowed_r14.unpack(bref)); } if (restrict_res_reserv_period_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(restrict_res_reserv_period_r14, bref, 1, 16, EnumPacker())); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(sl_min_t2_value_list_r15_present, 1)); HANDLE_CODE(bref.unpack(cbr_pssch_tx_cfg_list_v1530_present, 1)); if (sl_min_t2_value_list_r15_present) { sl_min_t2_value_list_r15 = make_copy_ptr(sl_min_t2_value_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*sl_min_t2_value_list_r15, bref, 1, 8)); } if (cbr_pssch_tx_cfg_list_v1530_present) { cbr_pssch_tx_cfg_list_v1530 = make_copy_ptr(sl_cbr_pppp_tx_precfg_list_v1530_l()); HANDLE_CODE(unpack_dyn_seq_of(*cbr_pssch_tx_cfg_list_v1530, bref, 1, 8)); } } } return SRSASN_SUCCESS; } void sl_v2x_precfg_comm_pool_r14_s::to_json(json_writer& j) const { j.start_obj(); if (sl_offset_ind_r14_present) { j.write_fieldname("sl-OffsetIndicator-r14"); sl_offset_ind_r14.to_json(j); } j.write_fieldname("sl-Subframe-r14"); sl_sf_r14.to_json(j); j.write_bool("adjacencyPSCCH-PSSCH-r14", adjacency_pscch_pssch_r14); j.write_str("sizeSubchannel-r14", size_subch_r14.to_string()); j.write_str("numSubchannel-r14", num_subch_r14.to_string()); j.write_int("startRB-Subchannel-r14", start_rb_subch_r14); if (start_rb_pscch_pool_r14_present) { j.write_int("startRB-PSCCH-Pool-r14", start_rb_pscch_pool_r14); } j.write_int("dataTxParameters-r14", data_tx_params_r14); if (zone_id_r14_present) { j.write_int("zoneID-r14", zone_id_r14); } if (thresh_s_rssi_cbr_r14_present) { j.write_int("threshS-RSSI-CBR-r14", thresh_s_rssi_cbr_r14); } if (cbr_pssch_tx_cfg_list_r14_present) { j.start_array("cbr-pssch-TxConfigList-r14"); for (uint32_t i1 = 0; i1 < cbr_pssch_tx_cfg_list_r14.size(); ++i1) { cbr_pssch_tx_cfg_list_r14[i1].to_json(j); } j.end_array(); } if (res_sel_cfg_p2_x_r14_present) { j.write_fieldname("resourceSelectionConfigP2X-r14"); res_sel_cfg_p2_x_r14.to_json(j); } if (sync_allowed_r14_present) { j.write_fieldname("syncAllowed-r14"); sync_allowed_r14.to_json(j); } if (restrict_res_reserv_period_r14_present) { j.start_array("restrictResourceReservationPeriod-r14"); for (uint32_t i1 = 0; i1 < restrict_res_reserv_period_r14.size(); ++i1) { j.write_str(restrict_res_reserv_period_r14[i1].to_string()); } j.end_array(); } if (ext) { rrc_asn1_warn_assert(sl_min_t2_value_list_r15_present != (sl_min_t2_value_list_r15.get() != NULL), __FILE__, __LINE__); if (sl_min_t2_value_list_r15_present) { j.start_array("sl-MinT2ValueList-r15"); for (uint32_t i1 = 0; i1 < sl_min_t2_value_list_r15->size(); ++i1) { ((*sl_min_t2_value_list_r15)[i1]).to_json(j); } j.end_array(); } rrc_asn1_warn_assert(cbr_pssch_tx_cfg_list_v1530_present != (cbr_pssch_tx_cfg_list_v1530.get() != NULL), __FILE__, __LINE__); if (cbr_pssch_tx_cfg_list_v1530_present) { j.start_array("cbr-pssch-TxConfigList-v1530"); for (uint32_t i1 = 0; i1 < cbr_pssch_tx_cfg_list_v1530->size(); ++i1) { ((*cbr_pssch_tx_cfg_list_v1530)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE SRSASN_CODE sl_v2x_sync_offset_inds_r14_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(sync_offset_ind3_r14_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind1_r14, (uint8_t)0, (uint8_t)159)); HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind2_r14, (uint8_t)0, (uint8_t)159)); if (sync_offset_ind3_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, sync_offset_ind3_r14, (uint8_t)0, (uint8_t)159)); } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_sync_offset_inds_r14_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(sync_offset_ind3_r14_present, 1)); HANDLE_CODE(unpack_unalign_integer(sync_offset_ind1_r14, bref, (uint8_t)0, (uint8_t)159)); HANDLE_CODE(unpack_unalign_integer(sync_offset_ind2_r14, bref, (uint8_t)0, (uint8_t)159)); if (sync_offset_ind3_r14_present) { HANDLE_CODE(unpack_unalign_integer(sync_offset_ind3_r14, bref, (uint8_t)0, (uint8_t)159)); } return SRSASN_SUCCESS; } void sl_v2x_sync_offset_inds_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("syncOffsetIndicator1-r14", sync_offset_ind1_r14); j.write_int("syncOffsetIndicator2-r14", sync_offset_ind2_r14); if (sync_offset_ind3_r14_present) { j.write_int("syncOffsetIndicator3-r14", sync_offset_ind3_r14); } j.end_obj(); } // SL-PreconfigV2X-Sync-r14 ::= SEQUENCE SRSASN_CODE sl_precfg_v2x_sync_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(sync_offset_inds_r14.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, sync_tx_params_r14, (int8_t)-126, (int8_t)31)); HANDLE_CODE(pack_unalign_integer(bref, sync_tx_thresh_oo_c_r14, (uint8_t)0, (uint8_t)11)); HANDLE_CODE(pack_enum(bref, filt_coef_r14)); HANDLE_CODE(pack_enum(bref, sync_ref_min_hyst_r14)); HANDLE_CODE(pack_enum(bref, sync_ref_diff_hyst_r14)); if (ext) { ext_groups_header group_flags(1); group_flags[0] |= slss_tx_disabled_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(slss_tx_disabled_r15_present, 1)); } } return SRSASN_SUCCESS; } SRSASN_CODE sl_precfg_v2x_sync_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(sync_offset_inds_r14.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(sync_tx_params_r14, bref, (int8_t)-126, (int8_t)31)); HANDLE_CODE(unpack_unalign_integer(sync_tx_thresh_oo_c_r14, bref, (uint8_t)0, (uint8_t)11)); HANDLE_CODE(unpack_enum(filt_coef_r14, bref)); HANDLE_CODE(unpack_enum(sync_ref_min_hyst_r14, bref)); HANDLE_CODE(unpack_enum(sync_ref_diff_hyst_r14, bref)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(slss_tx_disabled_r15_present, 1)); } } return SRSASN_SUCCESS; } void sl_precfg_v2x_sync_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("syncOffsetIndicators-r14"); sync_offset_inds_r14.to_json(j); j.write_int("syncTxParameters-r14", sync_tx_params_r14); j.write_int("syncTxThreshOoC-r14", sync_tx_thresh_oo_c_r14); j.write_str("filterCoefficient-r14", filt_coef_r14.to_string()); j.write_str("syncRefMinHyst-r14", sync_ref_min_hyst_r14.to_string()); j.write_str("syncRefDiffHyst-r14", sync_ref_diff_hyst_r14.to_string()); if (ext) { if (slss_tx_disabled_r15_present) { j.write_str("slss-TxDisabled-r15", "true"); } } j.end_obj(); } // SL-Preconfiguration-r12 ::= SEQUENCE SRSASN_CODE sl_precfg_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(precfg_general_r12.pack(bref)); HANDLE_CODE(precfg_sync_r12.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, precfg_comm_r12, 1, 4)); if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(precfg_comm_v1310_present != (precfg_comm_v1310.get() != NULL), __FILE__, __LINE__); group_flags[0] |= precfg_comm_v1310_present; rrc_asn1_warn_assert(precfg_disc_r13_present != (precfg_disc_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= precfg_disc_r13_present; rrc_asn1_warn_assert(precfg_relay_r13_present != (precfg_relay_r13.get() != NULL), __FILE__, __LINE__); group_flags[0] |= precfg_relay_r13_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(precfg_comm_v1310_present, 1)); HANDLE_CODE(bref.pack(precfg_disc_r13_present, 1)); HANDLE_CODE(bref.pack(precfg_relay_r13_present, 1)); if (precfg_comm_v1310_present) { HANDLE_CODE(bref.pack(precfg_comm_v1310->comm_tx_pool_list_r13_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, precfg_comm_v1310->comm_rx_pool_list_r13, 1, 12)); if (precfg_comm_v1310->comm_tx_pool_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, precfg_comm_v1310->comm_tx_pool_list_r13, 1, 7)); } } if (precfg_disc_r13_present) { HANDLE_CODE(bref.pack(precfg_disc_r13->disc_tx_pool_list_r13_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, precfg_disc_r13->disc_rx_pool_list_r13, 1, 16)); if (precfg_disc_r13->disc_tx_pool_list_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, precfg_disc_r13->disc_tx_pool_list_r13, 1, 4)); } } if (precfg_relay_r13_present) { HANDLE_CODE(precfg_relay_r13->pack(bref)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_precfg_r12_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(precfg_general_r12.unpack(bref)); HANDLE_CODE(precfg_sync_r12.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(precfg_comm_r12, bref, 1, 4)); if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(precfg_comm_v1310_present, 1)); HANDLE_CODE(bref.unpack(precfg_disc_r13_present, 1)); HANDLE_CODE(bref.unpack(precfg_relay_r13_present, 1)); if (precfg_comm_v1310_present) { precfg_comm_v1310 = make_copy_ptr(precfg_comm_v1310_s_()); HANDLE_CODE(bref.unpack(precfg_comm_v1310->comm_tx_pool_list_r13_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(precfg_comm_v1310->comm_rx_pool_list_r13, bref, 1, 12)); if (precfg_comm_v1310->comm_tx_pool_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(precfg_comm_v1310->comm_tx_pool_list_r13, bref, 1, 7)); } } if (precfg_disc_r13_present) { precfg_disc_r13 = make_copy_ptr(precfg_disc_r13_s_()); HANDLE_CODE(bref.unpack(precfg_disc_r13->disc_tx_pool_list_r13_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(precfg_disc_r13->disc_rx_pool_list_r13, bref, 1, 16)); if (precfg_disc_r13->disc_tx_pool_list_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(precfg_disc_r13->disc_tx_pool_list_r13, bref, 1, 4)); } } if (precfg_relay_r13_present) { precfg_relay_r13 = make_copy_ptr(sl_precfg_relay_r13_s()); HANDLE_CODE(precfg_relay_r13->unpack(bref)); } } } return SRSASN_SUCCESS; } void sl_precfg_r12_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("preconfigGeneral-r12"); precfg_general_r12.to_json(j); j.write_fieldname("preconfigSync-r12"); precfg_sync_r12.to_json(j); j.start_array("preconfigComm-r12"); for (uint32_t i1 = 0; i1 < precfg_comm_r12.size(); ++i1) { precfg_comm_r12[i1].to_json(j); } j.end_array(); if (ext) { rrc_asn1_warn_assert(precfg_comm_v1310_present != (precfg_comm_v1310.get() != NULL), __FILE__, __LINE__); if (precfg_comm_v1310_present) { j.write_fieldname("preconfigComm-v1310"); j.start_obj(); j.start_array("commRxPoolList-r13"); for (uint32_t i1 = 0; i1 < precfg_comm_v1310->comm_rx_pool_list_r13.size(); ++i1) { precfg_comm_v1310->comm_rx_pool_list_r13[i1].to_json(j); } j.end_array(); if (precfg_comm_v1310->comm_tx_pool_list_r13_present) { j.start_array("commTxPoolList-r13"); for (uint32_t i1 = 0; i1 < precfg_comm_v1310->comm_tx_pool_list_r13.size(); ++i1) { precfg_comm_v1310->comm_tx_pool_list_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } rrc_asn1_warn_assert(precfg_disc_r13_present != (precfg_disc_r13.get() != NULL), __FILE__, __LINE__); if (precfg_disc_r13_present) { j.write_fieldname("preconfigDisc-r13"); j.start_obj(); j.start_array("discRxPoolList-r13"); for (uint32_t i1 = 0; i1 < precfg_disc_r13->disc_rx_pool_list_r13.size(); ++i1) { precfg_disc_r13->disc_rx_pool_list_r13[i1].to_json(j); } j.end_array(); if (precfg_disc_r13->disc_tx_pool_list_r13_present) { j.start_array("discTxPoolList-r13"); for (uint32_t i1 = 0; i1 < precfg_disc_r13->disc_tx_pool_list_r13.size(); ++i1) { precfg_disc_r13->disc_tx_pool_list_r13[i1].to_json(j); } j.end_array(); } j.end_obj(); } rrc_asn1_warn_assert(precfg_relay_r13_present != (precfg_relay_r13.get() != NULL), __FILE__, __LINE__); if (precfg_relay_r13_present) { j.write_fieldname("preconfigRelay-r13"); precfg_relay_r13->to_json(j); } } j.end_obj(); } // SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE SRSASN_CODE sl_v2x_precfg_freq_info_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(v2x_comm_precfg_sync_r14_present, 1)); HANDLE_CODE(bref.pack(v2x_res_sel_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(zone_cfg_r14_present, 1)); HANDLE_CODE(bref.pack(thres_sl_tx_prioritization_r14_present, 1)); HANDLE_CODE(bref.pack(offset_dfn_r14_present, 1)); HANDLE_CODE(v2x_comm_precfg_general_r14.pack(bref)); if (v2x_comm_precfg_sync_r14_present) { HANDLE_CODE(v2x_comm_precfg_sync_r14.pack(bref)); } HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_rx_pool_list_r14, 1, 16)); HANDLE_CODE(pack_dyn_seq_of(bref, v2x_comm_tx_pool_list_r14, 1, 8)); HANDLE_CODE(pack_dyn_seq_of(bref, p2x_comm_tx_pool_list_r14, 1, 8)); if (v2x_res_sel_cfg_r14_present) { HANDLE_CODE(v2x_res_sel_cfg_r14.pack(bref)); } if (zone_cfg_r14_present) { HANDLE_CODE(zone_cfg_r14.pack(bref)); } HANDLE_CODE(pack_enum(bref, sync_prio_r14)); if (thres_sl_tx_prioritization_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, thres_sl_tx_prioritization_r14, (uint8_t)1, (uint8_t)8)); } if (offset_dfn_r14_present) { HANDLE_CODE(pack_unalign_integer(bref, offset_dfn_r14, (uint16_t)0, (uint16_t)1000)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(v2x_freq_sel_cfg_list_r15_present != (v2x_freq_sel_cfg_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= v2x_freq_sel_cfg_list_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(v2x_freq_sel_cfg_list_r15_present, 1)); if (v2x_freq_sel_cfg_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *v2x_freq_sel_cfg_list_r15, 1, 8)); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_precfg_freq_info_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(v2x_comm_precfg_sync_r14_present, 1)); HANDLE_CODE(bref.unpack(v2x_res_sel_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(zone_cfg_r14_present, 1)); HANDLE_CODE(bref.unpack(thres_sl_tx_prioritization_r14_present, 1)); HANDLE_CODE(bref.unpack(offset_dfn_r14_present, 1)); HANDLE_CODE(v2x_comm_precfg_general_r14.unpack(bref)); if (v2x_comm_precfg_sync_r14_present) { HANDLE_CODE(v2x_comm_precfg_sync_r14.unpack(bref)); } HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_rx_pool_list_r14, bref, 1, 16)); HANDLE_CODE(unpack_dyn_seq_of(v2x_comm_tx_pool_list_r14, bref, 1, 8)); HANDLE_CODE(unpack_dyn_seq_of(p2x_comm_tx_pool_list_r14, bref, 1, 8)); if (v2x_res_sel_cfg_r14_present) { HANDLE_CODE(v2x_res_sel_cfg_r14.unpack(bref)); } if (zone_cfg_r14_present) { HANDLE_CODE(zone_cfg_r14.unpack(bref)); } HANDLE_CODE(unpack_enum(sync_prio_r14, bref)); if (thres_sl_tx_prioritization_r14_present) { HANDLE_CODE(unpack_unalign_integer(thres_sl_tx_prioritization_r14, bref, (uint8_t)1, (uint8_t)8)); } if (offset_dfn_r14_present) { HANDLE_CODE(unpack_unalign_integer(offset_dfn_r14, bref, (uint16_t)0, (uint16_t)1000)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(v2x_freq_sel_cfg_list_r15_present, 1)); if (v2x_freq_sel_cfg_list_r15_present) { v2x_freq_sel_cfg_list_r15 = make_copy_ptr(sl_v2x_freq_sel_cfg_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*v2x_freq_sel_cfg_list_r15, bref, 1, 8)); } } } return SRSASN_SUCCESS; } void sl_v2x_precfg_freq_info_r14_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("v2x-CommPreconfigGeneral-r14"); v2x_comm_precfg_general_r14.to_json(j); if (v2x_comm_precfg_sync_r14_present) { j.write_fieldname("v2x-CommPreconfigSync-r14"); v2x_comm_precfg_sync_r14.to_json(j); } j.start_array("v2x-CommRxPoolList-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_rx_pool_list_r14.size(); ++i1) { v2x_comm_rx_pool_list_r14[i1].to_json(j); } j.end_array(); j.start_array("v2x-CommTxPoolList-r14"); for (uint32_t i1 = 0; i1 < v2x_comm_tx_pool_list_r14.size(); ++i1) { v2x_comm_tx_pool_list_r14[i1].to_json(j); } j.end_array(); j.start_array("p2x-CommTxPoolList-r14"); for (uint32_t i1 = 0; i1 < p2x_comm_tx_pool_list_r14.size(); ++i1) { p2x_comm_tx_pool_list_r14[i1].to_json(j); } j.end_array(); if (v2x_res_sel_cfg_r14_present) { j.write_fieldname("v2x-ResourceSelectionConfig-r14"); v2x_res_sel_cfg_r14.to_json(j); } if (zone_cfg_r14_present) { j.write_fieldname("zoneConfig-r14"); zone_cfg_r14.to_json(j); } j.write_str("syncPriority-r14", sync_prio_r14.to_string()); if (thres_sl_tx_prioritization_r14_present) { j.write_int("thresSL-TxPrioritization-r14", thres_sl_tx_prioritization_r14); } if (offset_dfn_r14_present) { j.write_int("offsetDFN-r14", offset_dfn_r14); } if (ext) { rrc_asn1_warn_assert(v2x_freq_sel_cfg_list_r15_present != (v2x_freq_sel_cfg_list_r15.get() != NULL), __FILE__, __LINE__); if (v2x_freq_sel_cfg_list_r15_present) { j.start_array("v2x-FreqSelectionConfigList-r15"); for (uint32_t i1 = 0; i1 < v2x_freq_sel_cfg_list_r15->size(); ++i1) { ((*v2x_freq_sel_cfg_list_r15)[i1]).to_json(j); } j.end_array(); } } j.end_obj(); } // SL-V2X-Preconfiguration-r14 ::= SEQUENCE SRSASN_CODE sl_v2x_precfg_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(anchor_carrier_freq_list_r14_present, 1)); HANDLE_CODE(bref.pack(cbr_precfg_list_r14_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, v2x_precfg_freq_list_r14, 1, 8)); if (anchor_carrier_freq_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, anchor_carrier_freq_list_r14, 1, 8, UnalignedIntegerPacker(0, 262143))); } if (cbr_precfg_list_r14_present) { HANDLE_CODE(cbr_precfg_list_r14.pack(bref)); } if (ext) { ext_groups_header group_flags(1); rrc_asn1_warn_assert(v2x_packet_dupl_cfg_r15_present != (v2x_packet_dupl_cfg_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= v2x_packet_dupl_cfg_r15_present; rrc_asn1_warn_assert(sync_freq_list_r15_present != (sync_freq_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= sync_freq_list_r15_present; group_flags[0] |= slss_tx_multi_freq_r15_present; rrc_asn1_warn_assert(v2x_tx_profile_list_r15_present != (v2x_tx_profile_list_r15.get() != NULL), __FILE__, __LINE__); group_flags[0] |= v2x_tx_profile_list_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard packer(bref); HANDLE_CODE(bref.pack(v2x_packet_dupl_cfg_r15_present, 1)); HANDLE_CODE(bref.pack(sync_freq_list_r15_present, 1)); HANDLE_CODE(bref.pack(slss_tx_multi_freq_r15_present, 1)); HANDLE_CODE(bref.pack(v2x_tx_profile_list_r15_present, 1)); if (v2x_packet_dupl_cfg_r15_present) { HANDLE_CODE(v2x_packet_dupl_cfg_r15->pack(bref)); } if (sync_freq_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *sync_freq_list_r15, 1, 8, UnalignedIntegerPacker(0, 262143))); } if (v2x_tx_profile_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, *v2x_tx_profile_list_r15, 1, 256, EnumPacker())); } } } return SRSASN_SUCCESS; } SRSASN_CODE sl_v2x_precfg_r14_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(anchor_carrier_freq_list_r14_present, 1)); HANDLE_CODE(bref.unpack(cbr_precfg_list_r14_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(v2x_precfg_freq_list_r14, bref, 1, 8)); if (anchor_carrier_freq_list_r14_present) { HANDLE_CODE( unpack_dyn_seq_of(anchor_carrier_freq_list_r14, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); } if (cbr_precfg_list_r14_present) { HANDLE_CODE(cbr_precfg_list_r14.unpack(bref)); } if (ext) { ext_groups_header group_flags(1); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard unpacker(bref); HANDLE_CODE(bref.unpack(v2x_packet_dupl_cfg_r15_present, 1)); HANDLE_CODE(bref.unpack(sync_freq_list_r15_present, 1)); HANDLE_CODE(bref.unpack(slss_tx_multi_freq_r15_present, 1)); HANDLE_CODE(bref.unpack(v2x_tx_profile_list_r15_present, 1)); if (v2x_packet_dupl_cfg_r15_present) { v2x_packet_dupl_cfg_r15 = make_copy_ptr(sl_v2x_packet_dupl_cfg_r15_s()); HANDLE_CODE(v2x_packet_dupl_cfg_r15->unpack(bref)); } if (sync_freq_list_r15_present) { sync_freq_list_r15 = make_copy_ptr(sl_v2x_sync_freq_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*sync_freq_list_r15, bref, 1, 8, UnalignedIntegerPacker(0, 262143))); } if (v2x_tx_profile_list_r15_present) { v2x_tx_profile_list_r15 = make_copy_ptr(sl_v2x_tx_profile_list_r15_l()); HANDLE_CODE(unpack_dyn_seq_of(*v2x_tx_profile_list_r15, bref, 1, 256, EnumPacker())); } } } return SRSASN_SUCCESS; } void sl_v2x_precfg_r14_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("v2x-PreconfigFreqList-r14"); for (uint32_t i1 = 0; i1 < v2x_precfg_freq_list_r14.size(); ++i1) { v2x_precfg_freq_list_r14[i1].to_json(j); } j.end_array(); if (anchor_carrier_freq_list_r14_present) { j.start_array("anchorCarrierFreqList-r14"); for (uint32_t i1 = 0; i1 < anchor_carrier_freq_list_r14.size(); ++i1) { j.write_int(anchor_carrier_freq_list_r14[i1]); } j.end_array(); } if (cbr_precfg_list_r14_present) { j.write_fieldname("cbr-PreconfigList-r14"); cbr_precfg_list_r14.to_json(j); } if (ext) { rrc_asn1_warn_assert(v2x_packet_dupl_cfg_r15_present != (v2x_packet_dupl_cfg_r15.get() != NULL), __FILE__, __LINE__); if (v2x_packet_dupl_cfg_r15_present) { j.write_fieldname("v2x-PacketDuplicationConfig-r15"); v2x_packet_dupl_cfg_r15->to_json(j); } rrc_asn1_warn_assert(sync_freq_list_r15_present != (sync_freq_list_r15.get() != NULL), __FILE__, __LINE__); if (sync_freq_list_r15_present) { j.start_array("syncFreqList-r15"); for (uint32_t i1 = 0; i1 < sync_freq_list_r15->size(); ++i1) { j.write_int(((*sync_freq_list_r15)[i1])); } j.end_array(); } if (slss_tx_multi_freq_r15_present) { j.write_str("slss-TxMultiFreq-r15", "true"); } rrc_asn1_warn_assert(v2x_tx_profile_list_r15_present != (v2x_tx_profile_list_r15.get() != NULL), __FILE__, __LINE__); if (v2x_tx_profile_list_r15_present) { j.start_array("v2x-TxProfileList-r15"); for (uint32_t i1 = 0; i1 < v2x_tx_profile_list_r15->size(); ++i1) { j.write_str(((*v2x_tx_profile_list_r15)[i1]).to_string()); } j.end_array(); } } j.end_obj(); } // UEPagingCoverageInformation-r13-IEs ::= SEQUENCE SRSASN_CODE ue_paging_coverage_info_r13_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mpdcch_num_repeat_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mpdcch_num_repeat_r13_present) { HANDLE_CODE(pack_unalign_integer(bref, mpdcch_num_repeat_r13, (uint16_t)1, (uint16_t)256)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_paging_coverage_info_r13_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(mpdcch_num_repeat_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (mpdcch_num_repeat_r13_present) { HANDLE_CODE(unpack_unalign_integer(mpdcch_num_repeat_r13, bref, (uint16_t)1, (uint16_t)256)); } return SRSASN_SUCCESS; } void ue_paging_coverage_info_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); if (mpdcch_num_repeat_r13_present) { j.write_int("mpdcch-NumRepetition-r13", mpdcch_num_repeat_r13); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // UEPagingCoverageInformation ::= SEQUENCE SRSASN_CODE ue_paging_coverage_info_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_paging_coverage_info_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ue_paging_coverage_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ue_paging_coverage_info_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ue_paging_coverage_info_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); } } ue_paging_coverage_info_s::crit_exts_c_::crit_exts_c_(const ue_paging_coverage_info_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); } } ue_paging_coverage_info_s::crit_exts_c_& ue_paging_coverage_info_s::crit_exts_c_:: operator=(const ue_paging_coverage_info_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); } return *this; } void ue_paging_coverage_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ue_paging_coverage_info_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_paging_coverage_info_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_paging_coverage_info_r13: j.write_fieldname("uePagingCoverageInformation-r13"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ue_paging_coverage_info_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_paging_coverage_info_r13: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_paging_coverage_info_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_paging_coverage_info_r13: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE SRSASN_CODE ue_radio_access_cap_info_r8_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(ue_radio_access_cap_info.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_access_cap_info_r8_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(ue_radio_access_cap_info.unpack(bref)); return SRSASN_SUCCESS; } void ue_radio_access_cap_info_r8_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("ue-RadioAccessCapabilityInfo", ue_radio_access_cap_info.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // UERadioAccessCapabilityInformation ::= SEQUENCE SRSASN_CODE ue_radio_access_cap_info_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_access_cap_info_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ue_radio_access_cap_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ue_radio_access_cap_info_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ue_radio_access_cap_info_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); } } ue_radio_access_cap_info_s::crit_exts_c_::crit_exts_c_(const ue_radio_access_cap_info_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); } } ue_radio_access_cap_info_s::crit_exts_c_& ue_radio_access_cap_info_s::crit_exts_c_:: operator=(const ue_radio_access_cap_info_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); } return *this; } void ue_radio_access_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_radio_access_cap_info_r8: j.write_fieldname("ueRadioAccessCapabilityInformation-r8"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_radio_access_cap_info_r8: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_radio_access_cap_info_r8: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // UERadioPagingInformation-v1310-IEs ::= SEQUENCE SRSASN_CODE ue_radio_paging_info_v1310_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(supported_band_list_eutra_for_paging_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (supported_band_list_eutra_for_paging_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_eutra_for_paging_r13, 1, 64, UnalignedIntegerPacker(1, 256))); } return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_paging_info_v1310_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(supported_band_list_eutra_for_paging_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); if (supported_band_list_eutra_for_paging_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_eutra_for_paging_r13, bref, 1, 64, UnalignedIntegerPacker(1, 256))); } return SRSASN_SUCCESS; } void ue_radio_paging_info_v1310_ies_s::to_json(json_writer& j) const { j.start_obj(); if (supported_band_list_eutra_for_paging_r13_present) { j.start_array("supportedBandListEUTRAForPaging-r13"); for (uint32_t i1 = 0; i1 < supported_band_list_eutra_for_paging_r13.size(); ++i1) { j.write_int(supported_band_list_eutra_for_paging_r13[i1]); } j.end_array(); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); j.end_obj(); } j.end_obj(); } // UERadioPagingInformation-r12-IEs ::= SEQUENCE SRSASN_CODE ue_radio_paging_info_r12_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(ue_radio_paging_info_r12.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_paging_info_r12_ies_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); HANDLE_CODE(ue_radio_paging_info_r12.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } void ue_radio_paging_info_r12_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("ue-RadioPagingInfo-r12", ue_radio_paging_info_r12.to_string()); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); } j.end_obj(); } // UERadioPagingInformation ::= SEQUENCE SRSASN_CODE ue_radio_paging_info_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_paging_info_s::unpack(bit_ref& bref) { HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } void ue_radio_paging_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } void ue_radio_paging_info_s::crit_exts_c_::destroy_() { switch (type_) { case types::c1: c.destroy(); break; default: break; } } void ue_radio_paging_info_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { case types::c1: c.init(); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); } } ue_radio_paging_info_s::crit_exts_c_::crit_exts_c_(const ue_radio_paging_info_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { case types::c1: c.init(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); } } ue_radio_paging_info_s::crit_exts_c_& ue_radio_paging_info_s::crit_exts_c_:: operator=(const ue_radio_paging_info_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { case types::c1: c.set(other.c.get()); break; case types::crit_exts_future: break; case types::nulltype: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); } return *this; } void ue_radio_paging_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::c1: j.write_fieldname("c1"); c.get().to_json(j); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); } j.end_obj(); } SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::c1: HANDLE_CODE(c.get().pack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::c1: HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_exts_future: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } void ue_radio_paging_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::ue_radio_paging_info_r12: j.write_fieldname("ueRadioPagingInformation-r12"); c.to_json(j); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_::c1_c_"); } j.end_obj(); } SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::ue_radio_paging_info_r12: HANDLE_CODE(c.pack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::c1_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::ue_radio_paging_info_r12: HANDLE_CODE(c.unpack(bref)); break; case types::spare7: break; case types::spare6: break; case types::spare5: break; case types::spare4: break; case types::spare3: break; case types::spare2: break; case types::spare1: break; default: log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_::c1_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // VarConnEstFailReport-r11 ::= SEQUENCE SRSASN_CODE var_conn_est_fail_report_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(conn_est_fail_report_r11.pack(bref)); HANDLE_CODE(plmn_id_r11.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE var_conn_est_fail_report_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(conn_est_fail_report_r11.unpack(bref)); HANDLE_CODE(plmn_id_r11.unpack(bref)); return SRSASN_SUCCESS; } void var_conn_est_fail_report_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("connEstFailReport-r11"); conn_est_fail_report_r11.to_json(j); j.write_fieldname("plmn-Identity-r11"); plmn_id_r11.to_json(j); j.end_obj(); } // VarLogMeasConfig-r10 ::= SEQUENCE SRSASN_CODE var_log_meas_cfg_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(area_cfg_r10_present, 1)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.pack(bref)); } HANDLE_CODE(pack_enum(bref, logging_dur_r10)); HANDLE_CODE(pack_enum(bref, logging_interv_r10)); return SRSASN_SUCCESS; } SRSASN_CODE var_log_meas_cfg_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(area_cfg_r10_present, 1)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.unpack(bref)); } HANDLE_CODE(unpack_enum(logging_dur_r10, bref)); HANDLE_CODE(unpack_enum(logging_interv_r10, bref)); return SRSASN_SUCCESS; } void var_log_meas_cfg_r10_s::to_json(json_writer& j) const { j.start_obj(); if (area_cfg_r10_present) { j.write_fieldname("areaConfiguration-r10"); area_cfg_r10.to_json(j); } j.write_str("loggingDuration-r10", logging_dur_r10.to_string()); j.write_str("loggingInterval-r10", logging_interv_r10.to_string()); j.end_obj(); } // VarLogMeasConfig-r11 ::= SEQUENCE SRSASN_CODE var_log_meas_cfg_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(area_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(area_cfg_v1130_present, 1)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.pack(bref)); } if (area_cfg_v1130_present) { HANDLE_CODE(area_cfg_v1130.pack(bref)); } HANDLE_CODE(pack_enum(bref, logging_dur_r10)); HANDLE_CODE(pack_enum(bref, logging_interv_r10)); return SRSASN_SUCCESS; } SRSASN_CODE var_log_meas_cfg_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(area_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(area_cfg_v1130_present, 1)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.unpack(bref)); } if (area_cfg_v1130_present) { HANDLE_CODE(area_cfg_v1130.unpack(bref)); } HANDLE_CODE(unpack_enum(logging_dur_r10, bref)); HANDLE_CODE(unpack_enum(logging_interv_r10, bref)); return SRSASN_SUCCESS; } void var_log_meas_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); if (area_cfg_r10_present) { j.write_fieldname("areaConfiguration-r10"); area_cfg_r10.to_json(j); } if (area_cfg_v1130_present) { j.write_fieldname("areaConfiguration-v1130"); area_cfg_v1130.to_json(j); } j.write_str("loggingDuration-r10", logging_dur_r10.to_string()); j.write_str("loggingInterval-r10", logging_interv_r10.to_string()); j.end_obj(); } // VarLogMeasConfig-r12 ::= SEQUENCE SRSASN_CODE var_log_meas_cfg_r12_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(area_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(area_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(target_mbsfn_area_list_r12_present, 1)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.pack(bref)); } if (area_cfg_v1130_present) { HANDLE_CODE(area_cfg_v1130.pack(bref)); } HANDLE_CODE(pack_enum(bref, logging_dur_r10)); HANDLE_CODE(pack_enum(bref, logging_interv_r10)); if (target_mbsfn_area_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, target_mbsfn_area_list_r12, 0, 8)); } return SRSASN_SUCCESS; } SRSASN_CODE var_log_meas_cfg_r12_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(area_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(area_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(target_mbsfn_area_list_r12_present, 1)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.unpack(bref)); } if (area_cfg_v1130_present) { HANDLE_CODE(area_cfg_v1130.unpack(bref)); } HANDLE_CODE(unpack_enum(logging_dur_r10, bref)); HANDLE_CODE(unpack_enum(logging_interv_r10, bref)); if (target_mbsfn_area_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(target_mbsfn_area_list_r12, bref, 0, 8)); } return SRSASN_SUCCESS; } void var_log_meas_cfg_r12_s::to_json(json_writer& j) const { j.start_obj(); if (area_cfg_r10_present) { j.write_fieldname("areaConfiguration-r10"); area_cfg_r10.to_json(j); } if (area_cfg_v1130_present) { j.write_fieldname("areaConfiguration-v1130"); area_cfg_v1130.to_json(j); } j.write_str("loggingDuration-r10", logging_dur_r10.to_string()); j.write_str("loggingInterval-r10", logging_interv_r10.to_string()); if (target_mbsfn_area_list_r12_present) { j.start_array("targetMBSFN-AreaList-r12"); for (uint32_t i1 = 0; i1 < target_mbsfn_area_list_r12.size(); ++i1) { target_mbsfn_area_list_r12[i1].to_json(j); } j.end_array(); } j.end_obj(); } // VarLogMeasConfig-r15 ::= SEQUENCE SRSASN_CODE var_log_meas_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(area_cfg_r10_present, 1)); HANDLE_CODE(bref.pack(area_cfg_v1130_present, 1)); HANDLE_CODE(bref.pack(target_mbsfn_area_list_r12_present, 1)); HANDLE_CODE(bref.pack(bt_name_list_r15_present, 1)); HANDLE_CODE(bref.pack(wlan_name_list_r15_present, 1)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.pack(bref)); } if (area_cfg_v1130_present) { HANDLE_CODE(area_cfg_v1130.pack(bref)); } HANDLE_CODE(pack_enum(bref, logging_dur_r10)); HANDLE_CODE(pack_enum(bref, logging_interv_r10)); if (target_mbsfn_area_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, target_mbsfn_area_list_r12, 0, 8)); } if (bt_name_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, bt_name_list_r15, 1, 4)); } if (wlan_name_list_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_name_list_r15, 1, 4)); } return SRSASN_SUCCESS; } SRSASN_CODE var_log_meas_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(area_cfg_r10_present, 1)); HANDLE_CODE(bref.unpack(area_cfg_v1130_present, 1)); HANDLE_CODE(bref.unpack(target_mbsfn_area_list_r12_present, 1)); HANDLE_CODE(bref.unpack(bt_name_list_r15_present, 1)); HANDLE_CODE(bref.unpack(wlan_name_list_r15_present, 1)); if (area_cfg_r10_present) { HANDLE_CODE(area_cfg_r10.unpack(bref)); } if (area_cfg_v1130_present) { HANDLE_CODE(area_cfg_v1130.unpack(bref)); } HANDLE_CODE(unpack_enum(logging_dur_r10, bref)); HANDLE_CODE(unpack_enum(logging_interv_r10, bref)); if (target_mbsfn_area_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(target_mbsfn_area_list_r12, bref, 0, 8)); } if (bt_name_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(bt_name_list_r15, bref, 1, 4)); } if (wlan_name_list_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_name_list_r15, bref, 1, 4)); } return SRSASN_SUCCESS; } void var_log_meas_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); if (area_cfg_r10_present) { j.write_fieldname("areaConfiguration-r10"); area_cfg_r10.to_json(j); } if (area_cfg_v1130_present) { j.write_fieldname("areaConfiguration-v1130"); area_cfg_v1130.to_json(j); } j.write_str("loggingDuration-r10", logging_dur_r10.to_string()); j.write_str("loggingInterval-r10", logging_interv_r10.to_string()); if (target_mbsfn_area_list_r12_present) { j.start_array("targetMBSFN-AreaList-r12"); for (uint32_t i1 = 0; i1 < target_mbsfn_area_list_r12.size(); ++i1) { target_mbsfn_area_list_r12[i1].to_json(j); } j.end_array(); } if (bt_name_list_r15_present) { j.start_array("bt-NameList-r15"); for (uint32_t i1 = 0; i1 < bt_name_list_r15.size(); ++i1) { j.write_str(bt_name_list_r15[i1].to_string()); } j.end_array(); } if (wlan_name_list_r15_present) { j.start_array("wlan-NameList-r15"); for (uint32_t i1 = 0; i1 < wlan_name_list_r15.size(); ++i1) { j.write_str(wlan_name_list_r15[i1].to_string()); } j.end_array(); } j.end_obj(); } // VarLogMeasReport-r10 ::= SEQUENCE SRSASN_CODE var_log_meas_report_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(trace_ref_r10.pack(bref)); HANDLE_CODE(trace_recording_session_ref_r10.pack(bref)); HANDLE_CODE(tce_id_r10.pack(bref)); HANDLE_CODE(plmn_id_r10.pack(bref)); HANDLE_CODE(absolute_time_info_r10.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, log_meas_info_list_r10, 1, 4060)); return SRSASN_SUCCESS; } SRSASN_CODE var_log_meas_report_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(trace_ref_r10.unpack(bref)); HANDLE_CODE(trace_recording_session_ref_r10.unpack(bref)); HANDLE_CODE(tce_id_r10.unpack(bref)); HANDLE_CODE(plmn_id_r10.unpack(bref)); HANDLE_CODE(absolute_time_info_r10.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(log_meas_info_list_r10, bref, 1, 4060)); return SRSASN_SUCCESS; } void var_log_meas_report_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("traceReference-r10"); trace_ref_r10.to_json(j); j.write_str("traceRecordingSessionRef-r10", trace_recording_session_ref_r10.to_string()); j.write_str("tce-Id-r10", tce_id_r10.to_string()); j.write_fieldname("plmn-Identity-r10"); plmn_id_r10.to_json(j); j.write_str("absoluteTimeInfo-r10", absolute_time_info_r10.to_string()); j.start_array("logMeasInfoList-r10"); for (uint32_t i1 = 0; i1 < log_meas_info_list_r10.size(); ++i1) { log_meas_info_list_r10[i1].to_json(j); } j.end_array(); j.end_obj(); } // VarLogMeasReport-r11 ::= SEQUENCE SRSASN_CODE var_log_meas_report_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(trace_ref_r10.pack(bref)); HANDLE_CODE(trace_recording_session_ref_r10.pack(bref)); HANDLE_CODE(tce_id_r10.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r11, 1, 16)); HANDLE_CODE(absolute_time_info_r10.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, log_meas_info_list_r10, 1, 4060)); return SRSASN_SUCCESS; } SRSASN_CODE var_log_meas_report_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(trace_ref_r10.unpack(bref)); HANDLE_CODE(trace_recording_session_ref_r10.unpack(bref)); HANDLE_CODE(tce_id_r10.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r11, bref, 1, 16)); HANDLE_CODE(absolute_time_info_r10.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(log_meas_info_list_r10, bref, 1, 4060)); return SRSASN_SUCCESS; } void var_log_meas_report_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("traceReference-r10"); trace_ref_r10.to_json(j); j.write_str("traceRecordingSessionRef-r10", trace_recording_session_ref_r10.to_string()); j.write_str("tce-Id-r10", tce_id_r10.to_string()); j.start_array("plmn-IdentityList-r11"); for (uint32_t i1 = 0; i1 < plmn_id_list_r11.size(); ++i1) { plmn_id_list_r11[i1].to_json(j); } j.end_array(); j.write_str("absoluteTimeInfo-r10", absolute_time_info_r10.to_string()); j.start_array("logMeasInfoList-r10"); for (uint32_t i1 = 0; i1 < log_meas_info_list_r10.size(); ++i1) { log_meas_info_list_r10[i1].to_json(j); } j.end_array(); j.end_obj(); } // VarMeasConfig ::= SEQUENCE SRSASN_CODE var_meas_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_id_list_present, 1)); HANDLE_CODE(bref.pack(meas_id_list_ext_r12_present, 1)); HANDLE_CODE(bref.pack(meas_id_list_v1310_present, 1)); HANDLE_CODE(bref.pack(meas_id_list_ext_v1310_present, 1)); HANDLE_CODE(bref.pack(meas_obj_list_present, 1)); HANDLE_CODE(bref.pack(meas_obj_list_ext_r13_present, 1)); HANDLE_CODE(bref.pack(meas_obj_list_v9i0_present, 1)); HANDLE_CODE(bref.pack(report_cfg_list_present, 1)); HANDLE_CODE(bref.pack(quant_cfg_present, 1)); HANDLE_CODE(bref.pack(meas_scale_factor_r12_present, 1)); HANDLE_CODE(bref.pack(s_measure_present, 1)); HANDLE_CODE(bref.pack(speed_state_pars_present, 1)); HANDLE_CODE(bref.pack(allow_interruptions_r11_present, 1)); if (meas_id_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_list, 1, 32)); } if (meas_id_list_ext_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_list_ext_r12, 1, 32)); } if (meas_id_list_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_list_v1310, 1, 32)); } if (meas_id_list_ext_v1310_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_list_ext_v1310, 1, 32)); } if (meas_obj_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_obj_list, 1, 32)); } if (meas_obj_list_ext_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_obj_list_ext_r13, 1, 32)); } if (meas_obj_list_v9i0_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_obj_list_v9i0, 1, 32)); } if (report_cfg_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, report_cfg_list, 1, 32)); } if (quant_cfg_present) { HANDLE_CODE(quant_cfg.pack(bref)); } if (meas_scale_factor_r12_present) { HANDLE_CODE(pack_enum(bref, meas_scale_factor_r12)); } if (s_measure_present) { HANDLE_CODE(pack_unalign_integer(bref, s_measure, (int16_t)-140, (int16_t)-44)); } if (speed_state_pars_present) { HANDLE_CODE(speed_state_pars.pack(bref)); } if (allow_interruptions_r11_present) { HANDLE_CODE(bref.pack(allow_interruptions_r11, 1)); } return SRSASN_SUCCESS; } SRSASN_CODE var_meas_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_id_list_present, 1)); HANDLE_CODE(bref.unpack(meas_id_list_ext_r12_present, 1)); HANDLE_CODE(bref.unpack(meas_id_list_v1310_present, 1)); HANDLE_CODE(bref.unpack(meas_id_list_ext_v1310_present, 1)); HANDLE_CODE(bref.unpack(meas_obj_list_present, 1)); HANDLE_CODE(bref.unpack(meas_obj_list_ext_r13_present, 1)); HANDLE_CODE(bref.unpack(meas_obj_list_v9i0_present, 1)); HANDLE_CODE(bref.unpack(report_cfg_list_present, 1)); HANDLE_CODE(bref.unpack(quant_cfg_present, 1)); HANDLE_CODE(bref.unpack(meas_scale_factor_r12_present, 1)); HANDLE_CODE(bref.unpack(s_measure_present, 1)); HANDLE_CODE(bref.unpack(speed_state_pars_present, 1)); HANDLE_CODE(bref.unpack(allow_interruptions_r11_present, 1)); if (meas_id_list_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_id_list, bref, 1, 32)); } if (meas_id_list_ext_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_id_list_ext_r12, bref, 1, 32)); } if (meas_id_list_v1310_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_id_list_v1310, bref, 1, 32)); } if (meas_id_list_ext_v1310_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_id_list_ext_v1310, bref, 1, 32)); } if (meas_obj_list_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_obj_list, bref, 1, 32)); } if (meas_obj_list_ext_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_obj_list_ext_r13, bref, 1, 32)); } if (meas_obj_list_v9i0_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_obj_list_v9i0, bref, 1, 32)); } if (report_cfg_list_present) { HANDLE_CODE(unpack_dyn_seq_of(report_cfg_list, bref, 1, 32)); } if (quant_cfg_present) { HANDLE_CODE(quant_cfg.unpack(bref)); } if (meas_scale_factor_r12_present) { HANDLE_CODE(unpack_enum(meas_scale_factor_r12, bref)); } if (s_measure_present) { HANDLE_CODE(unpack_unalign_integer(s_measure, bref, (int16_t)-140, (int16_t)-44)); } if (speed_state_pars_present) { HANDLE_CODE(speed_state_pars.unpack(bref)); } if (allow_interruptions_r11_present) { HANDLE_CODE(bref.unpack(allow_interruptions_r11, 1)); } return SRSASN_SUCCESS; } void var_meas_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (meas_id_list_present) { j.start_array("measIdList"); for (uint32_t i1 = 0; i1 < meas_id_list.size(); ++i1) { meas_id_list[i1].to_json(j); } j.end_array(); } if (meas_id_list_ext_r12_present) { j.start_array("measIdListExt-r12"); for (uint32_t i1 = 0; i1 < meas_id_list_ext_r12.size(); ++i1) { meas_id_list_ext_r12[i1].to_json(j); } j.end_array(); } if (meas_id_list_v1310_present) { j.start_array("measIdList-v1310"); for (uint32_t i1 = 0; i1 < meas_id_list_v1310.size(); ++i1) { meas_id_list_v1310[i1].to_json(j); } j.end_array(); } if (meas_id_list_ext_v1310_present) { j.start_array("measIdListExt-v1310"); for (uint32_t i1 = 0; i1 < meas_id_list_ext_v1310.size(); ++i1) { meas_id_list_ext_v1310[i1].to_json(j); } j.end_array(); } if (meas_obj_list_present) { j.start_array("measObjectList"); for (uint32_t i1 = 0; i1 < meas_obj_list.size(); ++i1) { meas_obj_list[i1].to_json(j); } j.end_array(); } if (meas_obj_list_ext_r13_present) { j.start_array("measObjectListExt-r13"); for (uint32_t i1 = 0; i1 < meas_obj_list_ext_r13.size(); ++i1) { meas_obj_list_ext_r13[i1].to_json(j); } j.end_array(); } if (meas_obj_list_v9i0_present) { j.start_array("measObjectList-v9i0"); for (uint32_t i1 = 0; i1 < meas_obj_list_v9i0.size(); ++i1) { meas_obj_list_v9i0[i1].to_json(j); } j.end_array(); } if (report_cfg_list_present) { j.start_array("reportConfigList"); for (uint32_t i1 = 0; i1 < report_cfg_list.size(); ++i1) { report_cfg_list[i1].to_json(j); } j.end_array(); } if (quant_cfg_present) { j.write_fieldname("quantityConfig"); quant_cfg.to_json(j); } if (meas_scale_factor_r12_present) { j.write_str("measScaleFactor-r12", meas_scale_factor_r12.to_string()); } if (s_measure_present) { j.write_int("s-Measure", s_measure); } if (speed_state_pars_present) { j.write_fieldname("speedStatePars"); speed_state_pars.to_json(j); } if (allow_interruptions_r11_present) { j.write_bool("allowInterruptions-r11", allow_interruptions_r11); } j.end_obj(); } void var_meas_cfg_s::speed_state_pars_c_::set(types::options e) { type_ = e; } void var_meas_cfg_s::speed_state_pars_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::release: break; case types::setup: j.write_fieldname("setup"); j.start_obj(); j.write_fieldname("mobilityStateParameters"); c.mob_state_params.to_json(j); j.write_fieldname("timeToTrigger-SF"); c.time_to_trigger_sf.to_json(j); j.end_obj(); break; default: log_invalid_choice_id(type_, "var_meas_cfg_s::speed_state_pars_c_"); } j.end_obj(); } SRSASN_CODE var_meas_cfg_s::speed_state_pars_c_::pack(bit_ref& bref) const { pack_enum(bref, type_); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.mob_state_params.pack(bref)); HANDLE_CODE(c.time_to_trigger_sf.pack(bref)); break; default: log_invalid_choice_id(type_, "var_meas_cfg_s::speed_state_pars_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } SRSASN_CODE var_meas_cfg_s::speed_state_pars_c_::unpack(bit_ref& bref) { types e; unpack_enum(e, bref); set(e); switch (type_) { case types::release: break; case types::setup: HANDLE_CODE(c.mob_state_params.unpack(bref)); HANDLE_CODE(c.time_to_trigger_sf.unpack(bref)); break; default: log_invalid_choice_id(type_, "var_meas_cfg_s::speed_state_pars_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } // VarMeasIdleConfig-r15 ::= SEQUENCE SRSASN_CODE var_meas_idle_cfg_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_idle_carrier_list_eutra_r15_present, 1)); if (meas_idle_carrier_list_eutra_r15_present) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_idle_carrier_list_eutra_r15, 1, 8)); } HANDLE_CODE(pack_enum(bref, meas_idle_dur_r15)); return SRSASN_SUCCESS; } SRSASN_CODE var_meas_idle_cfg_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_idle_carrier_list_eutra_r15_present, 1)); if (meas_idle_carrier_list_eutra_r15_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_idle_carrier_list_eutra_r15, bref, 1, 8)); } HANDLE_CODE(unpack_enum(meas_idle_dur_r15, bref)); return SRSASN_SUCCESS; } void var_meas_idle_cfg_r15_s::to_json(json_writer& j) const { j.start_obj(); if (meas_idle_carrier_list_eutra_r15_present) { j.start_array("measIdleCarrierListEUTRA-r15"); for (uint32_t i1 = 0; i1 < meas_idle_carrier_list_eutra_r15.size(); ++i1) { meas_idle_carrier_list_eutra_r15[i1].to_json(j); } j.end_array(); } j.write_str("measIdleDuration-r15", meas_idle_dur_r15.to_string()); j.end_obj(); } // VarMeasIdleReport-r15 ::= SEQUENCE SRSASN_CODE var_meas_idle_report_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_dyn_seq_of(bref, meas_report_idle_r15, 1, 3)); return SRSASN_SUCCESS; } SRSASN_CODE var_meas_idle_report_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_dyn_seq_of(meas_report_idle_r15, bref, 1, 3)); return SRSASN_SUCCESS; } void var_meas_idle_report_r15_s::to_json(json_writer& j) const { j.start_obj(); j.start_array("measReportIdle-r15"); for (uint32_t i1 = 0; i1 < meas_report_idle_r15.size(); ++i1) { meas_report_idle_r15[i1].to_json(j); } j.end_array(); j.end_obj(); } // VarMeasReport ::= SEQUENCE SRSASN_CODE var_meas_report_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_id_v1250_present, 1)); HANDLE_CODE(bref.pack(cells_triggered_list_present, 1)); HANDLE_CODE(bref.pack(csi_rs_triggered_list_r12_present, 1)); HANDLE_CODE(bref.pack(pools_triggered_list_r14_present, 1)); HANDLE_CODE(pack_unalign_integer(bref, meas_id, (uint8_t)1, (uint8_t)32)); if (meas_id_v1250_present) { HANDLE_CODE(pack_unalign_integer(bref, meas_id_v1250, (uint8_t)33, (uint8_t)64)); } if (cells_triggered_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_triggered_list, 1, 32)); } if (csi_rs_triggered_list_r12_present) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_rs_triggered_list_r12, 1, 96, UnalignedIntegerPacker(1, 96))); } if (pools_triggered_list_r14_present) { HANDLE_CODE(pack_dyn_seq_of(bref, pools_triggered_list_r14, 1, 72, UnalignedIntegerPacker(1, 72))); } HANDLE_CODE(pack_unconstrained_integer(bref, nof_reports_sent)); return SRSASN_SUCCESS; } SRSASN_CODE var_meas_report_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(meas_id_v1250_present, 1)); HANDLE_CODE(bref.unpack(cells_triggered_list_present, 1)); HANDLE_CODE(bref.unpack(csi_rs_triggered_list_r12_present, 1)); HANDLE_CODE(bref.unpack(pools_triggered_list_r14_present, 1)); HANDLE_CODE(unpack_unalign_integer(meas_id, bref, (uint8_t)1, (uint8_t)32)); if (meas_id_v1250_present) { HANDLE_CODE(unpack_unalign_integer(meas_id_v1250, bref, (uint8_t)33, (uint8_t)64)); } if (cells_triggered_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cells_triggered_list, bref, 1, 32)); } if (csi_rs_triggered_list_r12_present) { HANDLE_CODE(unpack_dyn_seq_of(csi_rs_triggered_list_r12, bref, 1, 96, UnalignedIntegerPacker(1, 96))); } if (pools_triggered_list_r14_present) { HANDLE_CODE(unpack_dyn_seq_of(pools_triggered_list_r14, bref, 1, 72, UnalignedIntegerPacker(1, 72))); } HANDLE_CODE(unpack_unconstrained_integer(nof_reports_sent, bref)); return SRSASN_SUCCESS; } void var_meas_report_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measId", meas_id); if (meas_id_v1250_present) { j.write_int("measId-v1250", meas_id_v1250); } if (cells_triggered_list_present) { j.start_array("cellsTriggeredList"); for (uint32_t i1 = 0; i1 < cells_triggered_list.size(); ++i1) { cells_triggered_list[i1].to_json(j); } j.end_array(); } if (csi_rs_triggered_list_r12_present) { j.start_array("csi-RS-TriggeredList-r12"); for (uint32_t i1 = 0; i1 < csi_rs_triggered_list_r12.size(); ++i1) { j.write_int(csi_rs_triggered_list_r12[i1]); } j.end_array(); } if (pools_triggered_list_r14_present) { j.start_array("poolsTriggeredList-r14"); for (uint32_t i1 = 0; i1 < pools_triggered_list_r14.size(); ++i1) { j.write_int(pools_triggered_list_r14[i1]); } j.end_array(); } j.write_int("numberOfReportsSent", nof_reports_sent); j.end_obj(); } // VarRLF-Report-r10 ::= SEQUENCE SRSASN_CODE var_rlf_report_r10_s::pack(bit_ref& bref) const { HANDLE_CODE(rlf_report_r10.pack(bref)); HANDLE_CODE(plmn_id_r10.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE var_rlf_report_r10_s::unpack(bit_ref& bref) { HANDLE_CODE(rlf_report_r10.unpack(bref)); HANDLE_CODE(plmn_id_r10.unpack(bref)); return SRSASN_SUCCESS; } void var_rlf_report_r10_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("rlf-Report-r10"); rlf_report_r10.to_json(j); j.write_fieldname("plmn-Identity-r10"); plmn_id_r10.to_json(j); j.end_obj(); } // VarRLF-Report-r11 ::= SEQUENCE SRSASN_CODE var_rlf_report_r11_s::pack(bit_ref& bref) const { HANDLE_CODE(rlf_report_r10.pack(bref)); HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r11, 1, 16)); return SRSASN_SUCCESS; } SRSASN_CODE var_rlf_report_r11_s::unpack(bit_ref& bref) { HANDLE_CODE(rlf_report_r10.unpack(bref)); HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r11, bref, 1, 16)); return SRSASN_SUCCESS; } void var_rlf_report_r11_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("rlf-Report-r10"); rlf_report_r10.to_json(j); j.start_array("plmn-IdentityList-r11"); for (uint32_t i1 = 0; i1 < plmn_id_list_r11.size(); ++i1) { plmn_id_list_r11[i1].to_json(j); } j.end_array(); j.end_obj(); } // VarShortINACTIVE-MAC-Input-r15 ::= SEQUENCE SRSASN_CODE var_short_inactive_mac_input_r15_s::pack(bit_ref& bref) const { HANDLE_CODE(cell_id_r15.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, pci_r15, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(c_rnti_r15.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE var_short_inactive_mac_input_r15_s::unpack(bit_ref& bref) { HANDLE_CODE(cell_id_r15.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(pci_r15, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(c_rnti_r15.unpack(bref)); return SRSASN_SUCCESS; } void var_short_inactive_mac_input_r15_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cellIdentity-r15", cell_id_r15.to_string()); j.write_int("physCellId-r15", pci_r15); j.write_str("c-RNTI-r15", c_rnti_r15.to_string()); j.end_obj(); } // VarShortMAC-Input ::= SEQUENCE SRSASN_CODE var_short_mac_input_s::pack(bit_ref& bref) const { HANDLE_CODE(cell_id.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, pci, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(c_rnti.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE var_short_mac_input_s::unpack(bit_ref& bref) { HANDLE_CODE(cell_id.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(pci, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(c_rnti.unpack(bref)); return SRSASN_SUCCESS; } void var_short_mac_input_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cellIdentity", cell_id.to_string()); j.write_int("physCellId", pci); j.write_str("c-RNTI", c_rnti.to_string()); j.end_obj(); } // VarShortResumeMAC-Input-r13 ::= SEQUENCE SRSASN_CODE var_short_resume_mac_input_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(cell_id_r13.pack(bref)); HANDLE_CODE(pack_unalign_integer(bref, pci_r13, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(c_rnti_r13.pack(bref)); HANDLE_CODE(resume_discriminator_r13.pack(bref)); return SRSASN_SUCCESS; } SRSASN_CODE var_short_resume_mac_input_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(cell_id_r13.unpack(bref)); HANDLE_CODE(unpack_unalign_integer(pci_r13, bref, (uint16_t)0, (uint16_t)503)); HANDLE_CODE(c_rnti_r13.unpack(bref)); HANDLE_CODE(resume_discriminator_r13.unpack(bref)); return SRSASN_SUCCESS; } void var_short_resume_mac_input_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("cellIdentity-r13", cell_id_r13.to_string()); j.write_int("physCellId-r13", pci_r13); j.write_str("c-RNTI-r13", c_rnti_r13.to_string()); j.write_str("resumeDiscriminator-r13", resume_discriminator_r13.to_string()); j.end_obj(); } // VarWLAN-MobilityConfig ::= SEQUENCE SRSASN_CODE var_wlan_mob_cfg_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(wlan_mob_set_r13_present, 1)); HANDLE_CODE(bref.pack(success_report_requested_present, 1)); HANDLE_CODE(bref.pack(wlan_suspend_cfg_r14_present, 1)); if (wlan_mob_set_r13_present) { HANDLE_CODE(pack_dyn_seq_of(bref, wlan_mob_set_r13, 1, 32)); } if (wlan_suspend_cfg_r14_present) { HANDLE_CODE(wlan_suspend_cfg_r14.pack(bref)); } return SRSASN_SUCCESS; } SRSASN_CODE var_wlan_mob_cfg_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(wlan_mob_set_r13_present, 1)); HANDLE_CODE(bref.unpack(success_report_requested_present, 1)); HANDLE_CODE(bref.unpack(wlan_suspend_cfg_r14_present, 1)); if (wlan_mob_set_r13_present) { HANDLE_CODE(unpack_dyn_seq_of(wlan_mob_set_r13, bref, 1, 32)); } if (wlan_suspend_cfg_r14_present) { HANDLE_CODE(wlan_suspend_cfg_r14.unpack(bref)); } return SRSASN_SUCCESS; } void var_wlan_mob_cfg_s::to_json(json_writer& j) const { j.start_obj(); if (wlan_mob_set_r13_present) { j.start_array("wlan-MobilitySet-r13"); for (uint32_t i1 = 0; i1 < wlan_mob_set_r13.size(); ++i1) { wlan_mob_set_r13[i1].to_json(j); } j.end_array(); } if (success_report_requested_present) { j.write_str("successReportRequested", "true"); } if (wlan_suspend_cfg_r14_present) { j.write_fieldname("wlan-SuspendConfig-r14"); wlan_suspend_cfg_r14.to_json(j); } j.end_obj(); } // VarWLAN-Status-r13 ::= SEQUENCE SRSASN_CODE var_wlan_status_r13_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(status_r14_present, 1)); HANDLE_CODE(pack_enum(bref, status_r13)); if (status_r14_present) { HANDLE_CODE(pack_enum(bref, status_r14)); } return SRSASN_SUCCESS; } SRSASN_CODE var_wlan_status_r13_s::unpack(bit_ref& bref) { HANDLE_CODE(bref.unpack(status_r14_present, 1)); HANDLE_CODE(unpack_enum(status_r13, bref)); if (status_r14_present) { HANDLE_CODE(unpack_enum(status_r14, bref)); } return SRSASN_SUCCESS; } void var_wlan_status_r13_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("status-r13", status_r13.to_string()); if (status_r14_present) { j.write_str("status-r14", status_r14.to_string()); } j.end_obj(); }