diff --git a/lib/include/srsran/asn1/ngap.h b/lib/include/srsran/asn1/ngap.h index af6e822d0..2d54ed052 100644 --- a/lib/include/srsran/asn1/ngap.h +++ b/lib/include/srsran/asn1/ngap.h @@ -941,13 +941,12 @@ using crit_diagnostics_ext_ies_container = protocol_ext_container_empty_l; // CriticalityDiagnostics ::= SEQUENCE struct crit_diagnostics_s { - bool ext = false; - bool proc_code_present = false; - bool trigger_msg_present = false; - bool proc_crit_present = false; - bool ies_crit_diagnostics_present = false; - bool ie_exts_present = false; - uint16_t proc_code = 0; + bool ext = false; + bool proc_code_present = false; + bool trigger_msg_present = false; + bool proc_crit_present = false; + bool ie_exts_present = false; + uint16_t proc_code = 0; trigger_msg_e trigger_msg; crit_e proc_crit; crit_diagnostics_ie_list_l ies_crit_diagnostics; @@ -1950,11 +1949,8 @@ using area_of_interest_ext_ies_container = protocol_ext_container_empty_l; // AreaOfInterest ::= SEQUENCE struct area_of_interest_s { - bool ext = false; - bool area_of_interest_tai_list_present = false; - bool area_of_interest_cell_list_present = false; - bool area_of_interest_ran_node_list_present = false; - bool ie_exts_present = false; + bool ext = false; + bool ie_exts_present = false; area_of_interest_tai_list_l area_of_interest_tai_list; area_of_interest_cell_list_l area_of_interest_cell_list; area_of_interest_ran_node_list_l area_of_interest_ran_node_list; @@ -3185,7 +3181,6 @@ struct expected_ue_behaviour_s { bool expected_ue_activity_behaviour_present = false; bool expected_ho_interv_present = false; bool expected_ue_mob_present = false; - bool expected_ue_moving_trajectory_present = false; bool ie_exts_present = false; expected_ue_activity_behaviour_s expected_ue_activity_behaviour; expected_ho_interv_e expected_ho_interv; @@ -3698,10 +3693,8 @@ using service_area_info_item_ext_ies_container = protocol_ext_container_empty_l; // ServiceAreaInformation-Item ::= SEQUENCE struct service_area_info_item_s { - bool ext = false; - bool allowed_tacs_present = false; - bool not_allowed_tacs_present = false; - bool ie_exts_present = false; + bool ext = false; + bool ie_exts_present = false; fixed_octstring<3, true> plmn_id; allowed_tacs_l allowed_tacs; not_allowed_tacs_l not_allowed_tacs; @@ -3763,12 +3756,7 @@ using ue_aggregate_maximum_bit_rate_ext_ies_o = protocol_ext_empty_o; // MobilityRestrictionList ::= SEQUENCE struct mob_restrict_list_s { - bool ext = false; - bool equivalent_plmns_present = false; - bool rat_restricts_present = false; - bool forbidden_area_info_present = false; - bool service_area_info_present = false; - bool ie_exts_present = false; + bool ext = false; fixed_octstring<3, true> serving_plmn; equivalent_plmns_l equivalent_plmns; rat_restricts_l rat_restricts; @@ -3976,7 +3964,6 @@ using xn_ext_tla_item_ext_ies_container = protocol_ext_container_empty_l; struct xn_ext_tla_item_s { bool ext = false; bool ipsec_tla_present = false; - bool gtp_tlas_present = false; bool ie_exts_present = false; bounded_bitstring<1, 160, true, true> ipsec_tla; xn_gtp_tlas_l gtp_tlas; @@ -4005,9 +3992,8 @@ using xn_tnl_cfg_info_ext_ies_container = protocol_ext_container_empty_l; // XnTNLConfigurationInfo ::= SEQUENCE struct xn_tnl_cfg_info_s { - bool ext = false; - bool xn_extended_transport_layer_addresses_present = false; - bool ie_exts_present = false; + bool ext = false; + bool ie_exts_present = false; xn_tlas_l xn_transport_layer_addresses; xn_ext_tlas_l xn_extended_transport_layer_addresses; xn_tnl_cfg_info_ext_ies_container ie_exts; @@ -5040,11 +5026,8 @@ using qos_flow_to_be_forwarded_list_l = dyn_array nas_pdu; @@ -6450,10 +6428,8 @@ using ue_radio_cap_for_paging_ext_ies_container = protocol_ext_container_empty_l // UERadioCapabilityForPaging ::= SEQUENCE struct ue_radio_cap_for_paging_s { - bool ext = false; - bool ueradio_cap_for_paging_of_nr_present = false; - bool ueradio_cap_for_paging_of_eutra_present = false; - bool ie_exts_present = false; + bool ext = false; + bool ie_exts_present = false; unbounded_octstring ueradio_cap_for_paging_of_nr; unbounded_octstring ueradio_cap_for_paging_of_eutra; ue_radio_cap_for_paging_ext_ies_container ie_exts; @@ -7270,9 +7246,8 @@ struct pdu_session_res_failed_to_setup_item_su_res_s { // PDUSessionResourceItemCxtRelCpl ::= SEQUENCE struct pdu_session_res_item_cxt_rel_cpl_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; + bool ext = false; + uint16_t pdu_session_id = 0; protocol_ext_container_l ie_exts; // ... @@ -7334,10 +7309,8 @@ struct pdu_session_res_modify_item_mod_ind_s { // PDUSessionResourceModifyItemModReq ::= SEQUENCE struct pdu_session_res_modify_item_mod_req_s { - bool ext = false; - bool nas_pdu_present = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; + bool ext = false; + uint16_t pdu_session_id = 0; unbounded_octstring nas_pdu; unbounded_octstring pdu_session_res_modify_request_transfer; protocol_ext_container_l ie_exts; @@ -7472,10 +7445,9 @@ using pdu_session_res_setup_item_su_req_ext_ies_container = protocol_ext_contain // PDUSessionResourceSetupItemSUReq ::= SEQUENCE struct pdu_session_res_setup_item_su_req_s { - bool ext = false; - bool pdu_session_nas_pdu_present = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; unbounded_octstring pdu_session_nas_pdu; s_nssai_s s_nssai; unbounded_octstring pdu_session_res_setup_request_transfer; @@ -12716,10 +12688,9 @@ using pdu_session_res_info_item_ext_ies_container = protocol_ext_container_empty // PDUSessionResourceInformationItem ::= SEQUENCE struct pdu_session_res_info_item_s { - bool ext = false; - bool drbs_to_qos_flows_map_list_present = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; qos_flow_info_list_l qos_flow_info_list; drbs_to_qos_flows_map_list_l drbs_to_qos_flows_map_list; pdu_session_res_info_item_ext_ies_container ie_exts; @@ -12786,10 +12757,8 @@ using pdu_session_res_modify_confirm_transfer_ext_ies_container = protocol_ext_c // PDUSessionResourceModifyConfirmTransfer ::= SEQUENCE struct pdu_session_res_modify_confirm_transfer_s { - bool ext = false; - bool add_ng_uuptnl_info_present = false; - bool qos_flow_failed_to_modify_list_present = false; - bool ie_exts_present = false; + bool ext = false; + bool ie_exts_present = false; qos_flow_modify_confirm_list_l qos_flow_modify_confirm_list; up_transport_layer_info_c ulngu_up_tnl_info; up_transport_layer_info_pair_list_l add_ng_uuptnl_info; @@ -12895,10 +12864,9 @@ using secondary_ratusage_info_ext_ies_container = protocol_ext_container_empty_l // SecondaryRATUsageInformation ::= SEQUENCE struct secondary_ratusage_info_s { - bool ext = false; - bool pdu_session_usage_report_present = false; - bool qos_flows_usage_report_list_present = false; - bool ie_ext_present = false; + bool ext = false; + bool pdu_session_usage_report_present = false; + bool ie_ext_present = false; pdu_session_usage_report_s pdu_session_usage_report; qo_sflows_usage_report_list_l qos_flows_usage_report_list; secondary_ratusage_info_ext_ies_container ie_ext; @@ -12971,9 +12939,8 @@ struct pdu_session_res_modify_ind_transfer_ext_ies_container { // PDUSessionResourceModifyIndicationTransfer ::= SEQUENCE struct pdu_session_res_modify_ind_transfer_s { - bool ext = false; - bool add_dl_qos_flow_per_tnl_info_present = false; - bool ie_exts_present = false; + bool ext = false; + bool ie_exts_present = false; qos_flow_per_tnl_info_s dlqos_flow_per_tnl_info; qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info; pdu_session_res_modify_ind_transfer_ext_ies_container ie_exts; @@ -13334,18 +13301,14 @@ using qos_flow_add_or_modify_resp_list_l = dyn_array ie_exts; // ... @@ -13410,8 +13373,7 @@ struct pdu_session_res_notify_released_transfer_ext_ies_o { // PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE struct pdu_session_res_notify_released_transfer_s { - bool ext = false; - bool ie_exts_present = false; + bool ext = false; cause_c cause; protocol_ext_container_l ie_exts; // ... @@ -13487,10 +13449,7 @@ using qos_flow_notify_list_l = dyn_array; // PDUSessionResourceNotifyTransfer ::= SEQUENCE struct pdu_session_res_notify_transfer_s { - bool ext = false; - bool qos_flow_notify_list_present = false; - bool qos_flow_released_list_present = false; - bool ie_exts_present = false; + bool ext = false; qos_flow_notify_list_l qos_flow_notify_list; qos_flow_list_with_cause_l qos_flow_released_list; protocol_ext_container_l ie_exts; @@ -13555,8 +13514,7 @@ struct pdu_session_res_release_resp_transfer_ext_ies_o { // PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE struct pdu_session_res_release_resp_transfer_s { - bool ext = false; - bool ie_exts_present = false; + bool ext = false; protocol_ext_container_l ie_exts; // ... @@ -13669,7 +13627,6 @@ using qos_flow_setup_request_list_l = dyn_array; struct security_ind_s { bool ext = false; bool maximum_integrity_protected_data_rate_ul_present = false; - bool ie_exts_present = false; integrity_protection_ind_e integrity_protection_ind; confidentiality_protection_ind_e confidentiality_protection_ind; maximum_integrity_protected_data_rate_e maximum_integrity_protected_data_rate_ul; @@ -13790,11 +13747,9 @@ using pdu_session_res_setup_resp_transfer_ext_ies_container = protocol_ext_conta // PDUSessionResourceSetupResponseTransfer ::= SEQUENCE struct pdu_session_res_setup_resp_transfer_s { - bool ext = false; - bool add_dl_qos_flow_per_tnl_info_present = false; - bool security_result_present = false; - bool qos_flow_failed_to_setup_list_present = false; - bool ie_exts_present = false; + bool ext = false; + bool security_result_present = false; + bool ie_exts_present = false; qos_flow_per_tnl_info_s dlqos_flow_per_tnl_info; qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info; security_result_s security_result; @@ -13866,7 +13821,6 @@ struct path_switch_request_ack_transfer_s { bool ext = false; bool ul_ngu_up_tnl_info_present = false; bool security_ind_present = false; - bool ie_exts_present = false; up_transport_layer_info_c ul_ngu_up_tnl_info; security_ind_s security_ind; protocol_ext_container_l ie_exts; @@ -13984,7 +13938,6 @@ struct path_switch_request_transfer_s { bool ext = false; bool dl_ngu_tnl_info_reused_present = false; bool user_plane_security_info_present = false; - bool ie_exts_present = false; up_transport_layer_info_c dl_ngu_up_tnl_info; dl_ngu_tnl_info_reused_e dl_ngu_tnl_info_reused; user_plane_security_info_s user_plane_security_info; @@ -14088,17 +14041,15 @@ using source_ngran_node_to_target_ngran_node_transparent_container_ext_ies_conta // SourceNGRANNode-ToTargetNGRANNode-TransparentContainer ::= SEQUENCE struct source_ngran_node_to_target_ngran_node_transparent_container_s { - bool ext = false; - bool pdu_session_res_info_list_present = false; - bool erab_info_list_present = false; - bool idx_to_rfsp_present = false; - bool ie_exts_present = false; - unbounded_octstring rrc_container; - pdu_session_res_info_list_l pdu_session_res_info_list; - erab_info_list_l erab_info_list; - ngran_cgi_c target_cell_id; - uint16_t idx_to_rfsp = 1; - ue_history_info_l uehistory_info; + bool ext = false; + bool idx_to_rfsp_present = false; + bool ie_exts_present = false; + unbounded_octstring rrc_container; + pdu_session_res_info_list_l pdu_session_res_info_list; + erab_info_list_l erab_info_list; + ngran_cgi_c target_cell_id; + uint16_t idx_to_rfsp = 1; + ue_history_info_l uehistory_info; source_ngran_node_to_target_ngran_node_transparent_container_ext_ies_container ie_exts; // ... diff --git a/lib/include/srsran/asn1/rrc.h b/lib/include/srsran/asn1/rrc.h index 84e22f6b6..32b415b3b 100644 --- a/lib/include/srsran/asn1/rrc.h +++ b/lib/include/srsran/asn1/rrc.h @@ -169,7 +169,7 @@ struct bcch_dl_sch_msg_mbms_s { }; // ThresholdEUTRA-v1250 ::= INTEGER (0..97) -using thres_eutra_v1250 = uint8_t; +using thres_eutra_v1250 = integer; // MBMS-SessionInfo-r9 ::= SEQUENCE struct mbms_session_info_r9_s { diff --git a/lib/include/srsran/asn1/rrc_nr.h b/lib/include/srsran/asn1/rrc_nr.h index 16d5d0f51..86c4106a6 100644 --- a/lib/include/srsran/asn1/rrc_nr.h +++ b/lib/include/srsran/asn1/rrc_nr.h @@ -436,8 +436,7 @@ struct eutra_freq_neigh_cell_info_s { // EUTRA-MultiBandInfo ::= SEQUENCE struct eutra_multi_band_info_s { - bool eutra_ns_pmax_list_present = false; - uint16_t eutra_freq_band_ind = 1; + uint16_t eutra_freq_band_ind = 1; eutra_ns_pmax_list_l eutra_ns_pmax_list; // sequence methods @@ -508,7 +507,6 @@ struct inter_freq_neigh_cell_info_s { // NR-MultiBandInfo ::= SEQUENCE struct nr_multi_band_info_s { bool freq_band_ind_nr_present = false; - bool nr_ns_pmax_list_present = false; uint16_t freq_band_ind_nr = 1; nr_ns_pmax_list_l nr_ns_pmax_list; @@ -680,12 +678,10 @@ struct ctrl_res_set_s { using tci_states_pdcch_to_release_list_l_ = dyn_array; // member variables - bool ext = false; - bool tci_states_pdcch_to_add_list_present = false; - bool tci_states_pdcch_to_release_list_present = false; - bool tci_present_in_dci_present = false; - bool pdcch_dmrs_scrambling_id_present = false; - uint8_t ctrl_res_set_id = 0; + bool ext = false; + bool tci_present_in_dci_present = false; + bool pdcch_dmrs_scrambling_id_present = false; + uint8_t ctrl_res_set_id = 0; fixed_bitstring<45> freq_domain_res; uint8_t dur = 1; cce_reg_map_type_c_ cce_reg_map_type; @@ -1503,13 +1499,10 @@ struct carrier_freq_eutra_s { }; // member variables - bool eutra_multi_band_info_list_present = false; - bool eutra_freq_neigh_cell_list_present = false; - bool eutra_black_cell_list_present = false; - bool cell_resel_prio_present = false; - bool cell_resel_sub_prio_present = false; - bool thresh_x_q_present = false; - uint32_t carrier_freq = 0; + bool cell_resel_prio_present = false; + bool cell_resel_sub_prio_present = false; + bool thresh_x_q_present = false; + uint32_t carrier_freq = 0; eutra_multi_band_info_list_l eutra_multi_band_info_list; eutra_freq_neigh_cell_list_l eutra_freq_neigh_cell_list; eutra_freq_black_cell_list_l eutra_black_cell_list; @@ -1539,8 +1532,6 @@ struct inter_freq_carrier_freq_info_s { // member variables bool ext = false; - bool freq_band_list_present = false; - bool freq_band_list_sul_present = false; bool nrof_ss_blocks_to_average_present = false; bool abs_thresh_ss_blocks_consolidation_present = false; bool smtc_present = false; @@ -1554,8 +1545,6 @@ struct inter_freq_carrier_freq_info_s { bool cell_resel_prio_present = false; bool cell_resel_sub_prio_present = false; bool q_offset_freq_present = false; - bool inter_freq_neigh_cell_list_present = false; - bool inter_freq_black_cell_list_present = false; uint32_t dl_carrier_freq = 0; multi_freq_band_list_nr_sib_l freq_band_list; multi_freq_band_list_nr_sib_l freq_band_list_sul; @@ -1784,7 +1773,6 @@ struct pdcch_cfg_common_s { bool ctrl_res_set_zero_present = false; bool common_ctrl_res_set_present = false; bool search_space_zero_present = false; - bool common_search_space_list_present = false; bool search_space_sib1_present = false; bool search_space_other_sys_info_present = false; bool paging_search_space_present = false; @@ -1809,8 +1797,7 @@ struct pdcch_cfg_common_s { // PDSCH-ConfigCommon ::= SEQUENCE struct pdsch_cfg_common_s { - bool ext = false; - bool pdsch_time_domain_alloc_list_present = false; + bool ext = false; pdsch_time_domain_res_alloc_list_l pdsch_time_domain_alloc_list; // ... @@ -1862,7 +1849,6 @@ struct pucch_cfg_common_s { struct pusch_cfg_common_s { bool ext = false; bool group_hop_enabled_transform_precoding_present = false; - bool pusch_time_domain_alloc_list_present = false; bool msg3_delta_preamb_present = false; bool p0_nominal_with_grant_present = false; pusch_time_domain_res_alloc_list_l pusch_time_domain_alloc_list; @@ -2329,7 +2315,6 @@ struct freq_info_ul_sib_s { // member variables bool ext = false; - bool freq_band_list_present = false; bool absolute_freq_point_a_present = false; bool p_max_present = false; bool freq_shift7p5khz_present = false; @@ -2890,22 +2875,20 @@ struct sib2_s { // ... }; struct intra_freq_cell_resel_info_s_ { - bool ext = false; - bool q_rx_lev_min_sul_present = false; - bool q_qual_min_present = false; - bool s_intra_search_q_present = false; - bool freq_band_list_present = false; - bool freq_band_list_sul_present = false; - bool p_max_present = false; - bool smtc_present = false; - bool ss_rssi_meas_present = false; - bool ssb_to_measure_present = false; - int8_t q_rx_lev_min = -70; - int8_t q_rx_lev_min_sul = -70; - int8_t q_qual_min = -43; - uint8_t s_intra_search_p = 0; - uint8_t s_intra_search_q = 0; - uint8_t t_resel_nr = 0; + bool ext = false; + bool q_rx_lev_min_sul_present = false; + bool q_qual_min_present = false; + bool s_intra_search_q_present = false; + bool p_max_present = false; + bool smtc_present = false; + bool ss_rssi_meas_present = false; + bool ssb_to_measure_present = false; + int8_t q_rx_lev_min = -70; + int8_t q_rx_lev_min_sul = -70; + int8_t q_qual_min = -43; + uint8_t s_intra_search_p = 0; + uint8_t s_intra_search_q = 0; + uint8_t t_resel_nr = 0; multi_freq_band_list_nr_sib_l freq_band_list; multi_freq_band_list_nr_sib_l freq_band_list_sul; int8_t p_max = -30; @@ -2938,10 +2921,7 @@ struct sib2_s { // SIB3 ::= SEQUENCE struct sib3_s { - bool ext = false; - bool intra_freq_neigh_cell_list_present = false; - bool intra_freq_black_cell_list_present = false; - bool late_non_crit_ext_present = false; + bool ext = false; intra_freq_neigh_cell_list_l intra_freq_neigh_cell_list; intra_freq_black_cell_list_l intra_freq_black_cell_list; dyn_octstring late_non_crit_ext; @@ -2955,8 +2935,7 @@ struct sib3_s { // SIB4 ::= SEQUENCE struct sib4_s { - bool ext = false; - bool late_non_crit_ext_present = false; + bool ext = false; inter_freq_carrier_freq_list_l inter_freq_carrier_freq_list; dyn_octstring late_non_crit_ext; // ... @@ -2969,10 +2948,8 @@ struct sib4_s { // SIB5 ::= SEQUENCE struct sib5_s { - bool ext = false; - bool carrier_freq_list_eutra_present = false; - bool t_resel_eutra_sf_present = false; - bool late_non_crit_ext_present = false; + bool ext = false; + bool t_resel_eutra_sf_present = false; carrier_freq_list_eutra_l carrier_freq_list_eutra; uint8_t t_resel_eutra = 0; speed_state_scale_factors_s t_resel_eutra_sf; @@ -2987,8 +2964,7 @@ struct sib5_s { // SIB6 ::= SEQUENCE struct sib6_s { - bool ext = false; - bool late_non_crit_ext_present = false; + bool ext = false; fixed_bitstring<16> msg_id; fixed_bitstring<16> serial_num; fixed_octstring<2> warning_type; @@ -3013,7 +2989,6 @@ struct sib7_s { // member variables bool ext = false; bool data_coding_scheme_present = false; - bool late_non_crit_ext_present = false; fixed_bitstring<16> msg_id; fixed_bitstring<16> serial_num; warning_msg_segment_type_e_ warning_msg_segment_type; @@ -3039,10 +3014,8 @@ struct sib8_s { typedef enumerated warning_msg_segment_type_e_; // member variables - bool ext = false; - bool data_coding_scheme_present = false; - bool warning_area_coordinates_segment_present = false; - bool late_non_crit_ext_present = false; + bool ext = false; + bool data_coding_scheme_present = false; fixed_bitstring<16> msg_id; fixed_bitstring<16> serial_num; warning_msg_segment_type_e_ warning_msg_segment_type; @@ -3072,9 +3045,8 @@ struct sib9_s { }; // member variables - bool ext = false; - bool time_info_present = false; - bool late_non_crit_ext_present = false; + bool ext = false; + bool time_info_present = false; time_info_s_ time_info; dyn_octstring late_non_crit_ext; // ... @@ -3475,8 +3447,7 @@ struct sys_info_ies_s { using sib_type_and_info_l_ = dyn_array; // member variables - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; sib_type_and_info_l_ sib_type_and_info; dyn_octstring late_non_crit_ext; @@ -3641,8 +3612,6 @@ struct sib1_s { }; // member variables - bool uac_barr_for_common_present = false; - bool uac_barr_per_plmn_list_present = false; bool uac_access_category1_sel_assist_info_present = false; uac_barr_per_cat_list_l uac_barr_for_common; uac_barr_per_plmn_list_l uac_barr_per_plmn_list; @@ -3660,7 +3629,6 @@ struct sib1_s { bool ue_timers_and_consts_present = false; bool uac_barr_info_present = false; bool use_full_resume_id_present = false; - bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; cell_sel_info_s_ cell_sel_info; cell_access_related_info_s cell_access_related_info; @@ -4146,10 +4114,8 @@ struct sdap_cfg_s { using mapped_qos_flows_to_release_l_ = dyn_array; // member variables - bool ext = false; - bool mapped_qos_flows_to_add_present = false; - bool mapped_qos_flows_to_release_present = false; - uint16_t pdu_session = 0; + bool ext = false; + uint16_t pdu_session = 0; sdap_hdr_dl_e_ sdap_hdr_dl; sdap_hdr_ul_e_ sdap_hdr_ul; bool default_drb = false; @@ -4295,12 +4261,9 @@ struct security_cfg_s { // RadioBearerConfig ::= SEQUENCE struct radio_bearer_cfg_s { - bool ext = false; - bool srb_to_add_mod_list_present = false; - bool srb3_to_release_present = false; - bool drb_to_add_mod_list_present = false; - bool drb_to_release_list_present = false; - bool security_cfg_present = false; + bool ext = false; + bool srb3_to_release_present = false; + bool security_cfg_present = false; srb_to_add_mod_list_l srb_to_add_mod_list; drb_to_add_mod_list_l drb_to_add_mod_list; drb_to_release_list_l drb_to_release_list; @@ -4315,10 +4278,9 @@ struct radio_bearer_cfg_s { // RRCReject-IEs ::= SEQUENCE struct rrc_reject_ies_s { - bool wait_time_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - uint8_t wait_time = 1; + bool wait_time_present = false; + bool non_crit_ext_present = false; + uint8_t wait_time = 1; dyn_octstring late_non_crit_ext; // sequence methods @@ -4329,8 +4291,7 @@ struct rrc_reject_ies_s { // RRCSetup-IEs ::= SEQUENCE struct rrc_setup_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; radio_bearer_cfg_s radio_bearer_cfg; dyn_octstring master_cell_group; dyn_octstring late_non_crit_ext; @@ -5462,7 +5423,6 @@ struct ran_area_cfg_s { using ran_area_code_list_l_ = bounded_array; // member variables - bool ran_area_code_list_present = false; fixed_bitstring<24> tac; ran_area_code_list_l_ ran_area_code_list; @@ -5555,7 +5515,6 @@ struct ssb_mtc2_s { typedef enumerated periodicity_e_; // member variables - bool pci_list_present = false; pci_list_l_ pci_list; periodicity_e_ periodicity; @@ -5632,13 +5591,9 @@ struct meas_obj_eutra_s { using black_cells_to_add_mod_list_eutran_l_ = dyn_array; // member variables - bool ext = false; - bool cells_to_rem_list_eutran_present = false; - bool cells_to_add_mod_list_eutran_present = false; - bool black_cells_to_rem_list_eutran_present = false; - bool black_cells_to_add_mod_list_eutran_present = false; - bool eutra_q_offset_range_present = false; - uint32_t carrier_freq = 0; + bool ext = false; + bool eutra_q_offset_range_present = false; + uint32_t carrier_freq = 0; eutra_allowed_meas_bw_e allowed_meas_bw; eutra_cell_idx_list_l cells_to_rem_list_eutran; cells_to_add_mod_list_eutran_l_ cells_to_add_mod_list_eutran; @@ -5679,12 +5634,6 @@ struct meas_obj_nr_s { bool abs_thresh_csi_rs_consolidation_present = false; bool nrof_ss_blocks_to_average_present = false; bool nrof_csi_rs_res_to_average_present = false; - bool cells_to_rem_list_present = false; - bool cells_to_add_mod_list_present = false; - bool black_cells_to_rem_list_present = false; - bool black_cells_to_add_mod_list_present = false; - bool white_cells_to_rem_list_present = false; - bool white_cells_to_add_mod_list_present = false; uint32_t ssb_freq = 0; subcarrier_spacing_e ssb_subcarrier_spacing; ssb_mtc_s smtc1; @@ -6170,7 +6119,6 @@ typedef enumerated rat_type_e; // RRCReconfiguration-v1560-IEs ::= SEQUENCE struct rrc_recfg_v1560_ies_s { bool mrdc_secondary_cell_group_cfg_present = false; - bool radio_bearer_cfg2_present = false; bool sk_counter_present = false; bool non_crit_ext_present = false; setup_release_c mrdc_secondary_cell_group_cfg; @@ -6280,7 +6228,6 @@ using freq_prio_list_nr_l = dyn_array; // MasterKeyUpdate ::= SEQUENCE struct master_key_upd_s { bool ext = false; - bool nas_container_present = false; bool key_set_change_ind = false; uint8_t next_hop_chaining_count = 0; dyn_octstring nas_container; @@ -6411,8 +6358,7 @@ struct quant_cfg_s { using quant_cfg_nr_list_l_ = dyn_array; // member variables - bool ext = false; - bool quant_cfg_nr_list_present = false; + bool ext = false; quant_cfg_nr_list_l_ quant_cfg_nr_list; // ... // group 0 @@ -6517,8 +6463,7 @@ using report_cfg_to_rem_list_l = dyn_array; // UE-CapabilityRAT-Request ::= SEQUENCE struct ue_cap_rat_request_s { - bool ext = false; - bool cap_request_filt_present = false; + bool ext = false; rat_type_e rat_type; dyn_octstring cap_request_filt; // ... @@ -6541,10 +6486,8 @@ struct cell_resel_priorities_s { typedef enumerated t320_e_; // member variables - bool ext = false; - bool freq_prio_list_eutra_present = false; - bool freq_prio_list_nr_present = false; - bool t320_present = false; + bool ext = false; + bool t320_present = false; freq_prio_list_eutra_l freq_prio_list_eutra; freq_prio_list_nr_l freq_prio_list_nr; t320_e_ t320; @@ -6611,17 +6554,11 @@ struct meas_cfg_s { }; // member variables - bool ext = false; - bool meas_obj_to_rem_list_present = false; - bool meas_obj_to_add_mod_list_present = false; - bool report_cfg_to_rem_list_present = false; - bool report_cfg_to_add_mod_list_present = false; - bool meas_id_to_rem_list_present = false; - bool meas_id_to_add_mod_list_present = false; - bool s_measure_cfg_present = false; - bool quant_cfg_present = false; - bool meas_gap_cfg_present = false; - bool meas_gap_sharing_cfg_present = false; + bool ext = false; + bool s_measure_cfg_present = false; + bool quant_cfg_present = false; + bool meas_gap_cfg_present = false; + bool meas_gap_sharing_cfg_present = false; meas_obj_to_rem_list_l meas_obj_to_rem_list; meas_obj_to_add_mod_list_l meas_obj_to_add_mod_list; report_cfg_to_rem_list_l report_cfg_to_rem_list; @@ -6645,14 +6582,10 @@ struct rrc_recfg_v1530_ies_s { using ded_nas_msg_list_l_ = bounded_array; // member variables - bool master_cell_group_present = false; - bool full_cfg_present = false; - bool ded_nas_msg_list_present = false; - bool master_key_upd_present = false; - bool ded_sib1_delivery_present = false; - bool ded_sys_info_delivery_present = false; - bool other_cfg_present = false; - bool non_crit_ext_present = false; + bool full_cfg_present = false; + bool master_key_upd_present = false; + bool other_cfg_present = false; + bool non_crit_ext_present = false; dyn_octstring master_cell_group; ded_nas_msg_list_l_ ded_nas_msg_list; master_key_upd_s master_key_upd; @@ -6681,9 +6614,8 @@ struct rrc_release_v1540_ies_s { // RRCResume-v1560-IEs ::= SEQUENCE struct rrc_resume_v1560_ies_s { - bool radio_bearer_cfg2_present = false; - bool sk_counter_present = false; - bool non_crit_ext_present = false; + bool sk_counter_present = false; + bool non_crit_ext_present = false; dyn_octstring radio_bearer_cfg2; uint32_t sk_counter = 0; @@ -6779,8 +6711,7 @@ using ue_cap_rat_request_list_l = dyn_array; // CounterCheck-IEs ::= SEQUENCE struct counter_check_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; drb_count_msb_info_list_l drb_count_msb_info_list; dyn_octstring late_non_crit_ext; @@ -6792,9 +6723,7 @@ struct counter_check_ies_s { // DLInformationTransfer-IEs ::= SEQUENCE struct dl_info_transfer_ies_s { - bool ded_nas_msg_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring ded_nas_msg; dyn_octstring late_non_crit_ext; @@ -6814,9 +6743,7 @@ struct mob_from_nr_cmd_ies_s { typedef enumerated target_rat_type_e_; // member variables - bool nas_security_param_from_nr_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; target_rat_type_e_ target_rat_type; dyn_octstring target_rat_msg_container; dyn_octstring nas_security_param_from_nr; @@ -6830,11 +6757,9 @@ struct mob_from_nr_cmd_ies_s { // RRCReconfiguration-IEs ::= SEQUENCE struct rrc_recfg_ies_s { - bool radio_bearer_cfg_present = false; - bool secondary_cell_group_present = false; - bool meas_cfg_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool radio_bearer_cfg_present = false; + bool meas_cfg_present = false; + bool non_crit_ext_present = false; radio_bearer_cfg_s radio_bearer_cfg; dyn_octstring secondary_cell_group; meas_cfg_s meas_cfg; @@ -6849,9 +6774,8 @@ struct rrc_recfg_ies_s { // RRCReestablishment-IEs ::= SEQUENCE struct rrc_reest_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - uint8_t next_hop_chaining_count = 0; + bool non_crit_ext_present = false; + uint8_t next_hop_chaining_count = 0; dyn_octstring late_non_crit_ext; // sequence methods @@ -6888,7 +6812,6 @@ struct rrc_release_ies_s { bool cell_resel_priorities_present = false; bool suspend_cfg_present = false; bool depriorit_req_present = false; - bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; redirected_carrier_info_c redirected_carrier_info; cell_resel_priorities_s cell_resel_priorities; @@ -6905,12 +6828,10 @@ struct rrc_release_ies_s { // RRCResume-IEs ::= SEQUENCE struct rrc_resume_ies_s { - bool radio_bearer_cfg_present = false; - bool master_cell_group_present = false; - bool meas_cfg_present = false; - bool full_cfg_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool radio_bearer_cfg_present = false; + bool meas_cfg_present = false; + bool full_cfg_present = false; + bool non_crit_ext_present = false; radio_bearer_cfg_s radio_bearer_cfg; dyn_octstring master_cell_group; meas_cfg_s meas_cfg; @@ -6925,8 +6846,7 @@ struct rrc_resume_ies_s { // SecurityModeCommand-IEs ::= SEQUENCE struct security_mode_cmd_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; security_cfg_smc_s security_cfg_smc; dyn_octstring late_non_crit_ext; @@ -6938,8 +6858,6 @@ struct security_mode_cmd_ies_s { // UECapabilityEnquiry-IEs ::= SEQUENCE struct ue_cap_enquiry_ies_s { - bool late_non_crit_ext_present = false; - bool ue_cap_enquiry_ext_present = false; ue_cap_rat_request_list_l ue_cap_rat_request_list; dyn_octstring late_non_crit_ext; dyn_octstring ue_cap_enquiry_ext; @@ -7640,9 +7558,7 @@ using paging_record_list_l = dyn_array; // Paging ::= SEQUENCE struct paging_s { - bool paging_record_list_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; paging_record_list_l paging_record_list; dyn_octstring late_non_crit_ext; @@ -8361,10 +8277,8 @@ struct cgi_info_nr_s { }; // member variables - bool ext = false; - bool plmn_id_info_list_present = false; - bool freq_band_list_present = false; - bool no_sib1_present = false; + bool ext = false; + bool no_sib1_present = false; plmn_id_info_list_l plmn_id_info_list; multi_freq_band_list_nr_l freq_band_list; no_sib1_s_ no_sib1; @@ -8417,17 +8331,14 @@ struct cgi_info_eutra_s { using cgi_info_epc_list_l_ = dyn_array; // member variables - bool cgi_info_epc_list_present = false; cell_access_related_info_eutra_epc_s cgi_info_epc_legacy; cgi_info_epc_list_l_ cgi_info_epc_list; }; using cgi_info_minus5_gc_l_ = dyn_array; // member variables - bool cgi_info_epc_present = false; - bool cgi_info_minus5_gc_present = false; - bool multi_band_info_list_present = false; - bool freq_band_ind_prio_present = false; + bool cgi_info_epc_present = false; + bool freq_band_ind_prio_present = false; cgi_info_epc_s_ cgi_info_epc; cgi_info_minus5_gc_l_ cgi_info_minus5_gc; uint16_t freq_band_ind = 1; @@ -8464,8 +8375,6 @@ struct meas_result_nr_s { meas_quant_results_s results_csi_rs_cell; }; struct rs_idx_results_s_ { - bool results_ssb_idxes_present = false; - bool results_csi_rs_idxes_present = false; results_per_ssb_idx_list_l results_ssb_idxes; results_per_csi_rs_idx_list_l results_csi_rs_idxes; }; @@ -8572,13 +8481,12 @@ struct meas_result2_eutra_s { // MeasResult2NR ::= SEQUENCE struct meas_result2_nr_s { - bool ext = false; - bool ssb_freq_present = false; - bool ref_freq_csi_rs_present = false; - bool meas_result_serving_cell_present = false; - bool meas_result_neigh_cell_list_nr_present = false; - uint32_t ssb_freq = 0; - uint32_t ref_freq_csi_rs = 0; + bool ext = false; + bool ssb_freq_present = false; + bool ref_freq_csi_rs_present = false; + bool meas_result_serving_cell_present = false; + uint32_t ssb_freq = 0; + uint32_t ref_freq_csi_rs = 0; meas_result_nr_s meas_result_serving_cell; meas_result_list_nr_l meas_result_neigh_cell_list_nr; // ... @@ -8924,9 +8832,7 @@ struct fail_report_scg_s { typedef enumerated fail_type_e_; // member variables - bool ext = false; - bool meas_result_freq_list_present = false; - bool meas_result_scg_fail_present = false; + bool ext = false; fail_type_e_ fail_type; meas_result_freq_list_l meas_result_freq_list; dyn_octstring meas_result_scg_fail; @@ -8960,9 +8866,7 @@ struct fail_report_scg_eutra_s { typedef enumerated fail_type_e_; // member variables - bool ext = false; - bool meas_result_freq_list_mrdc_present = false; - bool meas_result_scg_fail_mrdc_present = false; + bool ext = false; fail_type_e_ fail_type; meas_result_freq_list_fail_mrdc_l meas_result_freq_list_mrdc; dyn_octstring meas_result_scg_fail_mrdc; @@ -9083,8 +8987,7 @@ struct meas_results_s { // RRCReconfigurationComplete-v1530-IEs ::= SEQUENCE struct rrc_recfg_complete_v1530_ies_s { - bool ul_tx_direct_current_list_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; ul_tx_direct_current_list_l ul_tx_direct_current_list; rrc_recfg_complete_v1560_ies_s non_crit_ext; @@ -9158,8 +9061,7 @@ private: // SCGFailureInformation-v1590-IEs ::= SEQUENCE struct scg_fail_info_v1590_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // sequence methods @@ -9170,8 +9072,7 @@ struct scg_fail_info_v1590_ies_s { // SCGFailureInformationEUTRA-v1590-IEs ::= SEQUENCE struct scg_fail_info_eutra_v1590_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // sequence methods @@ -9197,8 +9098,7 @@ struct ueassist_info_v1540_ies_s { // CounterCheckResponse-IEs ::= SEQUENCE struct counter_check_resp_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; drb_count_info_list_l drb_count_info_list; dyn_octstring late_non_crit_ext; @@ -9211,7 +9111,6 @@ struct counter_check_resp_ies_s { // FailureInformation-IEs ::= SEQUENCE struct fail_info_ies_s { bool fail_info_rlc_bearer_present = false; - bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; fail_info_rlc_bearer_s fail_info_rlc_bearer; dyn_octstring late_non_crit_ext; @@ -9224,8 +9123,7 @@ struct fail_info_ies_s { // LocationMeasurementIndication-IEs ::= SEQUENCE struct location_meas_ind_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; setup_release_c meas_ind; dyn_octstring late_non_crit_ext; @@ -9237,8 +9135,7 @@ struct location_meas_ind_ies_s { // MeasurementReport-IEs ::= SEQUENCE struct meas_report_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; meas_results_s meas_results; dyn_octstring late_non_crit_ext; @@ -9250,8 +9147,7 @@ struct meas_report_ies_s { // RRCReconfigurationComplete-IEs ::= SEQUENCE struct rrc_recfg_complete_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring late_non_crit_ext; rrc_recfg_complete_v1530_ies_s non_crit_ext; @@ -9263,8 +9159,7 @@ struct rrc_recfg_complete_ies_s { // RRCReestablishmentComplete-IEs ::= SEQUENCE struct rrc_reest_complete_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // sequence methods @@ -9275,11 +9170,8 @@ struct rrc_reest_complete_ies_s { // RRCResumeComplete-IEs ::= SEQUENCE struct rrc_resume_complete_ies_s { - bool ded_nas_msg_present = false; - bool sel_plmn_id_present = false; - bool ul_tx_direct_current_list_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool sel_plmn_id_present = false; + bool non_crit_ext_present = false; dyn_octstring ded_nas_msg; uint8_t sel_plmn_id = 1; ul_tx_direct_current_list_l ul_tx_direct_current_list; @@ -9352,9 +9244,7 @@ struct rrc_setup_complete_ies_s { // member variables bool registered_amf_present = false; bool guami_type_present = false; - bool s_nssai_list_present = false; bool ng_minus5_g_s_tmsi_value_present = false; - bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; uint8_t sel_plmn_id = 1; registered_amf_s registered_amf; @@ -9398,8 +9288,7 @@ struct scg_fail_info_eutra_ies_s { // SecurityModeComplete-IEs ::= SEQUENCE struct security_mode_complete_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // sequence methods @@ -9410,8 +9299,7 @@ struct security_mode_complete_ies_s { // SecurityModeFailure-IEs ::= SEQUENCE struct security_mode_fail_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // sequence methods @@ -9423,7 +9311,6 @@ struct security_mode_fail_ies_s { // UEAssistanceInformation-IEs ::= SEQUENCE struct ueassist_info_ies_s { bool delay_budget_report_present = false; - bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; delay_budget_report_c delay_budget_report; dyn_octstring late_non_crit_ext; @@ -9438,7 +9325,6 @@ struct ueassist_info_ies_s { // UECapabilityInformation-IEs ::= SEQUENCE struct ue_cap_info_ies_s { bool ue_cap_rat_container_list_present = false; - bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; ue_cap_rat_container_list_l ue_cap_rat_container_list; dyn_octstring late_non_crit_ext; @@ -9451,9 +9337,7 @@ struct ue_cap_info_ies_s { // ULInformationTransfer-IEs ::= SEQUENCE struct ul_info_transfer_ies_s { - bool ded_nas_msg_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring ded_nas_msg; dyn_octstring late_non_crit_ext; @@ -9465,10 +9349,7 @@ struct ul_info_transfer_ies_s { // ULInformationTransferMRDC-IEs ::= SEQUENCE struct ul_info_transfer_mrdc_ies_s { - bool ul_dcch_msg_nr_present = false; - bool ul_dcch_msg_eutra_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; dyn_octstring ul_dcch_msg_nr; dyn_octstring ul_dcch_msg_eutra; dyn_octstring late_non_crit_ext; @@ -10532,10 +10413,9 @@ struct bfr_csirs_res_s { using ra_occasion_list_l_ = dyn_array; // member variables - bool ext = false; - bool ra_occasion_list_present = false; - bool ra_preamb_idx_present = false; - uint8_t csi_rs = 0; + bool ext = false; + bool ra_preamb_idx_present = false; + uint8_t csi_rs = 0; ra_occasion_list_l_ ra_occasion_list; uint8_t ra_preamb_idx = 0; // ... @@ -11548,15 +11428,11 @@ struct pdcch_cfg_s { using search_spaces_to_release_list_l_ = bounded_array; // member variables - bool ext = false; - bool ctrl_res_set_to_add_mod_list_present = false; - bool ctrl_res_set_to_release_list_present = false; - bool search_spaces_to_add_mod_list_present = false; - bool search_spaces_to_release_list_present = false; - bool dl_preemption_present = false; - bool tpc_pusch_present = false; - bool tpc_pucch_present = false; - bool tpc_srs_present = false; + bool ext = false; + bool dl_preemption_present = false; + bool tpc_pusch_present = false; + bool tpc_pucch_present = false; + bool tpc_srs_present = false; ctrl_res_set_to_add_mod_list_l_ ctrl_res_set_to_add_mod_list; ctrl_res_set_to_release_list_l_ ctrl_res_set_to_release_list; search_spaces_to_add_mod_list_l_ search_spaces_to_add_mod_list; @@ -11719,35 +11595,23 @@ struct pdsch_cfg_s { using sp_zp_csi_rs_res_sets_to_release_list_l_ = bounded_array; // member variables - bool ext = false; - bool data_scrambling_id_pdsch_present = false; - bool dmrs_dl_for_pdsch_map_type_a_present = false; - bool dmrs_dl_for_pdsch_map_type_b_present = false; - bool tci_states_to_add_mod_list_present = false; - bool tci_states_to_release_list_present = false; - bool vrb_to_prb_interleaver_present = false; - bool pdsch_time_domain_alloc_list_present = false; - bool pdsch_aggregation_factor_present = false; - bool rate_match_pattern_to_add_mod_list_present = false; - bool rate_match_pattern_to_release_list_present = false; - bool rate_match_pattern_group1_present = false; - bool rate_match_pattern_group2_present = false; - bool mcs_table_present = false; - bool max_nrof_code_words_sched_by_dci_present = false; - bool zp_csi_rs_res_to_add_mod_list_present = false; - bool zp_csi_rs_res_to_release_list_present = false; - bool aperiodic_zp_csi_rs_res_sets_to_add_mod_list_present = false; - bool aperiodic_zp_csi_rs_res_sets_to_release_list_present = false; - bool sp_zp_csi_rs_res_sets_to_add_mod_list_present = false; - bool sp_zp_csi_rs_res_sets_to_release_list_present = false; - bool p_zp_csi_rs_res_set_present = false; - uint16_t data_scrambling_id_pdsch = 0; - setup_release_c dmrs_dl_for_pdsch_map_type_a; - setup_release_c dmrs_dl_for_pdsch_map_type_b; - tci_states_to_add_mod_list_l_ tci_states_to_add_mod_list; - tci_states_to_release_list_l_ tci_states_to_release_list; - vrb_to_prb_interleaver_e_ vrb_to_prb_interleaver; - res_alloc_e_ res_alloc; + bool ext = false; + bool data_scrambling_id_pdsch_present = false; + bool dmrs_dl_for_pdsch_map_type_a_present = false; + bool dmrs_dl_for_pdsch_map_type_b_present = false; + bool vrb_to_prb_interleaver_present = false; + bool pdsch_time_domain_alloc_list_present = false; + bool pdsch_aggregation_factor_present = false; + bool mcs_table_present = false; + bool max_nrof_code_words_sched_by_dci_present = false; + bool p_zp_csi_rs_res_set_present = false; + uint16_t data_scrambling_id_pdsch = 0; + setup_release_c dmrs_dl_for_pdsch_map_type_a; + setup_release_c dmrs_dl_for_pdsch_map_type_b; + tci_states_to_add_mod_list_l_ tci_states_to_add_mod_list; + tci_states_to_release_list_l_ tci_states_to_release_list; + vrb_to_prb_interleaver_e_ vrb_to_prb_interleaver; + res_alloc_e_ res_alloc; setup_release_c > pdsch_time_domain_alloc_list; pdsch_aggregation_factor_e_ pdsch_aggregation_factor; rate_match_pattern_to_add_mod_list_l_ rate_match_pattern_to_add_mod_list; @@ -11795,11 +11659,9 @@ struct radio_link_monitoring_cfg_s { typedef enumerated beam_fail_detection_timer_e_; // member variables - bool ext = false; - bool fail_detection_res_to_add_mod_list_present = false; - bool fail_detection_res_to_release_list_present = false; - bool beam_fail_instance_max_count_present = false; - bool beam_fail_detection_timer_present = false; + bool ext = false; + bool beam_fail_instance_max_count_present = false; + bool beam_fail_detection_timer_present = false; fail_detection_res_to_add_mod_list_l_ fail_detection_res_to_add_mod_list; fail_detection_res_to_release_list_l_ fail_detection_res_to_release_list; beam_fail_instance_max_count_e_ beam_fail_instance_max_count; @@ -12740,8 +12602,6 @@ struct pucch_pwr_ctrl_s { bool delta_f_pucch_f2_present = false; bool delta_f_pucch_f3_present = false; bool delta_f_pucch_f4_present = false; - bool p0_set_present = false; - bool pathloss_ref_rss_present = false; bool two_pucch_pc_adjustment_states_present = false; int8_t delta_f_pucch_f0 = -16; int8_t delta_f_pucch_f1 = -16; @@ -12972,16 +12832,11 @@ struct pusch_pwr_ctrl_s { using sri_pusch_map_to_release_list_l_ = bounded_array; // member variables - bool tpc_accumulation_present = false; - bool msg3_alpha_present = false; - bool p0_nominal_without_grant_present = false; - bool p0_alpha_sets_present = false; - bool pathloss_ref_rs_to_add_mod_list_present = false; - bool pathloss_ref_rs_to_release_list_present = false; - bool two_pusch_pc_adjustment_states_present = false; - bool delta_mcs_present = false; - bool sri_pusch_map_to_add_mod_list_present = false; - bool sri_pusch_map_to_release_list_present = false; + bool tpc_accumulation_present = false; + bool msg3_alpha_present = false; + bool p0_nominal_without_grant_present = false; + bool two_pusch_pc_adjustment_states_present = false; + bool delta_mcs_present = false; alpha_e msg3_alpha; int16_t p0_nominal_without_grant = -202; p0_alpha_sets_l_ p0_alpha_sets; @@ -13394,7 +13249,6 @@ struct srs_res_set_s { // member variables bool ext = false; - bool srs_res_id_list_present = false; bool alpha_present = false; bool p0_present = false; bool pathloss_ref_rs_present = false; @@ -13705,7 +13559,6 @@ struct beam_fail_recovery_cfg_s { bool root_seq_idx_bfr_present = false; bool rach_cfg_bfr_present = false; bool rsrp_thres_ssb_present = false; - bool candidate_beam_rs_list_present = false; bool ssb_per_rach_occasion_present = false; bool ra_ssb_occasion_mask_idx_present = false; bool recovery_search_space_id_present = false; @@ -13912,22 +13765,12 @@ struct pucch_cfg_s { using spatial_relation_info_to_release_list_l_ = bounded_array; // member variables - bool ext = false; - bool res_set_to_add_mod_list_present = false; - bool res_set_to_release_list_present = false; - bool res_to_add_mod_list_present = false; - bool res_to_release_list_present = false; - bool format1_present = false; - bool format2_present = false; - bool format3_present = false; - bool format4_present = false; - bool sched_request_res_to_add_mod_list_present = false; - bool sched_request_res_to_release_list_present = false; - bool multi_csi_pucch_res_list_present = false; - bool dl_data_to_ul_ack_present = false; - bool spatial_relation_info_to_add_mod_list_present = false; - bool spatial_relation_info_to_release_list_present = false; - bool pucch_pwr_ctrl_present = false; + bool ext = false; + bool format1_present = false; + bool format2_present = false; + bool format3_present = false; + bool format4_present = false; + bool pucch_pwr_ctrl_present = false; res_set_to_add_mod_list_l_ res_set_to_add_mod_list; res_set_to_release_list_l_ res_set_to_release_list; res_to_add_mod_list_l_ res_to_add_mod_list; @@ -14019,7 +13862,6 @@ struct pusch_cfg_s { bool dmrs_ul_for_pusch_map_type_b_present = false; bool pusch_pwr_ctrl_present = false; bool freq_hop_present = false; - bool freq_hop_offset_lists_present = false; bool pusch_time_domain_alloc_list_present = false; bool pusch_aggregation_factor_present = false; bool mcs_table_present = false; @@ -14062,12 +13904,8 @@ struct srs_cfg_s { using srs_res_to_add_mod_list_l_ = dyn_array; // member variables - bool ext = false; - bool srs_res_set_to_release_list_present = false; - bool srs_res_set_to_add_mod_list_present = false; - bool srs_res_to_release_list_present = false; - bool srs_res_to_add_mod_list_present = false; - bool tpc_accumulation_present = false; + bool ext = false; + bool tpc_accumulation_present = false; srs_res_set_to_release_list_l_ srs_res_set_to_release_list; srs_res_set_to_add_mod_list_l_ srs_res_set_to_add_mod_list; srs_res_to_release_list_l_ srs_res_to_release_list; @@ -15801,8 +15639,7 @@ struct csi_associated_report_cfg_info_s { using qcl_info_l_ = bounded_array; // member variables - bool qcl_info_present = false; - uint8_t res_set = 1; + uint8_t res_set = 1; qcl_info_l_ qcl_info; }; struct types_opts { @@ -17599,7 +17436,6 @@ struct csi_report_cfg_s { bool codebook_cfg_present = false; bool dummy_present = false; bool cqi_table_present = false; - bool non_pmi_port_ind_present = false; uint8_t report_cfg_id = 0; uint8_t carrier = 0; uint8_t res_for_ch_meas = 0; @@ -17634,8 +17470,7 @@ struct csi_res_cfg_s { using csi_ssb_res_set_list_l_ = std::array; // member variables - bool nzp_csi_rs_res_set_list_present = false; - bool csi_ssb_res_set_list_present = false; + bool csi_ssb_res_set_list_present = false; nzp_csi_rs_res_set_list_l_ nzp_csi_rs_res_set_list; csi_ssb_res_set_list_l_ csi_ssb_res_set_list; }; @@ -17804,20 +17639,6 @@ struct csi_meas_cfg_s { // member variables bool ext = false; - bool nzp_csi_rs_res_to_add_mod_list_present = false; - bool nzp_csi_rs_res_to_release_list_present = false; - bool nzp_csi_rs_res_set_to_add_mod_list_present = false; - bool nzp_csi_rs_res_set_to_release_list_present = false; - bool csi_im_res_to_add_mod_list_present = false; - bool csi_im_res_to_release_list_present = false; - bool csi_im_res_set_to_add_mod_list_present = false; - bool csi_im_res_set_to_release_list_present = false; - bool csi_ssb_res_set_to_add_mod_list_present = false; - bool csi_ssb_res_set_to_release_list_present = false; - bool csi_res_cfg_to_add_mod_list_present = false; - bool csi_res_cfg_to_release_list_present = false; - bool csi_report_cfg_to_add_mod_list_present = false; - bool csi_report_cfg_to_release_list_present = false; bool report_trigger_size_present = false; bool aperiodic_trigger_state_list_present = false; bool semi_persistent_on_pusch_trigger_state_list_present = false; @@ -18028,7 +17849,6 @@ struct freq_info_ul_s { // member variables bool ext = false; - bool freq_band_list_present = false; bool absolute_freq_point_a_present = false; bool add_spec_emission_present = false; bool p_max_present = false; @@ -18073,7 +17893,6 @@ struct srs_tpc_pdcch_cfg_s { using srs_cc_set_idxlist_l_ = dyn_array; // member variables - bool srs_cc_set_idxlist_present = false; srs_cc_set_idxlist_l_ srs_cc_set_idxlist; // sequence methods @@ -18087,11 +17906,10 @@ struct slot_format_combinations_per_cell_s { using slot_format_combinations_l_ = dyn_array; // member variables - bool ext = false; - bool subcarrier_spacing2_present = false; - bool slot_format_combinations_present = false; - bool position_in_dci_present = false; - uint8_t serving_cell_id = 0; + bool ext = false; + bool subcarrier_spacing2_present = false; + bool position_in_dci_present = false; + uint8_t serving_cell_id = 0; subcarrier_spacing_e subcarrier_spacing; subcarrier_spacing_e subcarrier_spacing2; slot_format_combinations_l_ slot_format_combinations; @@ -18321,8 +18139,7 @@ struct rate_match_pattern_lte_crs_s { typedef enumerated v_shift_e_; // member variables - bool mbsfn_sf_cfg_list_present = false; - uint16_t carrier_freq_dl = 0; + uint16_t carrier_freq_dl = 0; carrier_bw_dl_e_ carrier_bw_dl; eutra_mbsfn_sf_cfg_list_l mbsfn_sf_cfg_list; nrof_crs_ports_e_ nrof_crs_ports; @@ -18417,7 +18234,6 @@ struct srs_carrier_switching_s { bool ext = false; bool srs_switch_from_serv_cell_idx_present = false; bool srs_tpc_pdcch_group_present = false; - bool monitoring_cells_present = false; uint8_t srs_switch_from_serv_cell_idx = 0; srs_switch_from_carrier_e_ srs_switch_from_carrier; srs_tpc_pdcch_group_c_ srs_tpc_pdcch_group; @@ -18436,11 +18252,9 @@ struct slot_format_ind_s { using slot_format_comb_to_release_list_l_ = bounded_array; // member variables - bool ext = false; - bool slot_format_comb_to_add_mod_list_present = false; - bool slot_format_comb_to_release_list_present = false; - uint32_t sfi_rnti = 0; - uint8_t dci_payload_size = 1; + bool ext = false; + uint32_t sfi_rnti = 0; + uint8_t dci_payload_size = 1; slot_format_comb_to_add_mod_list_l_ slot_format_comb_to_add_mod_list; slot_format_comb_to_release_list_l_ slot_format_comb_to_release_list; // ... @@ -18998,20 +18812,18 @@ struct serving_cell_cfg_common_s { using rate_match_pattern_to_release_list_l_ = bounded_array; // member variables - bool ext = false; - bool pci_present = false; - bool dl_cfg_common_present = false; - bool ul_cfg_common_present = false; - bool supplementary_ul_cfg_present = false; - bool n_timing_advance_offset_present = false; - bool ssb_positions_in_burst_present = false; - bool ssb_periodicity_serving_cell_present = false; - bool lte_crs_to_match_around_present = false; - bool rate_match_pattern_to_add_mod_list_present = false; - bool rate_match_pattern_to_release_list_present = false; - bool ssb_subcarrier_spacing_present = false; - bool tdd_ul_dl_cfg_common_present = false; - uint16_t pci = 0; + bool ext = false; + bool pci_present = false; + bool dl_cfg_common_present = false; + bool ul_cfg_common_present = false; + bool supplementary_ul_cfg_present = false; + bool n_timing_advance_offset_present = false; + bool ssb_positions_in_burst_present = false; + bool ssb_periodicity_serving_cell_present = false; + bool lte_crs_to_match_around_present = false; + bool ssb_subcarrier_spacing_present = false; + bool tdd_ul_dl_cfg_common_present = false; + uint16_t pci = 0; dl_cfg_common_s dl_cfg_common; ul_cfg_common_s ul_cfg_common; ul_cfg_common_s supplementary_ul_cfg; @@ -19052,9 +18864,7 @@ struct tdd_ul_dl_cfg_ded_s { using slot_specific_cfgs_to_release_list_l_ = dyn_array; // member variables - bool ext = false; - bool slot_specific_cfgs_to_add_mod_list_present = false; - bool slot_specific_cfgs_to_release_list_present = false; + bool ext = false; slot_specific_cfgs_to_add_mod_list_l_ slot_specific_cfgs_to_add_mod_list; slot_specific_cfgs_to_release_list_l_ slot_specific_cfgs_to_release_list; // ... @@ -19110,8 +18920,6 @@ struct ul_cfg_s { // member variables bool ext = false; bool init_ul_bwp_present = false; - bool ul_bwp_to_release_list_present = false; - bool ul_bwp_to_add_mod_list_present = false; bool first_active_ul_bwp_id_present = false; bool pusch_serving_cell_cfg_present = false; bool carrier_switching_present = false; @@ -19850,8 +19658,6 @@ struct lc_ch_cfg_s { // member variables bool ext = false; - bool allowed_serving_cells_present = false; - bool allowed_scs_list_present = false; bool max_pusch_dur_present = false; bool cfgured_grant_type1_allowed_present = false; bool lc_ch_group_present = false; @@ -20157,8 +19963,6 @@ struct sched_request_cfg_s { using sched_request_to_release_list_l_ = bounded_array; // member variables - bool sched_request_to_add_mod_list_present = false; - bool sched_request_to_release_list_present = false; sched_request_to_add_mod_list_l_ sched_request_to_add_mod_list; sched_request_to_release_list_l_ sched_request_to_release_list; @@ -20253,8 +20057,6 @@ struct serving_cell_cfg_s { bool ext = false; bool tdd_ul_dl_cfg_ded_present = false; bool init_dl_bwp_present = false; - bool dl_bwp_to_release_list_present = false; - bool dl_bwp_to_add_mod_list_present = false; bool first_active_dl_bwp_id_present = false; bool bwp_inactivity_timer_present = false; bool default_dl_bwp_id_present = false; @@ -20304,8 +20106,6 @@ struct tag_cfg_s { using tag_to_add_mod_list_l_ = dyn_array; // member variables - bool tag_to_release_list_present = false; - bool tag_to_add_mod_list_present = false; tag_to_release_list_l_ tag_to_release_list; tag_to_add_mod_list_l_ tag_to_add_mod_list; @@ -20508,15 +20308,11 @@ struct cell_group_cfg_s { using scell_to_release_list_l_ = bounded_array; // member variables - bool ext = false; - bool rlc_bearer_to_add_mod_list_present = false; - bool rlc_bearer_to_release_list_present = false; - bool mac_cell_group_cfg_present = false; - bool phys_cell_group_cfg_present = false; - bool sp_cell_cfg_present = false; - bool scell_to_add_mod_list_present = false; - bool scell_to_release_list_present = false; - uint8_t cell_group_id = 0; + bool ext = false; + bool mac_cell_group_cfg_present = false; + bool phys_cell_group_cfg_present = false; + bool sp_cell_cfg_present = false; + uint8_t cell_group_id = 0; rlc_bearer_to_add_mod_list_l_ rlc_bearer_to_add_mod_list; rlc_bearer_to_release_list_l_ rlc_bearer_to_release_list; mac_cell_group_cfg_s mac_cell_group_cfg; @@ -21049,10 +20845,6 @@ struct feature_set_dl_s { bool time_dur_for_qcl_present = false; bool pdsch_processing_type1_different_tb_per_slot_present = false; bool dummy3_present = false; - bool dummy4_present = false; - bool dummy5_present = false; - bool dummy6_present = false; - bool dummy7_present = false; feature_set_list_per_dl_cc_l_ feature_set_list_per_dl_cc; freq_separation_class_e intra_band_freq_separation_dl; scaling_factor_e_ scaling_factor; @@ -21488,11 +21280,7 @@ struct feature_sets_s { using feature_sets_dl_v15a0_l_ = dyn_array; // member variables - bool ext = false; - bool feature_sets_dl_present = false; - bool feature_sets_dl_per_cc_present = false; - bool feature_sets_ul_present = false; - bool feature_sets_ul_per_cc_present = false; + bool ext = false; feature_sets_dl_l_ feature_sets_dl; feature_sets_dl_per_cc_l_ feature_sets_dl_per_cc; feature_sets_ul_l_ feature_sets_ul; @@ -21969,7 +21757,6 @@ struct nrdc_params_s { bool tdd_add_ue_nrdc_cap_present = false; bool fr1_add_ue_nrdc_cap_present = false; bool fr2_add_ue_nrdc_cap_present = false; - bool late_non_crit_ext_present = false; bool dummy_present = false; meas_and_mob_params_mrdc_s meas_and_mob_params_nrdc; general_params_mrdc_xdd_diff_s general_params_nrdc; @@ -22357,8 +22144,7 @@ struct phy_params_mrdc_s { using naics_cap_list_l_ = dyn_array; // member variables - bool ext = false; - bool naics_cap_list_present = false; + bool ext = false; naics_cap_list_l_ naics_cap_list; // ... // group 0 @@ -22375,9 +22161,7 @@ struct rf_params_s { using supported_band_list_nr_l_ = dyn_array; // member variables - bool ext = false; - bool supported_band_combination_list_present = false; - bool applied_freq_band_list_filt_present = false; + bool ext = false; supported_band_list_nr_l_ supported_band_list_nr; band_combination_list_l supported_band_combination_list; freq_band_list_l applied_freq_band_list_filt; @@ -22399,11 +22183,6 @@ struct rf_params_s { // RF-ParametersMRDC ::= SEQUENCE struct rf_params_mrdc_s { struct supported_band_combination_list_nedc_only_v15a0_s_ { - bool supported_band_combination_list_v1540_present = false; - bool supported_band_combination_list_v1560_present = false; - bool supported_band_combination_list_v1570_present = false; - bool supported_band_combination_list_v1580_present = false; - bool supported_band_combination_list_v1590_present = false; band_combination_list_v1540_l supported_band_combination_list_v1540; band_combination_list_v1560_l supported_band_combination_list_v1560; band_combination_list_v1570_l supported_band_combination_list_v1570; @@ -22412,9 +22191,7 @@ struct rf_params_mrdc_s { }; // member variables - bool ext = false; - bool supported_band_combination_list_present = false; - bool applied_freq_band_list_filt_present = false; + bool ext = false; band_combination_list_l supported_band_combination_list; freq_band_list_l applied_freq_band_list_filt; // ... @@ -22454,8 +22231,7 @@ struct ue_cap_request_filt_nr_v1540_s { // UE-CapabilityRequestFilterNR ::= SEQUENCE struct ue_cap_request_filt_nr_s { - bool freq_band_list_filt_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; freq_band_list_l freq_band_list_filt; ue_cap_request_filt_nr_v1540_s non_crit_ext; @@ -22489,7 +22265,6 @@ struct pdcp_params_mrdc_s { // UE-MRDC-Capability-v1560 ::= SEQUENCE struct ue_mrdc_cap_v1560_s { - bool rx_filts_present = false; bool meas_and_mob_params_mrdc_v1560_present = false; bool fdd_add_ue_mrdc_cap_v1560_present = false; bool tdd_add_ue_mrdc_cap_v1560_present = false; @@ -22517,9 +22292,7 @@ struct ue_mrdc_cap_s { bool tdd_add_ue_mrdc_cap_present = false; bool fr1_add_ue_mrdc_cap_present = false; bool fr2_add_ue_mrdc_cap_present = false; - bool feature_set_combinations_present = false; bool pdcp_params_mrdc_v1530_present = false; - bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; meas_and_mob_params_mrdc_s meas_and_mob_params_mrdc; phy_params_mrdc_s phy_params_mrdc_v1530; @@ -22565,7 +22338,6 @@ struct ue_nr_cap_v1570_s { // UE-NR-Capability-v1560 ::= SEQUENCE struct ue_nr_cap_v1560_s { bool nrdc_params_present = false; - bool rx_filts_present = false; bool non_crit_ext_present = false; nrdc_params_s nrdc_params; dyn_octstring rx_filts; @@ -22780,17 +22552,15 @@ struct ue_nr_cap_s { using feature_set_combinations_l_ = dyn_array; // member variables - bool rlc_params_present = false; - bool mac_params_present = false; - bool meas_and_mob_params_present = false; - bool fdd_add_ue_nr_cap_present = false; - bool tdd_add_ue_nr_cap_present = false; - bool fr1_add_ue_nr_cap_present = false; - bool fr2_add_ue_nr_cap_present = false; - bool feature_sets_present = false; - bool feature_set_combinations_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; + bool rlc_params_present = false; + bool mac_params_present = false; + bool meas_and_mob_params_present = false; + bool fdd_add_ue_nr_cap_present = false; + bool tdd_add_ue_nr_cap_present = false; + bool fr1_add_ue_nr_cap_present = false; + bool fr2_add_ue_nr_cap_present = false; + bool feature_sets_present = false; + bool non_crit_ext_present = false; access_stratum_release_e access_stratum_release; pdcp_params_s pdcp_params; rlc_params_s rlc_params; @@ -22851,9 +22621,6 @@ struct as_cfg_s { dyn_octstring rrc_recfg; // ... // group 0 - bool source_rb_sn_cfg_present = false; - bool source_scg_nr_cfg_present = false; - bool source_scg_eutra_cfg_present = false; dyn_octstring source_rb_sn_cfg; dyn_octstring source_scg_nr_cfg; dyn_octstring source_scg_eutra_cfg; @@ -22930,7 +22697,6 @@ struct cfg_restrict_info_scg_s { // member variables bool ext = false; - bool allowed_bc_list_mrdc_present = false; bool pwr_coordination_fr1_present = false; bool serv_cell_idx_range_scg_present = false; bool max_meas_freqs_scg_present = false; @@ -22961,8 +22727,7 @@ struct cfg_restrict_info_scg_s { // ReestablishmentInfo ::= SEQUENCE struct reest_info_s { - bool add_reestab_info_list_present = false; - uint16_t source_pci = 0; + uint16_t source_pci = 0; fixed_bitstring<16> target_cell_short_mac_i; reestab_ncell_info_list_l add_reestab_info_list; @@ -22983,7 +22748,6 @@ struct as_context_s { // group 0 copy_ptr ran_notif_area_info; // group 1 - bool ue_assist_info_present = false; dyn_octstring ue_assist_info; // group 2 copy_ptr sel_band_combination_sn; @@ -23024,7 +22788,6 @@ struct affected_carrier_freq_comb_info_mrdc_s { }; typedef enumerated interference_direction_mrdc_e_; struct affected_carrier_freq_comb_mrdc_s_ { - bool affected_carrier_freq_comb_eutra_present = false; affected_carrier_freq_comb_eutra_l affected_carrier_freq_comb_eutra; affected_carrier_freq_comb_nr_l affected_carrier_freq_comb_nr; }; @@ -23069,9 +22832,7 @@ struct cg_cfg_v1590_ies_s { using scell_frequencies_sn_eutra_l_ = bounded_array; // member variables - bool scell_frequencies_sn_nr_present = false; - bool scell_frequencies_sn_eutra_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; scell_frequencies_sn_nr_l_ scell_frequencies_sn_nr; scell_frequencies_sn_eutra_l_ scell_frequencies_sn_eutra; @@ -23113,15 +22874,12 @@ struct cg_cfg_v1560_ies_s { }; // member variables - bool pscell_freq_eutra_present = false; - bool scg_cell_group_cfg_eutra_present = false; - bool candidate_cell_info_list_sn_eutra_present = false; - bool candidate_serving_freq_list_eutra_present = false; - bool need_for_gaps_present = false; - bool drx_cfg_scg_present = false; - bool report_cgi_request_eutra_present = false; - bool non_crit_ext_present = false; - uint32_t pscell_freq_eutra = 0; + bool pscell_freq_eutra_present = false; + bool need_for_gaps_present = false; + bool drx_cfg_scg_present = false; + bool report_cgi_request_eutra_present = false; + bool non_crit_ext_present = false; + uint32_t pscell_freq_eutra = 0; dyn_octstring scg_cell_group_cfg_eutra; dyn_octstring candidate_cell_info_list_sn_eutra; candidate_serving_freq_list_eutra_l candidate_serving_freq_list_eutra; @@ -23188,7 +22946,6 @@ struct cg_cfg_v1540_ies_s { // member variables bool pscell_freq_present = false; bool report_cgi_request_nr_present = false; - bool ph_info_scg_present = false; bool non_crit_ext_present = false; uint32_t pscell_freq = 0; report_cgi_request_nr_s_ report_cgi_request_nr; @@ -23564,8 +23321,7 @@ struct meas_cfg_sn_s { using measured_frequencies_sn_l_ = dyn_array; // member variables - bool ext = false; - bool measured_frequencies_sn_present = false; + bool ext = false; measured_frequencies_sn_l_ measured_frequencies_sn; // ... @@ -23577,16 +23333,11 @@ struct meas_cfg_sn_s { // CG-Config-IEs ::= SEQUENCE struct cg_cfg_ies_s { - bool scg_cell_group_cfg_present = false; - bool scg_rb_cfg_present = false; - bool cfg_restrict_mod_req_present = false; - bool drx_info_scg_present = false; - bool candidate_cell_info_list_sn_present = false; - bool meas_cfg_sn_present = false; - bool sel_band_combination_present = false; - bool fr_info_list_scg_present = false; - bool candidate_serving_freq_list_nr_present = false; - bool non_crit_ext_present = false; + bool cfg_restrict_mod_req_present = false; + bool drx_info_scg_present = false; + bool meas_cfg_sn_present = false; + bool sel_band_combination_present = false; + bool non_crit_ext_present = false; dyn_octstring scg_cell_group_cfg; dyn_octstring scg_rb_cfg; cfg_restrict_mod_req_scg_s cfg_restrict_mod_req; @@ -23691,8 +23442,7 @@ struct cg_cfg_info_v1590_ies_s { using serv_frequencies_mn_nr_l_ = bounded_array; // member variables - bool serv_frequencies_mn_nr_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; serv_frequencies_mn_nr_l_ serv_frequencies_mn_nr; // sequence methods @@ -23731,9 +23481,7 @@ using sftd_freq_list_nr_l = bounded_array; // CG-ConfigInfo-v1570-IEs ::= SEQUENCE struct cg_cfg_info_v1570_ies_s { - bool sftd_freq_list_nr_present = false; - bool sftd_freq_list_eutra_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; sftd_freq_list_nr_l sftd_freq_list_nr; sftd_freq_list_eutra_l sftd_freq_list_eutra; cg_cfg_info_v1590_ies_s non_crit_ext; @@ -23782,15 +23530,10 @@ struct cg_cfg_info_v1560_ies_s { }; // member variables - bool candidate_cell_info_list_mn_eutra_present = false; - bool candidate_cell_info_list_sn_eutra_present = false; - bool source_cfg_scg_eutra_present = false; - bool scg_fail_info_eutra_present = false; - bool drx_cfg_mcg_present = false; - bool meas_result_report_cgi_eutra_present = false; - bool meas_result_cell_list_sftd_eutra_present = false; - bool fr_info_list_mcg_present = false; - bool non_crit_ext_present = false; + bool scg_fail_info_eutra_present = false; + bool drx_cfg_mcg_present = false; + bool meas_result_report_cgi_eutra_present = false; + bool non_crit_ext_present = false; dyn_octstring candidate_cell_info_list_mn_eutra; dyn_octstring candidate_cell_info_list_sn_eutra; dyn_octstring source_cfg_scg_eutra; @@ -23819,7 +23562,6 @@ struct cg_cfg_info_v1540_ies_s { }; // member variables - bool ph_info_mcg_present = false; bool meas_result_report_cgi_present = false; bool non_crit_ext_present = false; ph_type_list_mcg_l ph_info_mcg; @@ -23860,10 +23602,9 @@ struct meas_cfg_mn_s { typedef enumerated gap_purpose_e_; // member variables - bool ext = false; - bool measured_frequencies_mn_present = false; - bool meas_gap_cfg_present = false; - bool gap_purpose_present = false; + bool ext = false; + bool meas_gap_cfg_present = false; + bool gap_purpose_present = false; measured_frequencies_mn_l_ measured_frequencies_mn; setup_release_c meas_gap_cfg; gap_purpose_e_ gap_purpose; @@ -23903,19 +23644,12 @@ struct cg_cfg_info_ies_s { }; // member variables - bool ue_cap_info_present = false; - bool candidate_cell_info_list_mn_present = false; - bool candidate_cell_info_list_sn_present = false; - bool meas_result_cell_list_sftd_nr_present = false; - bool scg_fail_info_present = false; - bool cfg_restrict_info_present = false; - bool drx_info_mcg_present = false; - bool meas_cfg_mn_present = false; - bool source_cfg_scg_present = false; - bool scg_rb_cfg_present = false; - bool mcg_rb_cfg_present = false; - bool mrdc_assist_info_present = false; - bool non_crit_ext_present = false; + bool scg_fail_info_present = false; + bool cfg_restrict_info_present = false; + bool drx_info_mcg_present = false; + bool meas_cfg_mn_present = false; + bool mrdc_assist_info_present = false; + bool non_crit_ext_present = false; dyn_octstring ue_cap_info; meas_result_list2_nr_l candidate_cell_info_list_mn; dyn_octstring candidate_cell_info_list_sn; @@ -24239,9 +23973,8 @@ struct rrm_cfg_s { typedef enumerated ue_inactive_time_e_; // member variables - bool ext = false; - bool ue_inactive_time_present = false; - bool candidate_cell_info_list_present = false; + bool ext = false; + bool ue_inactive_time_present = false; ue_inactive_time_e_ ue_inactive_time; meas_result_list2_nr_l candidate_cell_info_list; // ... @@ -24396,7 +24129,6 @@ struct meas_timing_cfg_v1550_ies_s { // MeasurementTimingConfiguration-IEs ::= SEQUENCE struct meas_timing_cfg_ies_s { - bool meas_timing_present = false; bool non_crit_ext_present = false; meas_timing_list_l meas_timing; meas_timing_cfg_v1550_ies_s non_crit_ext; @@ -24601,8 +24333,7 @@ struct ue_radio_paging_info_ies_s { using supported_band_list_nr_for_paging_l_ = dyn_array; // member variables - bool supported_band_list_nr_for_paging_present = false; - bool non_crit_ext_present = false; + bool non_crit_ext_present = false; supported_band_list_nr_for_paging_l_ supported_band_list_nr_for_paging; // sequence methods @@ -24749,11 +24480,8 @@ struct var_meas_cfg_s { }; // member variables - bool meas_id_list_present = false; - bool meas_obj_list_present = false; - bool report_cfg_list_present = false; - bool quant_cfg_present = false; - bool s_measure_cfg_present = false; + bool quant_cfg_present = false; + bool s_measure_cfg_present = false; meas_id_to_add_mod_list_l meas_id_list; meas_obj_to_add_mod_list_l meas_obj_list; report_cfg_to_add_mod_list_l report_cfg_list; @@ -24768,8 +24496,7 @@ struct var_meas_cfg_s { // VarMeasReport ::= SEQUENCE struct var_meas_report_s { - bool cells_triggered_list_present = false; - uint8_t meas_id = 1; + uint8_t meas_id = 1; cells_triggered_list_l cells_triggered_list; int64_t nof_reports_sent = 0; diff --git a/lib/src/asn1/ngap.cc b/lib/src/asn1/ngap.cc index 6e79ebfda..5270145ed 100644 --- a/lib/src/asn1/ngap.cc +++ b/lib/src/asn1/ngap.cc @@ -1558,7 +1558,7 @@ SRSASN_CODE crit_diagnostics_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(proc_code_present, 1)); HANDLE_CODE(bref.pack(trigger_msg_present, 1)); HANDLE_CODE(bref.pack(proc_crit_present, 1)); - HANDLE_CODE(bref.pack(ies_crit_diagnostics_present, 1)); + HANDLE_CODE(bref.pack(ies_crit_diagnostics.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); if (proc_code_present) { @@ -1570,7 +1570,7 @@ SRSASN_CODE crit_diagnostics_s::pack(bit_ref& bref) const if (proc_crit_present) { HANDLE_CODE(proc_crit.pack(bref)); } - if (ies_crit_diagnostics_present) { + if (ies_crit_diagnostics.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ies_crit_diagnostics, 1, 256, true)); } if (ie_exts_present) { @@ -1585,6 +1585,7 @@ SRSASN_CODE crit_diagnostics_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(proc_code_present, 1)); HANDLE_CODE(bref.unpack(trigger_msg_present, 1)); HANDLE_CODE(bref.unpack(proc_crit_present, 1)); + bool ies_crit_diagnostics_present; HANDLE_CODE(bref.unpack(ies_crit_diagnostics_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -1618,7 +1619,7 @@ void crit_diagnostics_s::to_json(json_writer& j) const if (proc_crit_present) { j.write_str("procedureCriticality", proc_crit.to_string()); } - if (ies_crit_diagnostics_present) { + if (ies_crit_diagnostics.size() > 0) { j.start_array("iEsCriticalityDiagnostics"); for (const auto& e1 : ies_crit_diagnostics) { e1.to_json(j); @@ -4142,18 +4143,18 @@ void area_of_interest_tai_item_s::to_json(json_writer& j) const SRSASN_CODE area_of_interest_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(area_of_interest_tai_list_present, 1)); - HANDLE_CODE(bref.pack(area_of_interest_cell_list_present, 1)); - HANDLE_CODE(bref.pack(area_of_interest_ran_node_list_present, 1)); + HANDLE_CODE(bref.pack(area_of_interest_tai_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(area_of_interest_cell_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(area_of_interest_ran_node_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - if (area_of_interest_tai_list_present) { + if (area_of_interest_tai_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, area_of_interest_tai_list, 1, 16, true)); } - if (area_of_interest_cell_list_present) { + if (area_of_interest_cell_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, area_of_interest_cell_list, 1, 256, true)); } - if (area_of_interest_ran_node_list_present) { + if (area_of_interest_ran_node_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, area_of_interest_ran_node_list, 1, 64, true)); } if (ie_exts_present) { @@ -4165,8 +4166,11 @@ SRSASN_CODE area_of_interest_s::pack(bit_ref& bref) const SRSASN_CODE area_of_interest_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool area_of_interest_tai_list_present; HANDLE_CODE(bref.unpack(area_of_interest_tai_list_present, 1)); + bool area_of_interest_cell_list_present; HANDLE_CODE(bref.unpack(area_of_interest_cell_list_present, 1)); + bool area_of_interest_ran_node_list_present; HANDLE_CODE(bref.unpack(area_of_interest_ran_node_list_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -4188,21 +4192,21 @@ SRSASN_CODE area_of_interest_s::unpack(cbit_ref& bref) void area_of_interest_s::to_json(json_writer& j) const { j.start_obj(); - if (area_of_interest_tai_list_present) { + if (area_of_interest_tai_list.size() > 0) { j.start_array("areaOfInterestTAIList"); for (const auto& e1 : area_of_interest_tai_list) { e1.to_json(j); } j.end_array(); } - if (area_of_interest_cell_list_present) { + if (area_of_interest_cell_list.size() > 0) { j.start_array("areaOfInterestCellList"); for (const auto& e1 : area_of_interest_cell_list) { e1.to_json(j); } j.end_array(); } - if (area_of_interest_ran_node_list_present) { + if (area_of_interest_ran_node_list.size() > 0) { j.start_array("areaOfInterestRANNodeList"); for (const auto& e1 : area_of_interest_ran_node_list) { e1.to_json(j); @@ -6878,7 +6882,7 @@ SRSASN_CODE expected_ue_behaviour_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(expected_ue_activity_behaviour_present, 1)); HANDLE_CODE(bref.pack(expected_ho_interv_present, 1)); HANDLE_CODE(bref.pack(expected_ue_mob_present, 1)); - HANDLE_CODE(bref.pack(expected_ue_moving_trajectory_present, 1)); + HANDLE_CODE(bref.pack(expected_ue_moving_trajectory.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); if (expected_ue_activity_behaviour_present) { @@ -6890,7 +6894,7 @@ SRSASN_CODE expected_ue_behaviour_s::pack(bit_ref& bref) const if (expected_ue_mob_present) { HANDLE_CODE(expected_ue_mob.pack(bref)); } - if (expected_ue_moving_trajectory_present) { + if (expected_ue_moving_trajectory.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, expected_ue_moving_trajectory, 1, 16, true)); } if (ie_exts_present) { @@ -6905,6 +6909,7 @@ SRSASN_CODE expected_ue_behaviour_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(expected_ue_activity_behaviour_present, 1)); HANDLE_CODE(bref.unpack(expected_ho_interv_present, 1)); HANDLE_CODE(bref.unpack(expected_ue_mob_present, 1)); + bool expected_ue_moving_trajectory_present; HANDLE_CODE(bref.unpack(expected_ue_moving_trajectory_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -6939,7 +6944,7 @@ void expected_ue_behaviour_s::to_json(json_writer& j) const if (expected_ue_mob_present) { j.write_str("expectedUEMobility", expected_ue_mob.to_string()); } - if (expected_ue_moving_trajectory_present) { + if (expected_ue_moving_trajectory.size() > 0) { j.start_array("expectedUEMovingTrajectory"); for (const auto& e1 : expected_ue_moving_trajectory) { e1.to_json(j); @@ -8235,15 +8240,15 @@ void rat_restricts_item_s::to_json(json_writer& j) const SRSASN_CODE service_area_info_item_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(allowed_tacs_present, 1)); - HANDLE_CODE(bref.pack(not_allowed_tacs_present, 1)); + HANDLE_CODE(bref.pack(allowed_tacs.size() > 0, 1)); + HANDLE_CODE(bref.pack(not_allowed_tacs.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(plmn_id.pack(bref)); - if (allowed_tacs_present) { + if (allowed_tacs.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, allowed_tacs, 1, 16, true)); } - if (not_allowed_tacs_present) { + if (not_allowed_tacs.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, not_allowed_tacs, 1, 16, true)); } if (ie_exts_present) { @@ -8255,7 +8260,9 @@ SRSASN_CODE service_area_info_item_s::pack(bit_ref& bref) const SRSASN_CODE service_area_info_item_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool allowed_tacs_present; HANDLE_CODE(bref.unpack(allowed_tacs_present, 1)); + bool not_allowed_tacs_present; HANDLE_CODE(bref.unpack(not_allowed_tacs_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -8276,14 +8283,14 @@ void service_area_info_item_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("pLMNIdentity", plmn_id.to_string()); - if (allowed_tacs_present) { + if (allowed_tacs.size() > 0) { j.start_array("allowedTACs"); for (const auto& e1 : allowed_tacs) { j.write_str(e1.to_string()); } j.end_array(); } - if (not_allowed_tacs_present) { + if (not_allowed_tacs.size() > 0) { j.start_array("notAllowedTACs"); for (const auto& e1 : not_allowed_tacs) { j.write_str(e1.to_string()); @@ -8362,26 +8369,26 @@ const char* mob_restrict_list_ext_ies_o::ext_c::types_opts::to_string() const SRSASN_CODE mob_restrict_list_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(equivalent_plmns_present, 1)); - HANDLE_CODE(bref.pack(rat_restricts_present, 1)); - HANDLE_CODE(bref.pack(forbidden_area_info_present, 1)); - HANDLE_CODE(bref.pack(service_area_info_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(equivalent_plmns.size() > 0, 1)); + HANDLE_CODE(bref.pack(rat_restricts.size() > 0, 1)); + HANDLE_CODE(bref.pack(forbidden_area_info.size() > 0, 1)); + HANDLE_CODE(bref.pack(service_area_info.size() > 0, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); HANDLE_CODE(serving_plmn.pack(bref)); - if (equivalent_plmns_present) { + if (equivalent_plmns.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, equivalent_plmns, 1, 15, true)); } - if (rat_restricts_present) { + if (rat_restricts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rat_restricts, 1, 16, true)); } - if (forbidden_area_info_present) { + if (forbidden_area_info.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, forbidden_area_info, 1, 16, true)); } - if (service_area_info_present) { + if (service_area_info.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, service_area_info, 1, 16, true)); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -8390,10 +8397,15 @@ SRSASN_CODE mob_restrict_list_s::pack(bit_ref& bref) const SRSASN_CODE mob_restrict_list_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool equivalent_plmns_present; HANDLE_CODE(bref.unpack(equivalent_plmns_present, 1)); + bool rat_restricts_present; HANDLE_CODE(bref.unpack(rat_restricts_present, 1)); + bool forbidden_area_info_present; HANDLE_CODE(bref.unpack(forbidden_area_info_present, 1)); + bool service_area_info_present; HANDLE_CODE(bref.unpack(service_area_info_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(serving_plmn.unpack(bref)); @@ -8419,35 +8431,35 @@ void mob_restrict_list_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("servingPLMN", serving_plmn.to_string()); - if (equivalent_plmns_present) { + if (equivalent_plmns.size() > 0) { j.start_array("equivalentPLMNs"); for (const auto& e1 : equivalent_plmns) { j.write_str(e1.to_string()); } j.end_array(); } - if (rat_restricts_present) { + if (rat_restricts.size() > 0) { j.start_array("rATRestrictions"); for (const auto& e1 : rat_restricts) { e1.to_json(j); } j.end_array(); } - if (forbidden_area_info_present) { + if (forbidden_area_info.size() > 0) { j.start_array("forbiddenAreaInformation"); for (const auto& e1 : forbidden_area_info) { e1.to_json(j); } j.end_array(); } - if (service_area_info_present) { + if (service_area_info.size() > 0) { j.start_array("serviceAreaInformation"); for (const auto& e1 : service_area_info) { e1.to_json(j); } j.end_array(); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -9406,13 +9418,13 @@ SRSASN_CODE xn_ext_tla_item_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ipsec_tla_present, 1)); - HANDLE_CODE(bref.pack(gtp_tlas_present, 1)); + HANDLE_CODE(bref.pack(gtp_tlas.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); if (ipsec_tla_present) { HANDLE_CODE(ipsec_tla.pack(bref)); } - if (gtp_tlas_present) { + if (gtp_tlas.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, gtp_tlas, 1, 16, true)); } if (ie_exts_present) { @@ -9425,6 +9437,7 @@ SRSASN_CODE xn_ext_tla_item_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ipsec_tla_present, 1)); + bool gtp_tlas_present; HANDLE_CODE(bref.unpack(gtp_tlas_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -9446,7 +9459,7 @@ void xn_ext_tla_item_s::to_json(json_writer& j) const if (ipsec_tla_present) { j.write_str("iPsecTLA", ipsec_tla.to_string()); } - if (gtp_tlas_present) { + if (gtp_tlas.size() > 0) { j.start_array("gTP-TLAs"); for (const auto& e1 : gtp_tlas) { j.write_str(e1.to_string()); @@ -9464,11 +9477,11 @@ void xn_ext_tla_item_s::to_json(json_writer& j) const SRSASN_CODE xn_tnl_cfg_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(xn_extended_transport_layer_addresses_present, 1)); + HANDLE_CODE(bref.pack(xn_extended_transport_layer_addresses.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, xn_transport_layer_addresses, 1, 16, true)); - if (xn_extended_transport_layer_addresses_present) { + if (xn_extended_transport_layer_addresses.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, xn_extended_transport_layer_addresses, 1, 2, true)); } if (ie_exts_present) { @@ -9480,6 +9493,7 @@ SRSASN_CODE xn_tnl_cfg_info_s::pack(bit_ref& bref) const SRSASN_CODE xn_tnl_cfg_info_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool xn_extended_transport_layer_addresses_present; HANDLE_CODE(bref.unpack(xn_extended_transport_layer_addresses_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -9501,7 +9515,7 @@ void xn_tnl_cfg_info_s::to_json(json_writer& j) const j.write_str(e1.to_string()); } j.end_array(); - if (xn_extended_transport_layer_addresses_present) { + if (xn_extended_transport_layer_addresses.size() > 0) { j.start_array("xnExtendedTransportLayerAddresses"); for (const auto& e1 : xn_extended_transport_layer_addresses) { e1.to_json(j); @@ -13097,20 +13111,20 @@ SRSASN_CODE ho_cmd_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(dlforwarding_up_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_to_be_forwarded_list_present, 1)); - HANDLE_CODE(bref.pack(data_forwarding_resp_drb_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_to_be_forwarded_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(data_forwarding_resp_drb_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); if (dlforwarding_up_tnl_info_present) { HANDLE_CODE(dlforwarding_up_tnl_info.pack(bref)); } - if (qos_flow_to_be_forwarded_list_present) { + if (qos_flow_to_be_forwarded_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_to_be_forwarded_list, 1, 64, true)); } - if (data_forwarding_resp_drb_list_present) { + if (data_forwarding_resp_drb_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, data_forwarding_resp_drb_list, 1, 32, true)); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -13120,8 +13134,11 @@ SRSASN_CODE ho_cmd_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(dlforwarding_up_tnl_info_present, 1)); + bool qos_flow_to_be_forwarded_list_present; HANDLE_CODE(bref.unpack(qos_flow_to_be_forwarded_list_present, 1)); + bool data_forwarding_resp_drb_list_present; HANDLE_CODE(bref.unpack(data_forwarding_resp_drb_list_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); if (dlforwarding_up_tnl_info_present) { @@ -13146,21 +13163,21 @@ void ho_cmd_transfer_s::to_json(json_writer& j) const j.write_fieldname("dLForwardingUP-TNLInformation"); dlforwarding_up_tnl_info.to_json(j); } - if (qos_flow_to_be_forwarded_list_present) { + if (qos_flow_to_be_forwarded_list.size() > 0) { j.start_array("qosFlowToBeForwardedList"); for (const auto& e1 : qos_flow_to_be_forwarded_list) { e1.to_json(j); } j.end_array(); } - if (data_forwarding_resp_drb_list_present) { + if (data_forwarding_resp_drb_list.size() > 0) { j.start_array("dataForwardingResponseDRBList"); for (const auto& e1 : data_forwarding_resp_drb_list) { e1.to_json(j); } j.end_array(); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -14609,13 +14626,13 @@ const char* trace_depth_opts::to_string() const SRSASN_CODE location_report_request_type_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(area_of_interest_list_present, 1)); + HANDLE_CODE(bref.pack(area_of_interest_list.size() > 0, 1)); HANDLE_CODE(bref.pack(location_report_ref_id_to_be_cancelled_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(event_type.pack(bref)); HANDLE_CODE(report_area.pack(bref)); - if (area_of_interest_list_present) { + if (area_of_interest_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, area_of_interest_list, 1, 64, true)); } if (location_report_ref_id_to_be_cancelled_present) { @@ -14630,6 +14647,7 @@ SRSASN_CODE location_report_request_type_s::pack(bit_ref& bref) const SRSASN_CODE location_report_request_type_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool area_of_interest_list_present; HANDLE_CODE(bref.unpack(area_of_interest_list_present, 1)); HANDLE_CODE(bref.unpack(location_report_ref_id_to_be_cancelled_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -14653,7 +14671,7 @@ void location_report_request_type_s::to_json(json_writer& j) const j.start_obj(); j.write_str("eventType", event_type.to_string()); j.write_str("reportArea", "cell"); - if (area_of_interest_list_present) { + if (area_of_interest_list.size() > 0) { j.start_array("areaOfInterestList"); for (const auto& e1 : area_of_interest_list) { e1.to_json(j); @@ -16730,9 +16748,9 @@ SRSASN_CODE ho_request_ack_transfer_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(dlforwarding_up_tnl_info_present, 1)); HANDLE_CODE(bref.pack(security_result_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_failed_to_setup_list_present, 1)); - HANDLE_CODE(bref.pack(data_forwarding_resp_drb_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_failed_to_setup_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(data_forwarding_resp_drb_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); if (dlforwarding_up_tnl_info_present) { @@ -16742,13 +16760,13 @@ SRSASN_CODE ho_request_ack_transfer_s::pack(bit_ref& bref) const HANDLE_CODE(security_result.pack(bref)); } HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_setup_resp_list, 1, 64, true)); - if (qos_flow_failed_to_setup_list_present) { + if (qos_flow_failed_to_setup_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_setup_list, 1, 64, true)); } - if (data_forwarding_resp_drb_list_present) { + if (data_forwarding_resp_drb_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, data_forwarding_resp_drb_list, 1, 32, true)); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -16759,8 +16777,11 @@ SRSASN_CODE ho_request_ack_transfer_s::unpack(cbit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(dlforwarding_up_tnl_info_present, 1)); HANDLE_CODE(bref.unpack(security_result_present, 1)); + bool qos_flow_failed_to_setup_list_present; HANDLE_CODE(bref.unpack(qos_flow_failed_to_setup_list_present, 1)); + bool data_forwarding_resp_drb_list_present; HANDLE_CODE(bref.unpack(data_forwarding_resp_drb_list_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); @@ -16801,21 +16822,21 @@ void ho_request_ack_transfer_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (qos_flow_failed_to_setup_list_present) { + if (qos_flow_failed_to_setup_list.size() > 0) { j.start_array("qosFlowFailedToSetupList"); for (const auto& e1 : qos_flow_failed_to_setup_list) { e1.to_json(j); } j.end_array(); } - if (data_forwarding_resp_drb_list_present) { + if (data_forwarding_resp_drb_list.size() > 0) { j.start_array("dataForwardingResponseDRBList"); for (const auto& e1 : data_forwarding_resp_drb_list) { e1.to_json(j); } j.end_array(); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -18318,11 +18339,11 @@ void init_context_setup_fail_ies_container::to_json(json_writer& j) const SRSASN_CODE pdu_session_res_setup_item_cxt_req_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(nas_pdu_present, 1)); + HANDLE_CODE(bref.pack(nas_pdu.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (nas_pdu_present) { + if (nas_pdu.size() > 0) { HANDLE_CODE(nas_pdu.pack(bref)); } HANDLE_CODE(s_nssai.pack(bref)); @@ -18336,6 +18357,7 @@ SRSASN_CODE pdu_session_res_setup_item_cxt_req_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_setup_item_cxt_req_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool nas_pdu_present; HANDLE_CODE(bref.unpack(nas_pdu_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -18355,7 +18377,7 @@ void pdu_session_res_setup_item_cxt_req_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pDUSessionID", pdu_session_id); - if (nas_pdu_present) { + if (nas_pdu.size() > 0) { j.write_str("nAS-PDU", nas_pdu.to_string()); } j.write_fieldname("s-NSSAI"); @@ -18372,14 +18394,14 @@ void pdu_session_res_setup_item_cxt_req_s::to_json(json_writer& j) const SRSASN_CODE ue_radio_cap_for_paging_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ueradio_cap_for_paging_of_nr_present, 1)); - HANDLE_CODE(bref.pack(ueradio_cap_for_paging_of_eutra_present, 1)); + HANDLE_CODE(bref.pack(ueradio_cap_for_paging_of_nr.size() > 0, 1)); + HANDLE_CODE(bref.pack(ueradio_cap_for_paging_of_eutra.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - if (ueradio_cap_for_paging_of_nr_present) { + if (ueradio_cap_for_paging_of_nr.size() > 0) { HANDLE_CODE(ueradio_cap_for_paging_of_nr.pack(bref)); } - if (ueradio_cap_for_paging_of_eutra_present) { + if (ueradio_cap_for_paging_of_eutra.size() > 0) { HANDLE_CODE(ueradio_cap_for_paging_of_eutra.pack(bref)); } if (ie_exts_present) { @@ -18391,7 +18413,9 @@ SRSASN_CODE ue_radio_cap_for_paging_s::pack(bit_ref& bref) const SRSASN_CODE ue_radio_cap_for_paging_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool ueradio_cap_for_paging_of_nr_present; HANDLE_CODE(bref.unpack(ueradio_cap_for_paging_of_nr_present, 1)); + bool ueradio_cap_for_paging_of_eutra_present; HANDLE_CODE(bref.unpack(ueradio_cap_for_paging_of_eutra_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -18410,10 +18434,10 @@ SRSASN_CODE ue_radio_cap_for_paging_s::unpack(cbit_ref& bref) void ue_radio_cap_for_paging_s::to_json(json_writer& j) const { j.start_obj(); - if (ueradio_cap_for_paging_of_nr_present) { + if (ueradio_cap_for_paging_of_nr.size() > 0) { j.write_str("uERadioCapabilityForPagingOfNR", ueradio_cap_for_paging_of_nr.to_string()); } - if (ueradio_cap_for_paging_of_eutra_present) { + if (ueradio_cap_for_paging_of_eutra.size() > 0) { j.write_str("uERadioCapabilityForPagingOfEUTRA", ueradio_cap_for_paging_of_eutra.to_string()); } if (ie_exts_present) { @@ -21461,10 +21485,10 @@ void pdu_session_res_failed_to_setup_item_su_res_s::to_json(json_writer& j) cons SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -21473,6 +21497,7 @@ SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); @@ -21486,7 +21511,7 @@ void pdu_session_res_item_cxt_rel_cpl_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pDUSessionID", pdu_session_id); - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -21610,15 +21635,15 @@ void pdu_session_res_modify_item_mod_ind_s::to_json(json_writer& j) const SRSASN_CODE pdu_session_res_modify_item_mod_req_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(nas_pdu_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(nas_pdu.size() > 0, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (nas_pdu_present) { + if (nas_pdu.size() > 0) { HANDLE_CODE(nas_pdu.pack(bref)); } HANDLE_CODE(pdu_session_res_modify_request_transfer.pack(bref)); - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -21627,7 +21652,9 @@ SRSASN_CODE pdu_session_res_modify_item_mod_req_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_modify_item_mod_req_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool nas_pdu_present; HANDLE_CODE(bref.unpack(nas_pdu_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); @@ -21645,11 +21672,11 @@ void pdu_session_res_modify_item_mod_req_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pDUSessionID", pdu_session_id); - if (nas_pdu_present) { + if (nas_pdu.size() > 0) { j.write_str("nAS-PDU", nas_pdu.to_string()); } j.write_str("pDUSessionResourceModifyRequestTransfer", pdu_session_res_modify_request_transfer.to_string()); - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -21932,11 +21959,11 @@ void pdu_session_res_secondary_ratusage_item_s::to_json(json_writer& j) const SRSASN_CODE pdu_session_res_setup_item_su_req_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(pdu_session_nas_pdu_present, 1)); + HANDLE_CODE(bref.pack(pdu_session_nas_pdu.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (pdu_session_nas_pdu_present) { + if (pdu_session_nas_pdu.size() > 0) { HANDLE_CODE(pdu_session_nas_pdu.pack(bref)); } HANDLE_CODE(s_nssai.pack(bref)); @@ -21950,6 +21977,7 @@ SRSASN_CODE pdu_session_res_setup_item_su_req_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_setup_item_su_req_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool pdu_session_nas_pdu_present; HANDLE_CODE(bref.unpack(pdu_session_nas_pdu_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -21969,7 +21997,7 @@ void pdu_session_res_setup_item_su_req_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pDUSessionID", pdu_session_id); - if (pdu_session_nas_pdu_present) { + if (pdu_session_nas_pdu.size() > 0) { j.write_str("pDUSessionNAS-PDU", pdu_session_nas_pdu.to_string()); } j.write_fieldname("s-NSSAI"); @@ -47493,12 +47521,12 @@ void qos_flow_info_item_s::to_json(json_writer& j) const SRSASN_CODE pdu_session_res_info_item_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(drbs_to_qos_flows_map_list_present, 1)); + HANDLE_CODE(bref.pack(drbs_to_qos_flows_map_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_info_list, 1, 64, true)); - if (drbs_to_qos_flows_map_list_present) { + if (drbs_to_qos_flows_map_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, drbs_to_qos_flows_map_list, 1, 32, true)); } if (ie_exts_present) { @@ -47510,6 +47538,7 @@ SRSASN_CODE pdu_session_res_info_item_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_info_item_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool drbs_to_qos_flows_map_list_present; HANDLE_CODE(bref.unpack(drbs_to_qos_flows_map_list_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -47533,7 +47562,7 @@ void pdu_session_res_info_item_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (drbs_to_qos_flows_map_list_present) { + if (drbs_to_qos_flows_map_list.size() > 0) { j.start_array("dRBsToQosFlowsMappingList"); for (const auto& e1 : drbs_to_qos_flows_map_list) { e1.to_json(j); @@ -47628,16 +47657,16 @@ void up_transport_layer_info_pair_item_s::to_json(json_writer& j) const SRSASN_CODE pdu_session_res_modify_confirm_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(add_ng_uuptnl_info_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_failed_to_modify_list_present, 1)); + HANDLE_CODE(bref.pack(add_ng_uuptnl_info.size() > 0, 1)); + HANDLE_CODE(bref.pack(qos_flow_failed_to_modify_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_modify_confirm_list, 1, 64, true)); HANDLE_CODE(ulngu_up_tnl_info.pack(bref)); - if (add_ng_uuptnl_info_present) { + if (add_ng_uuptnl_info.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, add_ng_uuptnl_info, 1, 3, true)); } - if (qos_flow_failed_to_modify_list_present) { + if (qos_flow_failed_to_modify_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_modify_list, 1, 64, true)); } if (ie_exts_present) { @@ -47649,7 +47678,9 @@ SRSASN_CODE pdu_session_res_modify_confirm_transfer_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_modify_confirm_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool add_ng_uuptnl_info_present; HANDLE_CODE(bref.unpack(add_ng_uuptnl_info_present, 1)); + bool qos_flow_failed_to_modify_list_present; HANDLE_CODE(bref.unpack(qos_flow_failed_to_modify_list_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -47677,14 +47708,14 @@ void pdu_session_res_modify_confirm_transfer_s::to_json(json_writer& j) const j.end_array(); j.write_fieldname("uLNGU-UP-TNLInformation"); ulngu_up_tnl_info.to_json(j); - if (add_ng_uuptnl_info_present) { + if (add_ng_uuptnl_info.size() > 0) { j.start_array("additionalNG-UUPTNLInformation"); for (const auto& e1 : add_ng_uuptnl_info) { e1.to_json(j); } j.end_array(); } - if (qos_flow_failed_to_modify_list_present) { + if (qos_flow_failed_to_modify_list.size() > 0) { j.start_array("qosFlowFailedToModifyList"); for (const auto& e1 : qos_flow_failed_to_modify_list) { e1.to_json(j); @@ -47849,13 +47880,13 @@ SRSASN_CODE secondary_ratusage_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(pdu_session_usage_report_present, 1)); - HANDLE_CODE(bref.pack(qos_flows_usage_report_list_present, 1)); + HANDLE_CODE(bref.pack(qos_flows_usage_report_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_ext_present, 1)); if (pdu_session_usage_report_present) { HANDLE_CODE(pdu_session_usage_report.pack(bref)); } - if (qos_flows_usage_report_list_present) { + if (qos_flows_usage_report_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flows_usage_report_list, 1, 64, true)); } if (ie_ext_present) { @@ -47868,6 +47899,7 @@ SRSASN_CODE secondary_ratusage_info_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(pdu_session_usage_report_present, 1)); + bool qos_flows_usage_report_list_present; HANDLE_CODE(bref.unpack(qos_flows_usage_report_list_present, 1)); HANDLE_CODE(bref.unpack(ie_ext_present, 1)); @@ -47890,7 +47922,7 @@ void secondary_ratusage_info_s::to_json(json_writer& j) const j.write_fieldname("pDUSessionUsageReport"); pdu_session_usage_report.to_json(j); } - if (qos_flows_usage_report_list_present) { + if (qos_flows_usage_report_list.size() > 0) { j.start_array("qosFlowsUsageReportList"); for (const auto& e1 : qos_flows_usage_report_list) { e1.to_json(j); @@ -48179,11 +48211,11 @@ void pdu_session_res_modify_ind_transfer_ext_ies_container::to_json(json_writer& SRSASN_CODE pdu_session_res_modify_ind_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(dlqos_flow_per_tnl_info.pack(bref)); - if (add_dl_qos_flow_per_tnl_info_present) { + if (add_dl_qos_flow_per_tnl_info.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); } if (ie_exts_present) { @@ -48195,6 +48227,7 @@ SRSASN_CODE pdu_session_res_modify_ind_transfer_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_modify_ind_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool add_dl_qos_flow_per_tnl_info_present; HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -48213,7 +48246,7 @@ void pdu_session_res_modify_ind_transfer_s::to_json(json_writer& j) const j.start_obj(); j.write_fieldname("dLQosFlowPerTNLInformation"); dlqos_flow_per_tnl_info.to_json(j); - if (add_dl_qos_flow_per_tnl_info_present) { + if (add_dl_qos_flow_per_tnl_info.size() > 0) { j.start_array("additionalDLQosFlowPerTNLInformation"); for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { e1.to_json(j); @@ -49285,10 +49318,10 @@ SRSASN_CODE pdu_session_res_modify_resp_transfer_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(dl_ngu_up_tnl_info_present, 1)); HANDLE_CODE(bref.pack(ul_ngu_up_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_add_or_modify_resp_list_present, 1)); - HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_failed_to_add_or_modify_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_add_or_modify_resp_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info.size() > 0, 1)); + HANDLE_CODE(bref.pack(qos_flow_failed_to_add_or_modify_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); if (dl_ngu_up_tnl_info_present) { HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); @@ -49296,16 +49329,16 @@ SRSASN_CODE pdu_session_res_modify_resp_transfer_s::pack(bit_ref& bref) const if (ul_ngu_up_tnl_info_present) { HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); } - if (qos_flow_add_or_modify_resp_list_present) { + if (qos_flow_add_or_modify_resp_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_add_or_modify_resp_list, 1, 64, true)); } - if (add_dl_qos_flow_per_tnl_info_present) { + if (add_dl_qos_flow_per_tnl_info.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); } - if (qos_flow_failed_to_add_or_modify_list_present) { + if (qos_flow_failed_to_add_or_modify_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_add_or_modify_list, 1, 64, true)); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -49316,9 +49349,13 @@ SRSASN_CODE pdu_session_res_modify_resp_transfer_s::unpack(cbit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(dl_ngu_up_tnl_info_present, 1)); HANDLE_CODE(bref.unpack(ul_ngu_up_tnl_info_present, 1)); + bool qos_flow_add_or_modify_resp_list_present; HANDLE_CODE(bref.unpack(qos_flow_add_or_modify_resp_list_present, 1)); + bool add_dl_qos_flow_per_tnl_info_present; HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); + bool qos_flow_failed_to_add_or_modify_list_present; HANDLE_CODE(bref.unpack(qos_flow_failed_to_add_or_modify_list_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); if (dl_ngu_up_tnl_info_present) { @@ -49353,28 +49390,28 @@ void pdu_session_res_modify_resp_transfer_s::to_json(json_writer& j) const j.write_fieldname("uL-NGU-UP-TNLInformation"); ul_ngu_up_tnl_info.to_json(j); } - if (qos_flow_add_or_modify_resp_list_present) { + if (qos_flow_add_or_modify_resp_list.size() > 0) { j.start_array("qosFlowAddOrModifyResponseList"); for (const auto& e1 : qos_flow_add_or_modify_resp_list) { e1.to_json(j); } j.end_array(); } - if (add_dl_qos_flow_per_tnl_info_present) { + if (add_dl_qos_flow_per_tnl_info.size() > 0) { j.start_array("additionalDLQosFlowPerTNLInformation"); for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { e1.to_json(j); } j.end_array(); } - if (qos_flow_failed_to_add_or_modify_list_present) { + if (qos_flow_failed_to_add_or_modify_list.size() > 0) { j.start_array("qosFlowFailedToAddOrModifyList"); for (const auto& e1 : qos_flow_failed_to_add_or_modify_list) { e1.to_json(j); } j.end_array(); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -49496,10 +49533,10 @@ const char* pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::types_opt SRSASN_CODE pdu_session_res_notify_released_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); HANDLE_CODE(cause.pack(bref)); - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -49508,6 +49545,7 @@ SRSASN_CODE pdu_session_res_notify_released_transfer_s::pack(bit_ref& bref) cons SRSASN_CODE pdu_session_res_notify_released_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(cause.unpack(bref)); @@ -49522,7 +49560,7 @@ void pdu_session_res_notify_released_transfer_s::to_json(json_writer& j) const j.start_obj(); j.write_fieldname("cause"); cause.to_json(j); - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -49640,17 +49678,17 @@ const char* pdu_session_res_notify_transfer_ext_ies_o::ext_c::types_opts::to_str SRSASN_CODE pdu_session_res_notify_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(qos_flow_notify_list_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_released_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_notify_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(qos_flow_released_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); - if (qos_flow_notify_list_present) { + if (qos_flow_notify_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_notify_list, 1, 64, true)); } - if (qos_flow_released_list_present) { + if (qos_flow_released_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_released_list, 1, 64, true)); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -49659,8 +49697,11 @@ SRSASN_CODE pdu_session_res_notify_transfer_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_notify_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool qos_flow_notify_list_present; HANDLE_CODE(bref.unpack(qos_flow_notify_list_present, 1)); + bool qos_flow_released_list_present; HANDLE_CODE(bref.unpack(qos_flow_released_list_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); if (qos_flow_notify_list_present) { @@ -49678,21 +49719,21 @@ SRSASN_CODE pdu_session_res_notify_transfer_s::unpack(cbit_ref& bref) void pdu_session_res_notify_transfer_s::to_json(json_writer& j) const { j.start_obj(); - if (qos_flow_notify_list_present) { + if (qos_flow_notify_list.size() > 0) { j.start_array("qosFlowNotifyList"); for (const auto& e1 : qos_flow_notify_list) { e1.to_json(j); } j.end_array(); } - if (qos_flow_released_list_present) { + if (qos_flow_released_list.size() > 0) { j.start_array("qosFlowReleasedList"); for (const auto& e1 : qos_flow_released_list) { e1.to_json(j); } j.end_array(); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -49802,9 +49843,9 @@ const char* pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::types_opts:: SRSASN_CODE pdu_session_res_release_resp_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -49813,6 +49854,7 @@ SRSASN_CODE pdu_session_res_release_resp_transfer_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_release_resp_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); if (ie_exts_present) { @@ -49824,7 +49866,7 @@ SRSASN_CODE pdu_session_res_release_resp_transfer_s::unpack(cbit_ref& bref) void pdu_session_res_release_resp_transfer_s::to_json(json_writer& j) const { j.start_obj(); - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -49987,14 +50029,14 @@ SRSASN_CODE security_ind_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(maximum_integrity_protected_data_rate_ul_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); HANDLE_CODE(integrity_protection_ind.pack(bref)); HANDLE_CODE(confidentiality_protection_ind.pack(bref)); if (maximum_integrity_protected_data_rate_ul_present) { HANDLE_CODE(maximum_integrity_protected_data_rate_ul.pack(bref)); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -50004,6 +50046,7 @@ SRSASN_CODE security_ind_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(maximum_integrity_protected_data_rate_ul_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(integrity_protection_ind.unpack(bref)); @@ -50025,7 +50068,7 @@ void security_ind_s::to_json(json_writer& j) const if (maximum_integrity_protected_data_rate_ul_present) { j.write_str("maximumIntegrityProtectedDataRate-UL", maximum_integrity_protected_data_rate_ul.to_string()); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -50645,19 +50688,19 @@ void pdu_session_res_setup_request_transfer_ies_container::to_json(json_writer& SRSASN_CODE pdu_session_res_setup_resp_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info.size() > 0, 1)); HANDLE_CODE(bref.pack(security_result_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_failed_to_setup_list_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_failed_to_setup_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(dlqos_flow_per_tnl_info.pack(bref)); - if (add_dl_qos_flow_per_tnl_info_present) { + if (add_dl_qos_flow_per_tnl_info.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); } if (security_result_present) { HANDLE_CODE(security_result.pack(bref)); } - if (qos_flow_failed_to_setup_list_present) { + if (qos_flow_failed_to_setup_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_setup_list, 1, 64, true)); } if (ie_exts_present) { @@ -50669,8 +50712,10 @@ SRSASN_CODE pdu_session_res_setup_resp_transfer_s::pack(bit_ref& bref) const SRSASN_CODE pdu_session_res_setup_resp_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool add_dl_qos_flow_per_tnl_info_present; HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); HANDLE_CODE(bref.unpack(security_result_present, 1)); + bool qos_flow_failed_to_setup_list_present; HANDLE_CODE(bref.unpack(qos_flow_failed_to_setup_list_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -50695,7 +50740,7 @@ void pdu_session_res_setup_resp_transfer_s::to_json(json_writer& j) const j.start_obj(); j.write_fieldname("dLQosFlowPerTNLInformation"); dlqos_flow_per_tnl_info.to_json(j); - if (add_dl_qos_flow_per_tnl_info_present) { + if (add_dl_qos_flow_per_tnl_info.size() > 0) { j.start_array("additionalDLQosFlowPerTNLInformation"); for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { e1.to_json(j); @@ -50706,7 +50751,7 @@ void pdu_session_res_setup_resp_transfer_s::to_json(json_writer& j) const j.write_fieldname("securityResult"); security_result.to_json(j); } - if (qos_flow_failed_to_setup_list_present) { + if (qos_flow_failed_to_setup_list.size() > 0) { j.start_array("qosFlowFailedToSetupList"); for (const auto& e1 : qos_flow_failed_to_setup_list) { e1.to_json(j); @@ -50841,7 +50886,7 @@ SRSASN_CODE path_switch_request_ack_transfer_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(ul_ngu_up_tnl_info_present, 1)); HANDLE_CODE(bref.pack(security_ind_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); if (ul_ngu_up_tnl_info_present) { HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); @@ -50849,7 +50894,7 @@ SRSASN_CODE path_switch_request_ack_transfer_s::pack(bit_ref& bref) const if (security_ind_present) { HANDLE_CODE(security_ind.pack(bref)); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -50860,6 +50905,7 @@ SRSASN_CODE path_switch_request_ack_transfer_s::unpack(cbit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ul_ngu_up_tnl_info_present, 1)); HANDLE_CODE(bref.unpack(security_ind_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); if (ul_ngu_up_tnl_info_present) { @@ -50885,7 +50931,7 @@ void path_switch_request_ack_transfer_s::to_json(json_writer& j) const j.write_fieldname("securityIndication"); security_ind.to_json(j); } - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -51083,7 +51129,7 @@ SRSASN_CODE path_switch_request_transfer_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(dl_ngu_tnl_info_reused_present, 1)); HANDLE_CODE(bref.pack(user_plane_security_info_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); + HANDLE_CODE(bref.pack(ie_exts.size() > 0, 1)); HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); if (dl_ngu_tnl_info_reused_present) { @@ -51093,7 +51139,7 @@ SRSASN_CODE path_switch_request_transfer_s::pack(bit_ref& bref) const HANDLE_CODE(user_plane_security_info.pack(bref)); } HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_accepted_list, 1, 64, true)); - if (ie_exts_present) { + if (ie_exts.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } @@ -51104,6 +51150,7 @@ SRSASN_CODE path_switch_request_transfer_s::unpack(cbit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(dl_ngu_tnl_info_reused_present, 1)); HANDLE_CODE(bref.unpack(user_plane_security_info_present, 1)); + bool ie_exts_present; HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); @@ -51137,7 +51184,7 @@ void path_switch_request_transfer_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (ie_exts_present) { + if (ie_exts.size() > 0) { j.write_fieldname("iE-Extensions"); } j.end_obj(); @@ -51316,16 +51363,16 @@ void secondary_rat_data_usage_report_transfer_s::to_json(json_writer& j) const SRSASN_CODE source_ngran_node_to_target_ngran_node_transparent_container_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(pdu_session_res_info_list_present, 1)); - HANDLE_CODE(bref.pack(erab_info_list_present, 1)); + HANDLE_CODE(bref.pack(pdu_session_res_info_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(erab_info_list.size() > 0, 1)); HANDLE_CODE(bref.pack(idx_to_rfsp_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(rrc_container.pack(bref)); - if (pdu_session_res_info_list_present) { + if (pdu_session_res_info_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, pdu_session_res_info_list, 1, 256, true)); } - if (erab_info_list_present) { + if (erab_info_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, erab_info_list, 1, 256, true)); } HANDLE_CODE(target_cell_id.pack(bref)); @@ -51342,7 +51389,9 @@ SRSASN_CODE source_ngran_node_to_target_ngran_node_transparent_container_s::pack SRSASN_CODE source_ngran_node_to_target_ngran_node_transparent_container_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool pdu_session_res_info_list_present; HANDLE_CODE(bref.unpack(pdu_session_res_info_list_present, 1)); + bool erab_info_list_present; HANDLE_CODE(bref.unpack(erab_info_list_present, 1)); HANDLE_CODE(bref.unpack(idx_to_rfsp_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -51369,14 +51418,14 @@ void source_ngran_node_to_target_ngran_node_transparent_container_s::to_json(jso { j.start_obj(); j.write_str("rRCContainer", rrc_container.to_string()); - if (pdu_session_res_info_list_present) { + if (pdu_session_res_info_list.size() > 0) { j.start_array("pDUSessionResourceInformationList"); for (const auto& e1 : pdu_session_res_info_list) { e1.to_json(j); } j.end_array(); } - if (erab_info_list_present) { + if (erab_info_list.size() > 0) { j.start_array("e-RABInformationList"); for (const auto& e1 : erab_info_list) { e1.to_json(j); diff --git a/lib/src/asn1/rrc_nr.cc b/lib/src/asn1/rrc_nr.cc index 2267d4ff8..5d8300ce2 100644 --- a/lib/src/asn1/rrc_nr.cc +++ b/lib/src/asn1/rrc_nr.cc @@ -372,10 +372,10 @@ void eutra_freq_neigh_cell_info_s::to_json(json_writer& j) const // EUTRA-MultiBandInfo ::= SEQUENCE SRSASN_CODE eutra_multi_band_info_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(eutra_ns_pmax_list_present, 1)); + HANDLE_CODE(bref.pack(eutra_ns_pmax_list.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, eutra_freq_band_ind, (uint16_t)1u, (uint16_t)256u)); - if (eutra_ns_pmax_list_present) { + if (eutra_ns_pmax_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, eutra_ns_pmax_list, 1, 8)); } @@ -383,6 +383,7 @@ SRSASN_CODE eutra_multi_band_info_s::pack(bit_ref& bref) const } SRSASN_CODE eutra_multi_band_info_s::unpack(cbit_ref& bref) { + bool eutra_ns_pmax_list_present; HANDLE_CODE(bref.unpack(eutra_ns_pmax_list_present, 1)); HANDLE_CODE(unpack_integer(eutra_freq_band_ind, bref, (uint16_t)1u, (uint16_t)256u)); @@ -396,7 +397,7 @@ void eutra_multi_band_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("eutra-FreqBandIndicator", eutra_freq_band_ind); - if (eutra_ns_pmax_list_present) { + if (eutra_ns_pmax_list.size() > 0) { j.start_array("eutra-NS-PmaxList"); for (const auto& e1 : eutra_ns_pmax_list) { e1.to_json(j); @@ -529,12 +530,12 @@ void inter_freq_neigh_cell_info_s::to_json(json_writer& j) const SRSASN_CODE nr_multi_band_info_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(freq_band_ind_nr_present, 1)); - HANDLE_CODE(bref.pack(nr_ns_pmax_list_present, 1)); + HANDLE_CODE(bref.pack(nr_ns_pmax_list.size() > 0, 1)); if (freq_band_ind_nr_present) { HANDLE_CODE(pack_integer(bref, freq_band_ind_nr, (uint16_t)1u, (uint16_t)1024u)); } - if (nr_ns_pmax_list_present) { + if (nr_ns_pmax_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, nr_ns_pmax_list, 1, 8)); } @@ -543,6 +544,7 @@ SRSASN_CODE nr_multi_band_info_s::pack(bit_ref& bref) const SRSASN_CODE nr_multi_band_info_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(freq_band_ind_nr_present, 1)); + bool nr_ns_pmax_list_present; HANDLE_CODE(bref.unpack(nr_ns_pmax_list_present, 1)); if (freq_band_ind_nr_present) { @@ -560,7 +562,7 @@ void nr_multi_band_info_s::to_json(json_writer& j) const if (freq_band_ind_nr_present) { j.write_int("freqBandIndicatorNR", freq_band_ind_nr); } - if (nr_ns_pmax_list_present) { + if (nr_ns_pmax_list.size() > 0) { j.start_array("nr-NS-PmaxList"); for (const auto& e1 : nr_ns_pmax_list) { e1.to_json(j); @@ -734,8 +736,8 @@ const char* cell_resel_sub_prio_opts::to_number_string() const SRSASN_CODE ctrl_res_set_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(tci_states_pdcch_to_add_list_present, 1)); - HANDLE_CODE(bref.pack(tci_states_pdcch_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(tci_states_pdcch_to_add_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(tci_states_pdcch_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(tci_present_in_dci_present, 1)); HANDLE_CODE(bref.pack(pdcch_dmrs_scrambling_id_present, 1)); @@ -744,10 +746,10 @@ SRSASN_CODE ctrl_res_set_s::pack(bit_ref& bref) const HANDLE_CODE(pack_integer(bref, dur, (uint8_t)1u, (uint8_t)3u)); HANDLE_CODE(cce_reg_map_type.pack(bref)); HANDLE_CODE(precoder_granularity.pack(bref)); - if (tci_states_pdcch_to_add_list_present) { + if (tci_states_pdcch_to_add_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, tci_states_pdcch_to_add_list, 1, 64, integer_packer(0, 127))); } - if (tci_states_pdcch_to_release_list_present) { + if (tci_states_pdcch_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, tci_states_pdcch_to_release_list, 1, 64, integer_packer(0, 127))); } if (pdcch_dmrs_scrambling_id_present) { @@ -759,7 +761,9 @@ SRSASN_CODE ctrl_res_set_s::pack(bit_ref& bref) const SRSASN_CODE ctrl_res_set_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool tci_states_pdcch_to_add_list_present; HANDLE_CODE(bref.unpack(tci_states_pdcch_to_add_list_present, 1)); + bool tci_states_pdcch_to_release_list_present; HANDLE_CODE(bref.unpack(tci_states_pdcch_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(tci_present_in_dci_present, 1)); HANDLE_CODE(bref.unpack(pdcch_dmrs_scrambling_id_present, 1)); @@ -790,14 +794,14 @@ void ctrl_res_set_s::to_json(json_writer& j) const j.write_fieldname("cce-REG-MappingType"); cce_reg_map_type.to_json(j); j.write_str("precoderGranularity", precoder_granularity.to_string()); - if (tci_states_pdcch_to_add_list_present) { + if (tci_states_pdcch_to_add_list.size() > 0) { j.start_array("tci-StatesPDCCH-ToAddList"); for (const auto& e1 : tci_states_pdcch_to_add_list) { j.write_int(e1); } j.end_array(); } - if (tci_states_pdcch_to_release_list_present) { + if (tci_states_pdcch_to_release_list.size() > 0) { j.start_array("tci-StatesPDCCH-ToReleaseList"); for (const auto& e1 : tci_states_pdcch_to_release_list) { j.write_int(e1); @@ -2558,21 +2562,21 @@ void bwp_s::to_json(json_writer& j) const // CarrierFreqEUTRA ::= SEQUENCE SRSASN_CODE carrier_freq_eutra_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(eutra_multi_band_info_list_present, 1)); - HANDLE_CODE(bref.pack(eutra_freq_neigh_cell_list_present, 1)); - HANDLE_CODE(bref.pack(eutra_black_cell_list_present, 1)); + HANDLE_CODE(bref.pack(eutra_multi_band_info_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(eutra_freq_neigh_cell_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(eutra_black_cell_list.size() > 0, 1)); HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); HANDLE_CODE(bref.pack(cell_resel_sub_prio_present, 1)); HANDLE_CODE(bref.pack(thresh_x_q_present, 1)); HANDLE_CODE(pack_integer(bref, carrier_freq, (uint32_t)0u, (uint32_t)262143u)); - if (eutra_multi_band_info_list_present) { + if (eutra_multi_band_info_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, eutra_multi_band_info_list, 1, 8)); } - if (eutra_freq_neigh_cell_list_present) { + if (eutra_freq_neigh_cell_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, eutra_freq_neigh_cell_list, 1, 8)); } - if (eutra_black_cell_list_present) { + if (eutra_black_cell_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, eutra_black_cell_list, 1, 16)); } HANDLE_CODE(allowed_meas_bw.pack(bref)); @@ -2597,8 +2601,11 @@ SRSASN_CODE carrier_freq_eutra_s::pack(bit_ref& bref) const } SRSASN_CODE carrier_freq_eutra_s::unpack(cbit_ref& bref) { + bool eutra_multi_band_info_list_present; HANDLE_CODE(bref.unpack(eutra_multi_band_info_list_present, 1)); + bool eutra_freq_neigh_cell_list_present; HANDLE_CODE(bref.unpack(eutra_freq_neigh_cell_list_present, 1)); + bool eutra_black_cell_list_present; HANDLE_CODE(bref.unpack(eutra_black_cell_list_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_sub_prio_present, 1)); @@ -2638,21 +2645,21 @@ void carrier_freq_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("carrierFreq", carrier_freq); - if (eutra_multi_band_info_list_present) { + if (eutra_multi_band_info_list.size() > 0) { j.start_array("eutra-multiBandInfoList"); for (const auto& e1 : eutra_multi_band_info_list) { e1.to_json(j); } j.end_array(); } - if (eutra_freq_neigh_cell_list_present) { + if (eutra_freq_neigh_cell_list.size() > 0) { j.start_array("eutra-FreqNeighCellList"); for (const auto& e1 : eutra_freq_neigh_cell_list) { e1.to_json(j); } j.end_array(); } - if (eutra_black_cell_list_present) { + if (eutra_black_cell_list.size() > 0) { j.start_array("eutra-BlackCellList"); for (const auto& e1 : eutra_black_cell_list) { e1.to_json(j); @@ -2686,8 +2693,8 @@ void carrier_freq_eutra_s::to_json(json_writer& j) const SRSASN_CODE inter_freq_carrier_freq_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(freq_band_list_present, 1)); - HANDLE_CODE(bref.pack(freq_band_list_sul_present, 1)); + HANDLE_CODE(bref.pack(freq_band_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(freq_band_list_sul.size() > 0, 1)); HANDLE_CODE(bref.pack(nrof_ss_blocks_to_average_present, 1)); HANDLE_CODE(bref.pack(abs_thresh_ss_blocks_consolidation_present, 1)); HANDLE_CODE(bref.pack(smtc_present, 1)); @@ -2701,14 +2708,14 @@ SRSASN_CODE inter_freq_carrier_freq_info_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); HANDLE_CODE(bref.pack(cell_resel_sub_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(bref.pack(inter_freq_neigh_cell_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(inter_freq_black_cell_list.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, dl_carrier_freq, (uint32_t)0u, (uint32_t)3279165u)); - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list, 1, 8)); } - if (freq_band_list_sul_present) { + if (freq_band_list_sul.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list_sul, 1, 8)); } if (nrof_ss_blocks_to_average_present) { @@ -2757,10 +2764,10 @@ SRSASN_CODE inter_freq_carrier_freq_info_s::pack(bit_ref& bref) const if (q_offset_freq_present) { HANDLE_CODE(q_offset_freq.pack(bref)); } - if (inter_freq_neigh_cell_list_present) { + if (inter_freq_neigh_cell_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_cell_list, 1, 16)); } - if (inter_freq_black_cell_list_present) { + if (inter_freq_black_cell_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_black_cell_list, 1, 16)); } @@ -2769,7 +2776,9 @@ SRSASN_CODE inter_freq_carrier_freq_info_s::pack(bit_ref& bref) const SRSASN_CODE inter_freq_carrier_freq_info_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool freq_band_list_present; HANDLE_CODE(bref.unpack(freq_band_list_present, 1)); + bool freq_band_list_sul_present; HANDLE_CODE(bref.unpack(freq_band_list_sul_present, 1)); HANDLE_CODE(bref.unpack(nrof_ss_blocks_to_average_present, 1)); HANDLE_CODE(bref.unpack(abs_thresh_ss_blocks_consolidation_present, 1)); @@ -2784,7 +2793,9 @@ SRSASN_CODE inter_freq_carrier_freq_info_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); HANDLE_CODE(bref.unpack(cell_resel_sub_prio_present, 1)); HANDLE_CODE(bref.unpack(q_offset_freq_present, 1)); + bool inter_freq_neigh_cell_list_present; HANDLE_CODE(bref.unpack(inter_freq_neigh_cell_list_present, 1)); + bool inter_freq_black_cell_list_present; HANDLE_CODE(bref.unpack(inter_freq_black_cell_list_present, 1)); HANDLE_CODE(unpack_integer(dl_carrier_freq, bref, (uint32_t)0u, (uint32_t)3279165u)); @@ -2853,14 +2864,14 @@ void inter_freq_carrier_freq_info_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("dl-CarrierFreq", dl_carrier_freq); - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { j.start_array("frequencyBandList"); for (const auto& e1 : freq_band_list) { e1.to_json(j); } j.end_array(); } - if (freq_band_list_sul_present) { + if (freq_band_list_sul.size() > 0) { j.start_array("frequencyBandListSUL"); for (const auto& e1 : freq_band_list_sul) { e1.to_json(j); @@ -2921,14 +2932,14 @@ void inter_freq_carrier_freq_info_s::to_json(json_writer& j) const if (q_offset_freq_present) { j.write_str("q-OffsetFreq", q_offset_freq.to_string()); } - if (inter_freq_neigh_cell_list_present) { + if (inter_freq_neigh_cell_list.size() > 0) { j.start_array("interFreqNeighCellList"); for (const auto& e1 : inter_freq_neigh_cell_list) { e1.to_json(j); } j.end_array(); } - if (inter_freq_black_cell_list_present) { + if (inter_freq_black_cell_list.size() > 0) { j.start_array("interFreqBlackCellList"); for (const auto& e1 : inter_freq_black_cell_list) { e1.to_json(j); @@ -3005,7 +3016,7 @@ SRSASN_CODE pdcch_cfg_common_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(ctrl_res_set_zero_present, 1)); HANDLE_CODE(bref.pack(common_ctrl_res_set_present, 1)); HANDLE_CODE(bref.pack(search_space_zero_present, 1)); - HANDLE_CODE(bref.pack(common_search_space_list_present, 1)); + HANDLE_CODE(bref.pack(common_search_space_list.size() > 0, 1)); HANDLE_CODE(bref.pack(search_space_sib1_present, 1)); HANDLE_CODE(bref.pack(search_space_other_sys_info_present, 1)); HANDLE_CODE(bref.pack(paging_search_space_present, 1)); @@ -3020,7 +3031,7 @@ SRSASN_CODE pdcch_cfg_common_s::pack(bit_ref& bref) const if (search_space_zero_present) { HANDLE_CODE(pack_integer(bref, search_space_zero, (uint8_t)0u, (uint8_t)15u)); } - if (common_search_space_list_present) { + if (common_search_space_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, common_search_space_list, 1, 4)); } if (search_space_sib1_present) { @@ -3039,7 +3050,7 @@ SRSASN_CODE pdcch_cfg_common_s::pack(bit_ref& bref) const if (ext) { ext_groups_packer_guard group_flags; group_flags[0] |= first_pdcch_monitoring_occasion_of_po.is_present(); - HANDLE_CODE(group_flags.pack(bref)); + group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard varlen_scope(bref, false); @@ -3058,6 +3069,7 @@ SRSASN_CODE pdcch_cfg_common_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(ctrl_res_set_zero_present, 1)); HANDLE_CODE(bref.unpack(common_ctrl_res_set_present, 1)); HANDLE_CODE(bref.unpack(search_space_zero_present, 1)); + bool common_search_space_list_present; HANDLE_CODE(bref.unpack(common_search_space_list_present, 1)); HANDLE_CODE(bref.unpack(search_space_sib1_present, 1)); HANDLE_CODE(bref.unpack(search_space_other_sys_info_present, 1)); @@ -3091,7 +3103,7 @@ SRSASN_CODE pdcch_cfg_common_s::unpack(cbit_ref& bref) if (ext) { ext_groups_unpacker_guard group_flags(1); - HANDLE_CODE(group_flags.unpack(bref)); + group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard varlen_scope(bref, false); @@ -3119,7 +3131,7 @@ void pdcch_cfg_common_s::to_json(json_writer& j) const if (search_space_zero_present) { j.write_int("searchSpaceZero", search_space_zero); } - if (common_search_space_list_present) { + if (common_search_space_list.size() > 0) { j.start_array("commonSearchSpaceList"); for (const auto& e1 : common_search_space_list) { e1.to_json(j); @@ -3545,9 +3557,9 @@ const char* pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::types_ SRSASN_CODE pdsch_cfg_common_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(pdsch_time_domain_alloc_list_present, 1)); + HANDLE_CODE(bref.pack(pdsch_time_domain_alloc_list.size() > 0, 1)); - if (pdsch_time_domain_alloc_list_present) { + if (pdsch_time_domain_alloc_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, pdsch_time_domain_alloc_list, 1, 16)); } @@ -3556,6 +3568,7 @@ SRSASN_CODE pdsch_cfg_common_s::pack(bit_ref& bref) const SRSASN_CODE pdsch_cfg_common_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool pdsch_time_domain_alloc_list_present; HANDLE_CODE(bref.unpack(pdsch_time_domain_alloc_list_present, 1)); if (pdsch_time_domain_alloc_list_present) { @@ -3567,7 +3580,7 @@ SRSASN_CODE pdsch_cfg_common_s::unpack(cbit_ref& bref) void pdsch_cfg_common_s::to_json(json_writer& j) const { j.start_obj(); - if (pdsch_time_domain_alloc_list_present) { + if (pdsch_time_domain_alloc_list.size() > 0) { j.start_array("pdsch-TimeDomainAllocationList"); for (const auto& e1 : pdsch_time_domain_alloc_list) { e1.to_json(j); @@ -3686,11 +3699,11 @@ SRSASN_CODE pusch_cfg_common_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(group_hop_enabled_transform_precoding_present, 1)); - HANDLE_CODE(bref.pack(pusch_time_domain_alloc_list_present, 1)); + HANDLE_CODE(bref.pack(pusch_time_domain_alloc_list.size() > 0, 1)); HANDLE_CODE(bref.pack(msg3_delta_preamb_present, 1)); HANDLE_CODE(bref.pack(p0_nominal_with_grant_present, 1)); - if (pusch_time_domain_alloc_list_present) { + if (pusch_time_domain_alloc_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, pusch_time_domain_alloc_list, 1, 16)); } if (msg3_delta_preamb_present) { @@ -3706,6 +3719,7 @@ SRSASN_CODE pusch_cfg_common_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(group_hop_enabled_transform_precoding_present, 1)); + bool pusch_time_domain_alloc_list_present; HANDLE_CODE(bref.unpack(pusch_time_domain_alloc_list_present, 1)); HANDLE_CODE(bref.unpack(msg3_delta_preamb_present, 1)); HANDLE_CODE(bref.unpack(p0_nominal_with_grant_present, 1)); @@ -3728,7 +3742,7 @@ void pusch_cfg_common_s::to_json(json_writer& j) const if (group_hop_enabled_transform_precoding_present) { j.write_str("groupHoppingEnabledTransformPrecoding", "enabled"); } - if (pusch_time_domain_alloc_list_present) { + if (pusch_time_domain_alloc_list.size() > 0) { j.start_array("pusch-TimeDomainAllocationList"); for (const auto& e1 : pusch_time_domain_alloc_list) { e1.to_json(j); @@ -4688,12 +4702,12 @@ void freq_info_dl_sib_s::to_json(json_writer& j) const SRSASN_CODE freq_info_ul_sib_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(freq_band_list_present, 1)); + HANDLE_CODE(bref.pack(freq_band_list.size() > 0, 1)); HANDLE_CODE(bref.pack(absolute_freq_point_a_present, 1)); HANDLE_CODE(bref.pack(p_max_present, 1)); HANDLE_CODE(bref.pack(freq_shift7p5khz_present, 1)); - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list, 1, 8)); } if (absolute_freq_point_a_present) { @@ -4709,6 +4723,7 @@ SRSASN_CODE freq_info_ul_sib_s::pack(bit_ref& bref) const SRSASN_CODE freq_info_ul_sib_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool freq_band_list_present; HANDLE_CODE(bref.unpack(freq_band_list_present, 1)); HANDLE_CODE(bref.unpack(absolute_freq_point_a_present, 1)); HANDLE_CODE(bref.unpack(p_max_present, 1)); @@ -4730,7 +4745,7 @@ SRSASN_CODE freq_info_ul_sib_s::unpack(cbit_ref& bref) void freq_info_ul_sib_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { j.start_array("frequencyBandList"); for (const auto& e1 : freq_band_list) { e1.to_json(j); @@ -5943,8 +5958,8 @@ SRSASN_CODE sib2_s::intra_freq_cell_resel_info_s_::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(q_rx_lev_min_sul_present, 1)); HANDLE_CODE(bref.pack(q_qual_min_present, 1)); HANDLE_CODE(bref.pack(s_intra_search_q_present, 1)); - HANDLE_CODE(bref.pack(freq_band_list_present, 1)); - HANDLE_CODE(bref.pack(freq_band_list_sul_present, 1)); + HANDLE_CODE(bref.pack(freq_band_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(freq_band_list_sul.size() > 0, 1)); HANDLE_CODE(bref.pack(p_max_present, 1)); HANDLE_CODE(bref.pack(smtc_present, 1)); HANDLE_CODE(bref.pack(ss_rssi_meas_present, 1)); @@ -5962,10 +5977,10 @@ SRSASN_CODE sib2_s::intra_freq_cell_resel_info_s_::pack(bit_ref& bref) const HANDLE_CODE(pack_integer(bref, s_intra_search_q, (uint8_t)0u, (uint8_t)31u)); } HANDLE_CODE(pack_integer(bref, t_resel_nr, (uint8_t)0u, (uint8_t)7u)); - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list, 1, 8)); } - if (freq_band_list_sul_present) { + if (freq_band_list_sul.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list_sul, 1, 8)); } if (p_max_present) { @@ -6004,7 +6019,9 @@ SRSASN_CODE sib2_s::intra_freq_cell_resel_info_s_::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(q_rx_lev_min_sul_present, 1)); HANDLE_CODE(bref.unpack(q_qual_min_present, 1)); HANDLE_CODE(bref.unpack(s_intra_search_q_present, 1)); + bool freq_band_list_present; HANDLE_CODE(bref.unpack(freq_band_list_present, 1)); + bool freq_band_list_sul_present; HANDLE_CODE(bref.unpack(freq_band_list_sul_present, 1)); HANDLE_CODE(bref.unpack(p_max_present, 1)); HANDLE_CODE(bref.unpack(smtc_present, 1)); @@ -6075,14 +6092,14 @@ void sib2_s::intra_freq_cell_resel_info_s_::to_json(json_writer& j) const j.write_int("s-IntraSearchQ", s_intra_search_q); } j.write_int("t-ReselectionNR", t_resel_nr); - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { j.start_array("frequencyBandList"); for (const auto& e1 : freq_band_list) { e1.to_json(j); } j.end_array(); } - if (freq_band_list_sul_present) { + if (freq_band_list_sul.size() > 0) { j.start_array("frequencyBandListSUL"); for (const auto& e1 : freq_band_list_sul) { e1.to_json(j); @@ -6118,17 +6135,17 @@ void sib2_s::intra_freq_cell_resel_info_s_::to_json(json_writer& j) const SRSASN_CODE sib3_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(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(intra_freq_neigh_cell_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(intra_freq_black_cell_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); - if (intra_freq_neigh_cell_list_present) { + if (intra_freq_neigh_cell_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, intra_freq_neigh_cell_list, 1, 16)); } - if (intra_freq_black_cell_list_present) { + if (intra_freq_black_cell_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, intra_freq_black_cell_list, 1, 16)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -6137,8 +6154,11 @@ SRSASN_CODE sib3_s::pack(bit_ref& bref) const SRSASN_CODE sib3_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool intra_freq_neigh_cell_list_present; HANDLE_CODE(bref.unpack(intra_freq_neigh_cell_list_present, 1)); + bool intra_freq_black_cell_list_present; HANDLE_CODE(bref.unpack(intra_freq_black_cell_list_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (intra_freq_neigh_cell_list_present) { @@ -6156,21 +6176,21 @@ SRSASN_CODE sib3_s::unpack(cbit_ref& bref) void sib3_s::to_json(json_writer& j) const { j.start_obj(); - if (intra_freq_neigh_cell_list_present) { + if (intra_freq_neigh_cell_list.size() > 0) { j.start_array("intraFreqNeighCellList"); for (const auto& e1 : intra_freq_neigh_cell_list) { e1.to_json(j); } j.end_array(); } - if (intra_freq_black_cell_list_present) { + if (intra_freq_black_cell_list.size() > 0) { j.start_array("intraFreqBlackCellList"); for (const auto& e1 : intra_freq_black_cell_list) { e1.to_json(j); } j.end_array(); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); @@ -6180,10 +6200,10 @@ void sib3_s::to_json(json_writer& j) const SRSASN_CODE sib4_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list, 1, 8)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -6192,6 +6212,7 @@ SRSASN_CODE sib4_s::pack(bit_ref& bref) const SRSASN_CODE sib4_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list, bref, 1, 8)); @@ -6209,7 +6230,7 @@ void sib4_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); @@ -6219,18 +6240,18 @@ void sib4_s::to_json(json_writer& j) const SRSASN_CODE sib5_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(carrier_freq_list_eutra_present, 1)); + HANDLE_CODE(bref.pack(carrier_freq_list_eutra.size() > 0, 1)); HANDLE_CODE(bref.pack(t_resel_eutra_sf_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); - if (carrier_freq_list_eutra_present) { + if (carrier_freq_list_eutra.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_eutra, 1, 8)); } HANDLE_CODE(pack_integer(bref, t_resel_eutra, (uint8_t)0u, (uint8_t)7u)); if (t_resel_eutra_sf_present) { HANDLE_CODE(t_resel_eutra_sf.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -6239,8 +6260,10 @@ SRSASN_CODE sib5_s::pack(bit_ref& bref) const SRSASN_CODE sib5_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool carrier_freq_list_eutra_present; HANDLE_CODE(bref.unpack(carrier_freq_list_eutra_present, 1)); HANDLE_CODE(bref.unpack(t_resel_eutra_sf_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (carrier_freq_list_eutra_present) { @@ -6259,7 +6282,7 @@ SRSASN_CODE sib5_s::unpack(cbit_ref& bref) void sib5_s::to_json(json_writer& j) const { j.start_obj(); - if (carrier_freq_list_eutra_present) { + if (carrier_freq_list_eutra.size() > 0) { j.start_array("carrierFreqListEUTRA"); for (const auto& e1 : carrier_freq_list_eutra) { e1.to_json(j); @@ -6271,7 +6294,7 @@ void sib5_s::to_json(json_writer& j) const j.write_fieldname("t-ReselectionEUTRA-SF"); t_resel_eutra_sf.to_json(j); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); @@ -6281,12 +6304,12 @@ void sib5_s::to_json(json_writer& j) const SRSASN_CODE sib6_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(msg_id.pack(bref)); HANDLE_CODE(serial_num.pack(bref)); HANDLE_CODE(warning_type.pack(bref)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -6295,6 +6318,7 @@ SRSASN_CODE sib6_s::pack(bit_ref& bref) const SRSASN_CODE sib6_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(msg_id.unpack(bref)); @@ -6312,7 +6336,7 @@ void sib6_s::to_json(json_writer& j) const 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 (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); @@ -6323,7 +6347,7 @@ SRSASN_CODE sib7_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(data_coding_scheme_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(msg_id.pack(bref)); HANDLE_CODE(serial_num.pack(bref)); @@ -6333,7 +6357,7 @@ SRSASN_CODE sib7_s::pack(bit_ref& bref) const if (data_coding_scheme_present) { HANDLE_CODE(data_coding_scheme.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -6343,6 +6367,7 @@ SRSASN_CODE sib7_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(data_coding_scheme_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(msg_id.unpack(bref)); @@ -6370,7 +6395,7 @@ void sib7_s::to_json(json_writer& j) const if (data_coding_scheme_present) { j.write_str("dataCodingScheme", data_coding_scheme.to_string()); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); @@ -6387,8 +6412,8 @@ SRSASN_CODE sib8_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(data_coding_scheme_present, 1)); - HANDLE_CODE(bref.pack(warning_area_coordinates_segment_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(warning_area_coordinates_segment.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(msg_id.pack(bref)); HANDLE_CODE(serial_num.pack(bref)); @@ -6398,10 +6423,10 @@ SRSASN_CODE sib8_s::pack(bit_ref& bref) const if (data_coding_scheme_present) { HANDLE_CODE(data_coding_scheme.pack(bref)); } - if (warning_area_coordinates_segment_present) { + if (warning_area_coordinates_segment.size() > 0) { HANDLE_CODE(warning_area_coordinates_segment.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -6411,7 +6436,9 @@ SRSASN_CODE sib8_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(data_coding_scheme_present, 1)); + bool warning_area_coordinates_segment_present; HANDLE_CODE(bref.unpack(warning_area_coordinates_segment_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(msg_id.unpack(bref)); @@ -6442,10 +6469,10 @@ void sib8_s::to_json(json_writer& j) const if (data_coding_scheme_present) { j.write_str("dataCodingScheme", data_coding_scheme.to_string()); } - if (warning_area_coordinates_segment_present) { + if (warning_area_coordinates_segment.size() > 0) { j.write_str("warningAreaCoordinatesSegment", warning_area_coordinates_segment.to_string()); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); @@ -6462,7 +6489,7 @@ SRSASN_CODE sib9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(time_info_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); if (time_info_present) { HANDLE_CODE(bref.pack(time_info.day_light_saving_time_present, 1)); @@ -6479,7 +6506,7 @@ SRSASN_CODE sib9_s::pack(bit_ref& bref) const HANDLE_CODE(pack_integer(bref, time_info.local_time_offset, (int8_t)-63, (int8_t)64)); } } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -6489,6 +6516,7 @@ SRSASN_CODE sib9_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(time_info_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); if (time_info_present) { @@ -6530,7 +6558,7 @@ void sib9_s::to_json(json_writer& j) const } j.end_obj(); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); @@ -7178,11 +7206,11 @@ uint8_t serving_cell_cfg_common_sib_s::ssb_periodicity_serving_cell_opts::to_num // SystemInformation-IEs ::= SEQUENCE SRSASN_CODE sys_info_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, sib_type_and_info, 1, 32)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -7190,6 +7218,7 @@ SRSASN_CODE sys_info_ies_s::pack(bit_ref& bref) const } SRSASN_CODE sys_info_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -7208,7 +7237,7 @@ void sys_info_ies_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -7659,7 +7688,7 @@ SRSASN_CODE sib1_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(ue_timers_and_consts_present, 1)); HANDLE_CODE(bref.pack(uac_barr_info_present, 1)); HANDLE_CODE(bref.pack(use_full_resume_id_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (cell_sel_info_present) { @@ -7695,13 +7724,13 @@ SRSASN_CODE sib1_s::pack(bit_ref& bref) const HANDLE_CODE(ue_timers_and_consts.pack(bref)); } if (uac_barr_info_present) { - HANDLE_CODE(bref.pack(uac_barr_info.uac_barr_for_common_present, 1)); - HANDLE_CODE(bref.pack(uac_barr_info.uac_barr_per_plmn_list_present, 1)); + HANDLE_CODE(bref.pack(uac_barr_info.uac_barr_for_common.size() > 0, 1)); + HANDLE_CODE(bref.pack(uac_barr_info.uac_barr_per_plmn_list.size() > 0, 1)); HANDLE_CODE(bref.pack(uac_barr_info.uac_access_category1_sel_assist_info_present, 1)); - if (uac_barr_info.uac_barr_for_common_present) { + if (uac_barr_info.uac_barr_for_common.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_info.uac_barr_for_common, 1, 63)); } - if (uac_barr_info.uac_barr_per_plmn_list_present) { + if (uac_barr_info.uac_barr_per_plmn_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_info.uac_barr_per_plmn_list, 1, 12)); } HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_info.uac_barr_info_set_list, 1, 8)); @@ -7709,7 +7738,7 @@ SRSASN_CODE sib1_s::pack(bit_ref& bref) const HANDLE_CODE(uac_barr_info.uac_access_category1_sel_assist_info.pack(bref)); } } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -7726,6 +7755,7 @@ SRSASN_CODE sib1_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(ue_timers_and_consts_present, 1)); HANDLE_CODE(bref.unpack(uac_barr_info_present, 1)); HANDLE_CODE(bref.unpack(use_full_resume_id_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -7762,13 +7792,15 @@ SRSASN_CODE sib1_s::unpack(cbit_ref& bref) HANDLE_CODE(ue_timers_and_consts.unpack(bref)); } if (uac_barr_info_present) { - HANDLE_CODE(bref.unpack(uac_barr_info.uac_barr_for_common_present, 1)); - HANDLE_CODE(bref.unpack(uac_barr_info.uac_barr_per_plmn_list_present, 1)); + bool uac_barr_for_common_present; + HANDLE_CODE(bref.unpack(uac_barr_for_common_present, 1)); + bool uac_barr_per_plmn_list_present; + HANDLE_CODE(bref.unpack(uac_barr_per_plmn_list_present, 1)); HANDLE_CODE(bref.unpack(uac_barr_info.uac_access_category1_sel_assist_info_present, 1)); - if (uac_barr_info.uac_barr_for_common_present) { + if (uac_barr_for_common_present) { HANDLE_CODE(unpack_dyn_seq_of(uac_barr_info.uac_barr_for_common, bref, 1, 63)); } - if (uac_barr_info.uac_barr_per_plmn_list_present) { + if (uac_barr_per_plmn_list_present) { HANDLE_CODE(unpack_dyn_seq_of(uac_barr_info.uac_barr_per_plmn_list, bref, 1, 12)); } HANDLE_CODE(unpack_dyn_seq_of(uac_barr_info.uac_barr_info_set_list, bref, 1, 8)); @@ -7830,14 +7862,14 @@ void sib1_s::to_json(json_writer& j) const if (uac_barr_info_present) { j.write_fieldname("uac-BarringInfo"); j.start_obj(); - if (uac_barr_info.uac_barr_for_common_present) { + if (uac_barr_info.uac_barr_for_common.size() > 0) { j.start_array("uac-BarringForCommon"); for (const auto& e1 : uac_barr_info.uac_barr_for_common) { e1.to_json(j); } j.end_array(); } - if (uac_barr_info.uac_barr_per_plmn_list_present) { + if (uac_barr_info.uac_barr_per_plmn_list.size() > 0) { j.start_array("uac-BarringPerPLMN-List"); for (const auto& e1 : uac_barr_info.uac_barr_per_plmn_list) { e1.to_json(j); @@ -7858,7 +7890,7 @@ void sib1_s::to_json(json_writer& j) const if (use_full_resume_id_present) { j.write_str("useFullResumeID", "true"); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -8852,17 +8884,17 @@ uint16_t pdcp_cfg_s::t_reordering_opts::to_number() const SRSASN_CODE sdap_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(mapped_qos_flows_to_add_present, 1)); - HANDLE_CODE(bref.pack(mapped_qos_flows_to_release_present, 1)); + HANDLE_CODE(bref.pack(mapped_qos_flows_to_add.size() > 0, 1)); + HANDLE_CODE(bref.pack(mapped_qos_flows_to_release.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, pdu_session, (uint16_t)0u, (uint16_t)255u)); HANDLE_CODE(sdap_hdr_dl.pack(bref)); HANDLE_CODE(sdap_hdr_ul.pack(bref)); HANDLE_CODE(bref.pack(default_drb, 1)); - if (mapped_qos_flows_to_add_present) { + if (mapped_qos_flows_to_add.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, mapped_qos_flows_to_add, 1, 64, integer_packer(0, 63))); } - if (mapped_qos_flows_to_release_present) { + if (mapped_qos_flows_to_release.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, mapped_qos_flows_to_release, 1, 64, integer_packer(0, 63))); } @@ -8871,7 +8903,9 @@ SRSASN_CODE sdap_cfg_s::pack(bit_ref& bref) const SRSASN_CODE sdap_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool mapped_qos_flows_to_add_present; HANDLE_CODE(bref.unpack(mapped_qos_flows_to_add_present, 1)); + bool mapped_qos_flows_to_release_present; HANDLE_CODE(bref.unpack(mapped_qos_flows_to_release_present, 1)); HANDLE_CODE(unpack_integer(pdu_session, bref, (uint16_t)0u, (uint16_t)255u)); @@ -8894,14 +8928,14 @@ void sdap_cfg_s::to_json(json_writer& j) const j.write_str("sdap-HeaderDL", sdap_hdr_dl.to_string()); j.write_str("sdap-HeaderUL", sdap_hdr_ul.to_string()); j.write_bool("defaultDRB", default_drb); - if (mapped_qos_flows_to_add_present) { + if (mapped_qos_flows_to_add.size() > 0) { j.start_array("mappedQoS-FlowsToAdd"); for (const auto& e1 : mapped_qos_flows_to_add) { j.write_int(e1); } j.end_array(); } - if (mapped_qos_flows_to_release_present) { + if (mapped_qos_flows_to_release.size() > 0) { j.start_array("mappedQoS-FlowsToRelease"); for (const auto& e1 : mapped_qos_flows_to_release) { j.write_int(e1); @@ -9246,19 +9280,19 @@ const char* security_cfg_s::key_to_use_opts::to_string() const SRSASN_CODE radio_bearer_cfg_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(srb_to_add_mod_list.size() > 0, 1)); HANDLE_CODE(bref.pack(srb3_to_release_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(drb_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(drb_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(security_cfg_present, 1)); - if (srb_to_add_mod_list_present) { + if (srb_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, srb_to_add_mod_list, 1, 2)); } - if (drb_to_add_mod_list_present) { + if (drb_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_add_mod_list, 1, 29)); } - if (drb_to_release_list_present) { + if (drb_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, drb_to_release_list, 1, 29, integer_packer(1, 32))); } if (security_cfg_present) { @@ -9270,9 +9304,12 @@ SRSASN_CODE radio_bearer_cfg_s::pack(bit_ref& bref) const SRSASN_CODE radio_bearer_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool srb_to_add_mod_list_present; HANDLE_CODE(bref.unpack(srb_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(srb3_to_release_present, 1)); + bool drb_to_add_mod_list_present; HANDLE_CODE(bref.unpack(drb_to_add_mod_list_present, 1)); + bool drb_to_release_list_present; HANDLE_CODE(bref.unpack(drb_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(security_cfg_present, 1)); @@ -9294,7 +9331,7 @@ SRSASN_CODE radio_bearer_cfg_s::unpack(cbit_ref& bref) void radio_bearer_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (srb_to_add_mod_list_present) { + if (srb_to_add_mod_list.size() > 0) { j.start_array("srb-ToAddModList"); for (const auto& e1 : srb_to_add_mod_list) { e1.to_json(j); @@ -9304,14 +9341,14 @@ void radio_bearer_cfg_s::to_json(json_writer& j) const if (srb3_to_release_present) { j.write_str("srb3-ToRelease", "true"); } - if (drb_to_add_mod_list_present) { + if (drb_to_add_mod_list.size() > 0) { j.start_array("drb-ToAddModList"); for (const auto& e1 : drb_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (drb_to_release_list_present) { + if (drb_to_release_list.size() > 0) { j.start_array("drb-ToReleaseList"); for (const auto& e1 : drb_to_release_list) { j.write_int(e1); @@ -9329,13 +9366,13 @@ void radio_bearer_cfg_s::to_json(json_writer& j) const SRSASN_CODE rrc_reject_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(wait_time_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (wait_time_present) { HANDLE_CODE(pack_integer(bref, wait_time, (uint8_t)1u, (uint8_t)16u)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -9344,6 +9381,7 @@ SRSASN_CODE rrc_reject_ies_s::pack(bit_ref& bref) const SRSASN_CODE rrc_reject_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(wait_time_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -9362,7 +9400,7 @@ void rrc_reject_ies_s::to_json(json_writer& j) const if (wait_time_present) { j.write_int("waitTime", wait_time); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -9376,12 +9414,12 @@ void rrc_reject_ies_s::to_json(json_writer& j) const // RRCSetup-IEs ::= SEQUENCE SRSASN_CODE rrc_setup_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(radio_bearer_cfg.pack(bref)); HANDLE_CODE(master_cell_group.pack(bref)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -9389,6 +9427,7 @@ SRSASN_CODE rrc_setup_ies_s::pack(bit_ref& bref) const } SRSASN_CODE rrc_setup_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -9406,7 +9445,7 @@ void rrc_setup_ies_s::to_json(json_writer& j) const j.write_fieldname("radioBearerConfig"); radio_bearer_cfg.to_json(j); j.write_str("masterCellGroup", master_cell_group.to_string()); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -11916,10 +11955,10 @@ int8_t periodical_report_cfg_inter_rat_s::report_amount_opts::to_number() const // RAN-AreaConfig ::= SEQUENCE SRSASN_CODE ran_area_cfg_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ran_area_code_list_present, 1)); + HANDLE_CODE(bref.pack(ran_area_code_list.size() > 0, 1)); HANDLE_CODE(tac.pack(bref)); - if (ran_area_code_list_present) { + if (ran_area_code_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ran_area_code_list, 1, 32, integer_packer(0, 255))); } @@ -11927,6 +11966,7 @@ SRSASN_CODE ran_area_cfg_s::pack(bit_ref& bref) const } SRSASN_CODE ran_area_cfg_s::unpack(cbit_ref& bref) { + bool ran_area_code_list_present; HANDLE_CODE(bref.unpack(ran_area_code_list_present, 1)); HANDLE_CODE(tac.unpack(bref)); @@ -11940,7 +11980,7 @@ void ran_area_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("trackingAreaCode", tac.to_string()); - if (ran_area_code_list_present) { + if (ran_area_code_list.size() > 0) { j.start_array("ran-AreaCodeList"); for (const auto& e1 : ran_area_code_list) { j.write_int(e1); @@ -12140,9 +12180,9 @@ void report_sftd_nr_s::to_json(json_writer& j) const // SSB-MTC2 ::= SEQUENCE SRSASN_CODE ssb_mtc2_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(pci_list_present, 1)); + HANDLE_CODE(bref.pack(pci_list.size() > 0, 1)); - if (pci_list_present) { + if (pci_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, pci_list, 1, 64, integer_packer(0, 1007))); } HANDLE_CODE(periodicity.pack(bref)); @@ -12151,6 +12191,7 @@ SRSASN_CODE ssb_mtc2_s::pack(bit_ref& bref) const } SRSASN_CODE ssb_mtc2_s::unpack(cbit_ref& bref) { + bool pci_list_present; HANDLE_CODE(bref.unpack(pci_list_present, 1)); if (pci_list_present) { @@ -12163,7 +12204,7 @@ SRSASN_CODE ssb_mtc2_s::unpack(cbit_ref& bref) void ssb_mtc2_s::to_json(json_writer& j) const { j.start_obj(); - if (pci_list_present) { + if (pci_list.size() > 0) { j.start_array("pci-List"); for (const auto& e1 : pci_list) { j.write_int(e1); @@ -12353,24 +12394,24 @@ const char* mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::types SRSASN_CODE meas_obj_eutra_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(cells_to_rem_list_eutran_present, 1)); - HANDLE_CODE(bref.pack(cells_to_add_mod_list_eutran_present, 1)); - HANDLE_CODE(bref.pack(black_cells_to_rem_list_eutran_present, 1)); - HANDLE_CODE(bref.pack(black_cells_to_add_mod_list_eutran_present, 1)); + HANDLE_CODE(bref.pack(cells_to_rem_list_eutran.size() > 0, 1)); + HANDLE_CODE(bref.pack(cells_to_add_mod_list_eutran.size() > 0, 1)); + HANDLE_CODE(bref.pack(black_cells_to_rem_list_eutran.size() > 0, 1)); + HANDLE_CODE(bref.pack(black_cells_to_add_mod_list_eutran.size() > 0, 1)); HANDLE_CODE(bref.pack(eutra_q_offset_range_present, 1)); HANDLE_CODE(pack_integer(bref, carrier_freq, (uint32_t)0u, (uint32_t)262143u)); HANDLE_CODE(allowed_meas_bw.pack(bref)); - if (cells_to_rem_list_eutran_present) { + if (cells_to_rem_list_eutran.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_rem_list_eutran, 1, 32, integer_packer(1, 32))); } - if (cells_to_add_mod_list_eutran_present) { + if (cells_to_add_mod_list_eutran.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_add_mod_list_eutran, 1, 32)); } - if (black_cells_to_rem_list_eutran_present) { + if (black_cells_to_rem_list_eutran.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, black_cells_to_rem_list_eutran, 1, 32, integer_packer(1, 32))); } - if (black_cells_to_add_mod_list_eutran_present) { + if (black_cells_to_add_mod_list_eutran.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, black_cells_to_add_mod_list_eutran, 1, 32)); } HANDLE_CODE(bref.pack(eutra_presence_ant_port1, 1)); @@ -12384,9 +12425,13 @@ SRSASN_CODE meas_obj_eutra_s::pack(bit_ref& bref) const SRSASN_CODE meas_obj_eutra_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool cells_to_rem_list_eutran_present; HANDLE_CODE(bref.unpack(cells_to_rem_list_eutran_present, 1)); + bool cells_to_add_mod_list_eutran_present; HANDLE_CODE(bref.unpack(cells_to_add_mod_list_eutran_present, 1)); + bool black_cells_to_rem_list_eutran_present; HANDLE_CODE(bref.unpack(black_cells_to_rem_list_eutran_present, 1)); + bool black_cells_to_add_mod_list_eutran_present; HANDLE_CODE(bref.unpack(black_cells_to_add_mod_list_eutran_present, 1)); HANDLE_CODE(bref.unpack(eutra_q_offset_range_present, 1)); @@ -12417,28 +12462,28 @@ 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()); - if (cells_to_rem_list_eutran_present) { + if (cells_to_rem_list_eutran.size() > 0) { j.start_array("cellsToRemoveListEUTRAN"); for (const auto& e1 : cells_to_rem_list_eutran) { j.write_int(e1); } j.end_array(); } - if (cells_to_add_mod_list_eutran_present) { + if (cells_to_add_mod_list_eutran.size() > 0) { j.start_array("cellsToAddModListEUTRAN"); for (const auto& e1 : cells_to_add_mod_list_eutran) { e1.to_json(j); } j.end_array(); } - if (black_cells_to_rem_list_eutran_present) { + if (black_cells_to_rem_list_eutran.size() > 0) { j.start_array("blackCellsToRemoveListEUTRAN"); for (const auto& e1 : black_cells_to_rem_list_eutran) { j.write_int(e1); } j.end_array(); } - if (black_cells_to_add_mod_list_eutran_present) { + if (black_cells_to_add_mod_list_eutran.size() > 0) { j.start_array("blackCellsToAddModListEUTRAN"); for (const auto& e1 : black_cells_to_add_mod_list_eutran) { e1.to_json(j); @@ -12466,12 +12511,12 @@ SRSASN_CODE meas_obj_nr_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(abs_thresh_csi_rs_consolidation_present, 1)); HANDLE_CODE(bref.pack(nrof_ss_blocks_to_average_present, 1)); HANDLE_CODE(bref.pack(nrof_csi_rs_res_to_average_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(white_cells_to_rem_list_present, 1)); - HANDLE_CODE(bref.pack(white_cells_to_add_mod_list_present, 1)); + HANDLE_CODE(bref.pack(cells_to_rem_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(cells_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(black_cells_to_rem_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(black_cells_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(white_cells_to_rem_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(white_cells_to_add_mod_list.size() > 0, 1)); if (ssb_freq_present) { HANDLE_CODE(pack_integer(bref, ssb_freq, (uint32_t)0u, (uint32_t)3279165u)); @@ -12503,22 +12548,22 @@ SRSASN_CODE meas_obj_nr_s::pack(bit_ref& bref) const } HANDLE_CODE(pack_integer(bref, quant_cfg_idx, (uint8_t)1u, (uint8_t)2u)); HANDLE_CODE(offset_mo.pack(bref)); - if (cells_to_rem_list_present) { + if (cells_to_rem_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_rem_list, 1, 32, integer_packer(0, 1007))); } - if (cells_to_add_mod_list_present) { + if (cells_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_to_add_mod_list, 1, 32)); } - if (black_cells_to_rem_list_present) { + if (black_cells_to_rem_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, black_cells_to_rem_list, 1, 8, integer_packer(1, 8))); } - if (black_cells_to_add_mod_list_present) { + if (black_cells_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, black_cells_to_add_mod_list, 1, 8)); } - if (white_cells_to_rem_list_present) { + if (white_cells_to_rem_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, white_cells_to_rem_list, 1, 8, integer_packer(1, 8))); } - if (white_cells_to_add_mod_list_present) { + if (white_cells_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, white_cells_to_add_mod_list, 1, 8)); } @@ -12555,11 +12600,17 @@ SRSASN_CODE meas_obj_nr_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(abs_thresh_csi_rs_consolidation_present, 1)); HANDLE_CODE(bref.unpack(nrof_ss_blocks_to_average_present, 1)); HANDLE_CODE(bref.unpack(nrof_csi_rs_res_to_average_present, 1)); + bool cells_to_rem_list_present; HANDLE_CODE(bref.unpack(cells_to_rem_list_present, 1)); + bool cells_to_add_mod_list_present; HANDLE_CODE(bref.unpack(cells_to_add_mod_list_present, 1)); + bool black_cells_to_rem_list_present; HANDLE_CODE(bref.unpack(black_cells_to_rem_list_present, 1)); + bool black_cells_to_add_mod_list_present; HANDLE_CODE(bref.unpack(black_cells_to_add_mod_list_present, 1)); + bool white_cells_to_rem_list_present; HANDLE_CODE(bref.unpack(white_cells_to_rem_list_present, 1)); + bool white_cells_to_add_mod_list_present; HANDLE_CODE(bref.unpack(white_cells_to_add_mod_list_present, 1)); if (ssb_freq_present) { @@ -12669,42 +12720,42 @@ void meas_obj_nr_s::to_json(json_writer& j) const j.write_int("quantityConfigIndex", quant_cfg_idx); j.write_fieldname("offsetMO"); offset_mo.to_json(j); - if (cells_to_rem_list_present) { + if (cells_to_rem_list.size() > 0) { j.start_array("cellsToRemoveList"); for (const auto& e1 : cells_to_rem_list) { j.write_int(e1); } j.end_array(); } - if (cells_to_add_mod_list_present) { + if (cells_to_add_mod_list.size() > 0) { j.start_array("cellsToAddModList"); for (const auto& e1 : cells_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (black_cells_to_rem_list_present) { + if (black_cells_to_rem_list.size() > 0) { j.start_array("blackCellsToRemoveList"); for (const auto& e1 : black_cells_to_rem_list) { j.write_int(e1); } j.end_array(); } - if (black_cells_to_add_mod_list_present) { + if (black_cells_to_add_mod_list.size() > 0) { j.start_array("blackCellsToAddModList"); for (const auto& e1 : black_cells_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (white_cells_to_rem_list_present) { + if (white_cells_to_rem_list.size() > 0) { j.start_array("whiteCellsToRemoveList"); for (const auto& e1 : white_cells_to_rem_list) { j.write_int(e1); } j.end_array(); } - if (white_cells_to_add_mod_list_present) { + if (white_cells_to_add_mod_list.size() > 0) { j.start_array("whiteCellsToAddModList"); for (const auto& e1 : white_cells_to_add_mod_list) { e1.to_json(j); @@ -13789,14 +13840,14 @@ const char* rat_type_opts::to_string() const SRSASN_CODE rrc_recfg_v1560_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(mrdc_secondary_cell_group_cfg_present, 1)); - HANDLE_CODE(bref.pack(radio_bearer_cfg2_present, 1)); + HANDLE_CODE(bref.pack(radio_bearer_cfg2.size() > 0, 1)); HANDLE_CODE(bref.pack(sk_counter_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (mrdc_secondary_cell_group_cfg_present) { HANDLE_CODE(mrdc_secondary_cell_group_cfg.pack(bref)); } - if (radio_bearer_cfg2_present) { + if (radio_bearer_cfg2.size() > 0) { HANDLE_CODE(radio_bearer_cfg2.pack(bref)); } if (sk_counter_present) { @@ -13808,6 +13859,7 @@ SRSASN_CODE rrc_recfg_v1560_ies_s::pack(bit_ref& bref) const SRSASN_CODE rrc_recfg_v1560_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(mrdc_secondary_cell_group_cfg_present, 1)); + bool radio_bearer_cfg2_present; HANDLE_CODE(bref.unpack(radio_bearer_cfg2_present, 1)); HANDLE_CODE(bref.unpack(sk_counter_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -13831,7 +13883,7 @@ void rrc_recfg_v1560_ies_s::to_json(json_writer& j) const j.write_fieldname("mrdc-SecondaryCellGroupConfig"); mrdc_secondary_cell_group_cfg.to_json(j); } - if (radio_bearer_cfg2_present) { + if (radio_bearer_cfg2.size() > 0) { j.write_str("radioBearerConfig2", radio_bearer_cfg2.to_string()); } if (sk_counter_present) { @@ -14076,11 +14128,11 @@ void drb_count_msb_info_s::to_json(json_writer& j) const SRSASN_CODE master_key_upd_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(nas_container_present, 1)); + HANDLE_CODE(bref.pack(nas_container.size() > 0, 1)); HANDLE_CODE(bref.pack(key_set_change_ind, 1)); HANDLE_CODE(pack_integer(bref, next_hop_chaining_count, (uint8_t)0u, (uint8_t)7u)); - if (nas_container_present) { + if (nas_container.size() > 0) { HANDLE_CODE(nas_container.pack(bref)); } @@ -14089,6 +14141,7 @@ SRSASN_CODE master_key_upd_s::pack(bit_ref& bref) const SRSASN_CODE master_key_upd_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool nas_container_present; HANDLE_CODE(bref.unpack(nas_container_present, 1)); HANDLE_CODE(bref.unpack(key_set_change_ind, 1)); @@ -14104,7 +14157,7 @@ void master_key_upd_s::to_json(json_writer& j) const j.start_obj(); j.write_bool("keySetChangeIndicator", key_set_change_ind); j.write_int("nextHopChainingCount", next_hop_chaining_count); - if (nas_container_present) { + if (nas_container.size() > 0) { j.write_str("nas-Container", nas_container.to_string()); } j.end_obj(); @@ -14413,9 +14466,9 @@ uint16_t periodic_rnau_timer_value_opts::to_number() const SRSASN_CODE quant_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(quant_cfg_nr_list_present, 1)); + HANDLE_CODE(bref.pack(quant_cfg_nr_list.size() > 0, 1)); - if (quant_cfg_nr_list_present) { + if (quant_cfg_nr_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, quant_cfg_nr_list, 1, 2)); } @@ -14438,6 +14491,7 @@ SRSASN_CODE quant_cfg_s::pack(bit_ref& bref) const SRSASN_CODE quant_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool quant_cfg_nr_list_present; HANDLE_CODE(bref.unpack(quant_cfg_nr_list_present, 1)); if (quant_cfg_nr_list_present) { @@ -14464,7 +14518,7 @@ SRSASN_CODE quant_cfg_s::unpack(cbit_ref& bref) void quant_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (quant_cfg_nr_list_present) { + if (quant_cfg_nr_list.size() > 0) { j.start_array("quantityConfigNR-List"); for (const auto& e1 : quant_cfg_nr_list) { e1.to_json(j); @@ -14716,10 +14770,10 @@ uint8_t redirected_carrier_info_eutra_s::cn_type_opts::to_number() const SRSASN_CODE ue_cap_rat_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(cap_request_filt_present, 1)); + HANDLE_CODE(bref.pack(cap_request_filt.size() > 0, 1)); HANDLE_CODE(rat_type.pack(bref)); - if (cap_request_filt_present) { + if (cap_request_filt.size() > 0) { HANDLE_CODE(cap_request_filt.pack(bref)); } @@ -14728,6 +14782,7 @@ SRSASN_CODE ue_cap_rat_request_s::pack(bit_ref& bref) const SRSASN_CODE ue_cap_rat_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool cap_request_filt_present; HANDLE_CODE(bref.unpack(cap_request_filt_present, 1)); HANDLE_CODE(rat_type.unpack(bref)); @@ -14741,7 +14796,7 @@ void ue_cap_rat_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("rat-Type", rat_type.to_string()); - if (cap_request_filt_present) { + if (cap_request_filt.size() > 0) { j.write_str("capabilityRequestFilter", cap_request_filt.to_string()); } j.end_obj(); @@ -14751,14 +14806,14 @@ void ue_cap_rat_request_s::to_json(json_writer& j) const SRSASN_CODE cell_resel_priorities_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_nr_present, 1)); + HANDLE_CODE(bref.pack(freq_prio_list_eutra.size() > 0, 1)); + HANDLE_CODE(bref.pack(freq_prio_list_nr.size() > 0, 1)); HANDLE_CODE(bref.pack(t320_present, 1)); - if (freq_prio_list_eutra_present) { + if (freq_prio_list_eutra.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_prio_list_eutra, 1, 8)); } - if (freq_prio_list_nr_present) { + if (freq_prio_list_nr.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_prio_list_nr, 1, 8)); } if (t320_present) { @@ -14770,7 +14825,9 @@ SRSASN_CODE cell_resel_priorities_s::pack(bit_ref& bref) const SRSASN_CODE cell_resel_priorities_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool freq_prio_list_eutra_present; HANDLE_CODE(bref.unpack(freq_prio_list_eutra_present, 1)); + bool freq_prio_list_nr_present; HANDLE_CODE(bref.unpack(freq_prio_list_nr_present, 1)); HANDLE_CODE(bref.unpack(t320_present, 1)); @@ -14789,14 +14846,14 @@ SRSASN_CODE cell_resel_priorities_s::unpack(cbit_ref& bref) void cell_resel_priorities_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_prio_list_eutra_present) { + if (freq_prio_list_eutra.size() > 0) { j.start_array("freqPriorityListEUTRA"); for (const auto& e1 : freq_prio_list_eutra) { e1.to_json(j); } j.end_array(); } - if (freq_prio_list_nr_present) { + if (freq_prio_list_nr.size() > 0) { j.start_array("freqPriorityListNR"); for (const auto& e1 : freq_prio_list_nr) { e1.to_json(j); @@ -14824,33 +14881,33 @@ uint8_t cell_resel_priorities_s::t320_opts::to_number() const 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(meas_obj_to_rem_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(meas_obj_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(report_cfg_to_rem_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(report_cfg_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(meas_id_to_rem_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(meas_id_to_add_mod_list.size() > 0, 1)); HANDLE_CODE(bref.pack(s_measure_cfg_present, 1)); HANDLE_CODE(bref.pack(quant_cfg_present, 1)); HANDLE_CODE(bref.pack(meas_gap_cfg_present, 1)); HANDLE_CODE(bref.pack(meas_gap_sharing_cfg_present, 1)); - if (meas_obj_to_rem_list_present) { + if (meas_obj_to_rem_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_obj_to_rem_list, 1, 64, integer_packer(1, 64))); } - if (meas_obj_to_add_mod_list_present) { + if (meas_obj_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_obj_to_add_mod_list, 1, 64)); } - if (report_cfg_to_rem_list_present) { + if (report_cfg_to_rem_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, report_cfg_to_rem_list, 1, 64, integer_packer(1, 64))); } - if (report_cfg_to_add_mod_list_present) { + if (report_cfg_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, report_cfg_to_add_mod_list, 1, 64)); } - if (meas_id_to_rem_list_present) { + if (meas_id_to_rem_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_to_rem_list, 1, 64, integer_packer(1, 64))); } - if (meas_id_to_add_mod_list_present) { + if (meas_id_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_to_add_mod_list, 1, 64)); } if (s_measure_cfg_present) { @@ -14871,11 +14928,17 @@ SRSASN_CODE meas_cfg_s::pack(bit_ref& bref) const SRSASN_CODE meas_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool meas_obj_to_rem_list_present; HANDLE_CODE(bref.unpack(meas_obj_to_rem_list_present, 1)); + bool meas_obj_to_add_mod_list_present; HANDLE_CODE(bref.unpack(meas_obj_to_add_mod_list_present, 1)); + bool report_cfg_to_rem_list_present; HANDLE_CODE(bref.unpack(report_cfg_to_rem_list_present, 1)); + bool report_cfg_to_add_mod_list_present; HANDLE_CODE(bref.unpack(report_cfg_to_add_mod_list_present, 1)); + bool meas_id_to_rem_list_present; HANDLE_CODE(bref.unpack(meas_id_to_rem_list_present, 1)); + bool meas_id_to_add_mod_list_present; HANDLE_CODE(bref.unpack(meas_id_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(s_measure_cfg_present, 1)); HANDLE_CODE(bref.unpack(quant_cfg_present, 1)); @@ -14918,42 +14981,42 @@ SRSASN_CODE meas_cfg_s::unpack(cbit_ref& bref) void meas_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (meas_obj_to_rem_list_present) { + if (meas_obj_to_rem_list.size() > 0) { j.start_array("measObjectToRemoveList"); for (const auto& e1 : meas_obj_to_rem_list) { j.write_int(e1); } j.end_array(); } - if (meas_obj_to_add_mod_list_present) { + if (meas_obj_to_add_mod_list.size() > 0) { j.start_array("measObjectToAddModList"); for (const auto& e1 : meas_obj_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (report_cfg_to_rem_list_present) { + if (report_cfg_to_rem_list.size() > 0) { j.start_array("reportConfigToRemoveList"); for (const auto& e1 : report_cfg_to_rem_list) { j.write_int(e1); } j.end_array(); } - if (report_cfg_to_add_mod_list_present) { + if (report_cfg_to_add_mod_list.size() > 0) { j.start_array("reportConfigToAddModList"); for (const auto& e1 : report_cfg_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (meas_id_to_rem_list_present) { + if (meas_id_to_rem_list.size() > 0) { j.start_array("measIdToRemoveList"); for (const auto& e1 : meas_id_to_rem_list) { j.write_int(e1); } j.end_array(); } - if (meas_id_to_add_mod_list_present) { + if (meas_id_to_add_mod_list.size() > 0) { j.start_array("measIdToAddModList"); for (const auto& e1 : meas_id_to_add_mod_list) { e1.to_json(j); @@ -15091,28 +15154,28 @@ const char* meas_cfg_s::s_measure_cfg_c_::types_opts::to_string() const // RRCReconfiguration-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_recfg_v1530_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(master_cell_group_present, 1)); + HANDLE_CODE(bref.pack(master_cell_group.size() > 0, 1)); HANDLE_CODE(bref.pack(full_cfg_present, 1)); - HANDLE_CODE(bref.pack(ded_nas_msg_list_present, 1)); + HANDLE_CODE(bref.pack(ded_nas_msg_list.size() > 0, 1)); HANDLE_CODE(bref.pack(master_key_upd_present, 1)); - HANDLE_CODE(bref.pack(ded_sib1_delivery_present, 1)); - HANDLE_CODE(bref.pack(ded_sys_info_delivery_present, 1)); + HANDLE_CODE(bref.pack(ded_sib1_delivery.size() > 0, 1)); + HANDLE_CODE(bref.pack(ded_sys_info_delivery.size() > 0, 1)); HANDLE_CODE(bref.pack(other_cfg_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (master_cell_group_present) { + if (master_cell_group.size() > 0) { HANDLE_CODE(master_cell_group.pack(bref)); } - if (ded_nas_msg_list_present) { + if (ded_nas_msg_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ded_nas_msg_list, 1, 29)); } if (master_key_upd_present) { HANDLE_CODE(master_key_upd.pack(bref)); } - if (ded_sib1_delivery_present) { + if (ded_sib1_delivery.size() > 0) { HANDLE_CODE(ded_sib1_delivery.pack(bref)); } - if (ded_sys_info_delivery_present) { + if (ded_sys_info_delivery.size() > 0) { HANDLE_CODE(ded_sys_info_delivery.pack(bref)); } if (other_cfg_present) { @@ -15126,11 +15189,15 @@ SRSASN_CODE rrc_recfg_v1530_ies_s::pack(bit_ref& bref) const } SRSASN_CODE rrc_recfg_v1530_ies_s::unpack(cbit_ref& bref) { + bool master_cell_group_present; HANDLE_CODE(bref.unpack(master_cell_group_present, 1)); HANDLE_CODE(bref.unpack(full_cfg_present, 1)); + bool ded_nas_msg_list_present; HANDLE_CODE(bref.unpack(ded_nas_msg_list_present, 1)); HANDLE_CODE(bref.unpack(master_key_upd_present, 1)); + bool ded_sib1_delivery_present; HANDLE_CODE(bref.unpack(ded_sib1_delivery_present, 1)); + bool ded_sys_info_delivery_present; HANDLE_CODE(bref.unpack(ded_sys_info_delivery_present, 1)); HANDLE_CODE(bref.unpack(other_cfg_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15162,13 +15229,13 @@ SRSASN_CODE rrc_recfg_v1530_ies_s::unpack(cbit_ref& bref) void rrc_recfg_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (master_cell_group_present) { + if (master_cell_group.size() > 0) { j.write_str("masterCellGroup", master_cell_group.to_string()); } if (full_cfg_present) { j.write_str("fullConfig", "true"); } - if (ded_nas_msg_list_present) { + if (ded_nas_msg_list.size() > 0) { j.start_array("dedicatedNAS-MessageList"); for (const auto& e1 : ded_nas_msg_list) { j.write_str(e1.to_string()); @@ -15179,10 +15246,10 @@ void rrc_recfg_v1530_ies_s::to_json(json_writer& j) const j.write_fieldname("masterKeyUpdate"); master_key_upd.to_json(j); } - if (ded_sib1_delivery_present) { + if (ded_sib1_delivery.size() > 0) { j.write_str("dedicatedSIB1-Delivery", ded_sib1_delivery.to_string()); } - if (ded_sys_info_delivery_present) { + if (ded_sys_info_delivery.size() > 0) { j.write_str("dedicatedSystemInformationDelivery", ded_sys_info_delivery.to_string()); } if (other_cfg_present) { @@ -15236,11 +15303,11 @@ void rrc_release_v1540_ies_s::to_json(json_writer& j) const // RRCResume-v1560-IEs ::= SEQUENCE SRSASN_CODE rrc_resume_v1560_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(radio_bearer_cfg2_present, 1)); + HANDLE_CODE(bref.pack(radio_bearer_cfg2.size() > 0, 1)); HANDLE_CODE(bref.pack(sk_counter_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (radio_bearer_cfg2_present) { + if (radio_bearer_cfg2.size() > 0) { HANDLE_CODE(radio_bearer_cfg2.pack(bref)); } if (sk_counter_present) { @@ -15251,6 +15318,7 @@ SRSASN_CODE rrc_resume_v1560_ies_s::pack(bit_ref& bref) const } SRSASN_CODE rrc_resume_v1560_ies_s::unpack(cbit_ref& bref) { + bool radio_bearer_cfg2_present; HANDLE_CODE(bref.unpack(radio_bearer_cfg2_present, 1)); HANDLE_CODE(bref.unpack(sk_counter_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15267,7 +15335,7 @@ SRSASN_CODE rrc_resume_v1560_ies_s::unpack(cbit_ref& bref) void rrc_resume_v1560_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (radio_bearer_cfg2_present) { + if (radio_bearer_cfg2.size() > 0) { j.write_str("radioBearerConfig2", radio_bearer_cfg2.to_string()); } if (sk_counter_present) { @@ -15499,11 +15567,11 @@ void suspend_cfg_s::to_json(json_writer& j) const // CounterCheck-IEs ::= SEQUENCE SRSASN_CODE counter_check_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, drb_count_msb_info_list, 1, 29)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -15511,6 +15579,7 @@ SRSASN_CODE counter_check_ies_s::pack(bit_ref& bref) const } SRSASN_CODE counter_check_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15529,7 +15598,7 @@ void counter_check_ies_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -15543,14 +15612,14 @@ void counter_check_ies_s::to_json(json_writer& j) const // DLInformationTransfer-IEs ::= SEQUENCE SRSASN_CODE dl_info_transfer_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ded_nas_msg_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(ded_nas_msg.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (ded_nas_msg_present) { + if (ded_nas_msg.size() > 0) { HANDLE_CODE(ded_nas_msg.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -15558,7 +15627,9 @@ SRSASN_CODE dl_info_transfer_ies_s::pack(bit_ref& bref) const } SRSASN_CODE dl_info_transfer_ies_s::unpack(cbit_ref& bref) { + bool ded_nas_msg_present; HANDLE_CODE(bref.unpack(ded_nas_msg_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15574,10 +15645,10 @@ SRSASN_CODE dl_info_transfer_ies_s::unpack(cbit_ref& bref) void dl_info_transfer_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (ded_nas_msg_present) { + if (ded_nas_msg.size() > 0) { j.write_str("dedicatedNAS-Message", ded_nas_msg.to_string()); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -15591,16 +15662,16 @@ void dl_info_transfer_ies_s::to_json(json_writer& j) const // MobilityFromNRCommand-IEs ::= SEQUENCE SRSASN_CODE mob_from_nr_cmd_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(nas_security_param_from_nr_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(nas_security_param_from_nr.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(target_rat_type.pack(bref)); HANDLE_CODE(target_rat_msg_container.pack(bref)); - if (nas_security_param_from_nr_present) { + if (nas_security_param_from_nr.size() > 0) { HANDLE_CODE(nas_security_param_from_nr.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -15608,7 +15679,9 @@ SRSASN_CODE mob_from_nr_cmd_ies_s::pack(bit_ref& bref) const } SRSASN_CODE mob_from_nr_cmd_ies_s::unpack(cbit_ref& bref) { + bool nas_security_param_from_nr_present; HANDLE_CODE(bref.unpack(nas_security_param_from_nr_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15628,10 +15701,10 @@ void mob_from_nr_cmd_ies_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_nr_present) { + if (nas_security_param_from_nr.size() > 0) { j.write_str("nas-SecurityParamFromNR", nas_security_param_from_nr.to_string()); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -15652,21 +15725,21 @@ const char* mob_from_nr_cmd_ies_s::target_rat_type_opts::to_string() const SRSASN_CODE rrc_recfg_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(radio_bearer_cfg_present, 1)); - HANDLE_CODE(bref.pack(secondary_cell_group_present, 1)); + HANDLE_CODE(bref.pack(secondary_cell_group.size() > 0, 1)); HANDLE_CODE(bref.pack(meas_cfg_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (radio_bearer_cfg_present) { HANDLE_CODE(radio_bearer_cfg.pack(bref)); } - if (secondary_cell_group_present) { + if (secondary_cell_group.size() > 0) { HANDLE_CODE(secondary_cell_group.pack(bref)); } if (meas_cfg_present) { HANDLE_CODE(meas_cfg.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { @@ -15678,8 +15751,10 @@ SRSASN_CODE rrc_recfg_ies_s::pack(bit_ref& bref) const SRSASN_CODE rrc_recfg_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(radio_bearer_cfg_present, 1)); + bool secondary_cell_group_present; HANDLE_CODE(bref.unpack(secondary_cell_group_present, 1)); HANDLE_CODE(bref.unpack(meas_cfg_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15708,14 +15783,14 @@ void rrc_recfg_ies_s::to_json(json_writer& j) const j.write_fieldname("radioBearerConfig"); radio_bearer_cfg.to_json(j); } - if (secondary_cell_group_present) { + if (secondary_cell_group.size() > 0) { j.write_str("secondaryCellGroup", secondary_cell_group.to_string()); } if (meas_cfg_present) { j.write_fieldname("measConfig"); meas_cfg.to_json(j); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -15728,11 +15803,11 @@ void rrc_recfg_ies_s::to_json(json_writer& j) const // RRCReestablishment-IEs ::= SEQUENCE SRSASN_CODE rrc_reest_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_integer(bref, next_hop_chaining_count, (uint8_t)0u, (uint8_t)7u)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -15740,6 +15815,7 @@ SRSASN_CODE rrc_reest_ies_s::pack(bit_ref& bref) const } SRSASN_CODE rrc_reest_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15754,7 +15830,7 @@ void rrc_reest_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("nextHopChainingCount", next_hop_chaining_count); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -15772,7 +15848,7 @@ SRSASN_CODE rrc_release_ies_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(cell_resel_priorities_present, 1)); HANDLE_CODE(bref.pack(suspend_cfg_present, 1)); HANDLE_CODE(bref.pack(depriorit_req_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (redirected_carrier_info_present) { @@ -15788,7 +15864,7 @@ SRSASN_CODE rrc_release_ies_s::pack(bit_ref& bref) const HANDLE_CODE(depriorit_req.depriorit_type.pack(bref)); HANDLE_CODE(depriorit_req.depriorit_timer.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { @@ -15803,6 +15879,7 @@ SRSASN_CODE rrc_release_ies_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(cell_resel_priorities_present, 1)); HANDLE_CODE(bref.unpack(suspend_cfg_present, 1)); HANDLE_CODE(bref.unpack(depriorit_req_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15850,7 +15927,7 @@ void rrc_release_ies_s::to_json(json_writer& j) const j.write_str("deprioritisationTimer", depriorit_req.depriorit_timer.to_string()); j.end_obj(); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -15881,22 +15958,22 @@ uint8_t rrc_release_ies_s::depriorit_req_s_::depriorit_timer_opts::to_number() c SRSASN_CODE rrc_resume_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(radio_bearer_cfg_present, 1)); - HANDLE_CODE(bref.pack(master_cell_group_present, 1)); + HANDLE_CODE(bref.pack(master_cell_group.size() > 0, 1)); HANDLE_CODE(bref.pack(meas_cfg_present, 1)); HANDLE_CODE(bref.pack(full_cfg_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (radio_bearer_cfg_present) { HANDLE_CODE(radio_bearer_cfg.pack(bref)); } - if (master_cell_group_present) { + if (master_cell_group.size() > 0) { HANDLE_CODE(master_cell_group.pack(bref)); } if (meas_cfg_present) { HANDLE_CODE(meas_cfg.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { @@ -15908,9 +15985,11 @@ SRSASN_CODE rrc_resume_ies_s::pack(bit_ref& bref) const SRSASN_CODE rrc_resume_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(radio_bearer_cfg_present, 1)); + bool master_cell_group_present; HANDLE_CODE(bref.unpack(master_cell_group_present, 1)); HANDLE_CODE(bref.unpack(meas_cfg_present, 1)); HANDLE_CODE(bref.unpack(full_cfg_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15939,7 +16018,7 @@ void rrc_resume_ies_s::to_json(json_writer& j) const j.write_fieldname("radioBearerConfig"); radio_bearer_cfg.to_json(j); } - if (master_cell_group_present) { + if (master_cell_group.size() > 0) { j.write_str("masterCellGroup", master_cell_group.to_string()); } if (meas_cfg_present) { @@ -15949,7 +16028,7 @@ void rrc_resume_ies_s::to_json(json_writer& j) const if (full_cfg_present) { j.write_str("fullConfig", "true"); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -15962,11 +16041,11 @@ void rrc_resume_ies_s::to_json(json_writer& j) const // SecurityModeCommand-IEs ::= SEQUENCE SRSASN_CODE security_mode_cmd_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(security_cfg_smc.pack(bref)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -15974,6 +16053,7 @@ SRSASN_CODE security_mode_cmd_ies_s::pack(bit_ref& bref) const } SRSASN_CODE security_mode_cmd_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -15989,7 +16069,7 @@ void security_mode_cmd_ies_s::to_json(json_writer& j) const j.start_obj(); j.write_fieldname("securityConfigSMC"); security_cfg_smc.to_json(j); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -16003,14 +16083,14 @@ void security_mode_cmd_ies_s::to_json(json_writer& j) const // UECapabilityEnquiry-IEs ::= SEQUENCE SRSASN_CODE ue_cap_enquiry_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(ue_cap_enquiry_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); + HANDLE_CODE(bref.pack(ue_cap_enquiry_ext.size() > 0, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, ue_cap_rat_request_list, 1, 8)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } - if (ue_cap_enquiry_ext_present) { + if (ue_cap_enquiry_ext.size() > 0) { HANDLE_CODE(ue_cap_enquiry_ext.pack(bref)); } @@ -16018,7 +16098,9 @@ SRSASN_CODE ue_cap_enquiry_ies_s::pack(bit_ref& bref) const } SRSASN_CODE ue_cap_enquiry_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + bool ue_cap_enquiry_ext_present; HANDLE_CODE(bref.unpack(ue_cap_enquiry_ext_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(ue_cap_rat_request_list, bref, 1, 8)); @@ -16039,10 +16121,10 @@ void ue_cap_enquiry_ies_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - if (ue_cap_enquiry_ext_present) { + if (ue_cap_enquiry_ext.size() > 0) { j.write_str("ue-CapabilityEnquiryExt", ue_cap_enquiry_ext.to_string()); } j.end_obj(); @@ -17592,14 +17674,14 @@ void paging_record_s::to_json(json_writer& j) const // Paging ::= SEQUENCE SRSASN_CODE paging_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(paging_record_list_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(paging_record_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (paging_record_list_present) { + if (paging_record_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, paging_record_list, 1, 32)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -17607,7 +17689,9 @@ SRSASN_CODE paging_s::pack(bit_ref& bref) const } SRSASN_CODE paging_s::unpack(cbit_ref& bref) { + bool paging_record_list_present; HANDLE_CODE(bref.unpack(paging_record_list_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -17623,14 +17707,14 @@ SRSASN_CODE paging_s::unpack(cbit_ref& bref) void paging_s::to_json(json_writer& j) const { j.start_obj(); - if (paging_record_list_present) { + if (paging_record_list.size() > 0) { j.start_array("pagingRecordList"); for (const auto& e1 : paging_record_list) { e1.to_json(j); } j.end_array(); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -19209,14 +19293,14 @@ void results_per_ssb_idx_s::to_json(json_writer& j) const SRSASN_CODE cgi_info_nr_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(plmn_id_info_list_present, 1)); - HANDLE_CODE(bref.pack(freq_band_list_present, 1)); + HANDLE_CODE(bref.pack(plmn_id_info_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(freq_band_list.size() > 0, 1)); HANDLE_CODE(bref.pack(no_sib1_present, 1)); - if (plmn_id_info_list_present) { + if (plmn_id_info_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_info_list, 1, 12)); } - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list, 1, 8, integer_packer(1, 1024))); } if (no_sib1_present) { @@ -19229,7 +19313,9 @@ SRSASN_CODE cgi_info_nr_s::pack(bit_ref& bref) const SRSASN_CODE cgi_info_nr_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool plmn_id_info_list_present; HANDLE_CODE(bref.unpack(plmn_id_info_list_present, 1)); + bool freq_band_list_present; HANDLE_CODE(bref.unpack(freq_band_list_present, 1)); HANDLE_CODE(bref.unpack(no_sib1_present, 1)); @@ -19249,14 +19335,14 @@ SRSASN_CODE cgi_info_nr_s::unpack(cbit_ref& bref) void cgi_info_nr_s::to_json(json_writer& j) const { j.start_obj(); - if (plmn_id_info_list_present) { + if (plmn_id_info_list.size() > 0) { j.start_array("plmn-IdentityInfoList"); for (const auto& e1 : plmn_id_info_list) { e1.to_json(j); } j.end_array(); } - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { j.start_array("frequencyBandList"); for (const auto& e1 : freq_band_list) { j.write_int(e1); @@ -19352,22 +19438,22 @@ void cell_access_related_info_eutra_epc_s::to_json(json_writer& j) const SRSASN_CODE cgi_info_eutra_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(cgi_info_epc_present, 1)); - HANDLE_CODE(bref.pack(cgi_info_minus5_gc_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); + HANDLE_CODE(bref.pack(cgi_info_minus5_gc.size() > 0, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list.size() > 0, 1)); HANDLE_CODE(bref.pack(freq_band_ind_prio_present, 1)); if (cgi_info_epc_present) { - HANDLE_CODE(bref.pack(cgi_info_epc.cgi_info_epc_list_present, 1)); + HANDLE_CODE(bref.pack(cgi_info_epc.cgi_info_epc_list.size() > 0, 1)); HANDLE_CODE(cgi_info_epc.cgi_info_epc_legacy.pack(bref)); - if (cgi_info_epc.cgi_info_epc_list_present) { + if (cgi_info_epc.cgi_info_epc_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, cgi_info_epc.cgi_info_epc_list, 1, 12)); } } - if (cgi_info_minus5_gc_present) { + if (cgi_info_minus5_gc.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, cgi_info_minus5_gc, 1, 12)); } HANDLE_CODE(pack_integer(bref, freq_band_ind, (uint16_t)1u, (uint16_t)256u)); - if (multi_band_info_list_present) { + if (multi_band_info_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 256))); } @@ -19376,14 +19462,17 @@ SRSASN_CODE cgi_info_eutra_s::pack(bit_ref& bref) const SRSASN_CODE cgi_info_eutra_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(cgi_info_epc_present, 1)); + bool cgi_info_minus5_gc_present; HANDLE_CODE(bref.unpack(cgi_info_minus5_gc_present, 1)); + bool multi_band_info_list_present; HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); HANDLE_CODE(bref.unpack(freq_band_ind_prio_present, 1)); if (cgi_info_epc_present) { - HANDLE_CODE(bref.unpack(cgi_info_epc.cgi_info_epc_list_present, 1)); + bool cgi_info_epc_list_present; + HANDLE_CODE(bref.unpack(cgi_info_epc_list_present, 1)); HANDLE_CODE(cgi_info_epc.cgi_info_epc_legacy.unpack(bref)); - if (cgi_info_epc.cgi_info_epc_list_present) { + if (cgi_info_epc_list_present) { HANDLE_CODE(unpack_dyn_seq_of(cgi_info_epc.cgi_info_epc_list, bref, 1, 12)); } } @@ -19405,7 +19494,7 @@ void cgi_info_eutra_s::to_json(json_writer& j) const j.start_obj(); j.write_fieldname("cgi-info-EPC-legacy"); cgi_info_epc.cgi_info_epc_legacy.to_json(j); - if (cgi_info_epc.cgi_info_epc_list_present) { + if (cgi_info_epc.cgi_info_epc_list.size() > 0) { j.start_array("cgi-info-EPC-list"); for (const auto& e1 : cgi_info_epc.cgi_info_epc_list) { e1.to_json(j); @@ -19414,7 +19503,7 @@ void cgi_info_eutra_s::to_json(json_writer& j) const } j.end_obj(); } - if (cgi_info_minus5_gc_present) { + if (cgi_info_minus5_gc.size() > 0) { j.start_array("cgi-info-5GC"); for (const auto& e1 : cgi_info_minus5_gc) { e1.to_json(j); @@ -19422,7 +19511,7 @@ void cgi_info_eutra_s::to_json(json_writer& j) const j.end_array(); } j.write_int("freqBandIndicator", freq_band_ind); - if (multi_band_info_list_present) { + if (multi_band_info_list.size() > 0) { j.start_array("multiBandInfoList"); for (const auto& e1 : multi_band_info_list) { j.write_int(e1); @@ -19506,12 +19595,12 @@ SRSASN_CODE meas_result_nr_s::pack(bit_ref& bref) const HANDLE_CODE(meas_result.cell_results.results_csi_rs_cell.pack(bref)); } if (meas_result.rs_idx_results_present) { - HANDLE_CODE(bref.pack(meas_result.rs_idx_results.results_ssb_idxes_present, 1)); - HANDLE_CODE(bref.pack(meas_result.rs_idx_results.results_csi_rs_idxes_present, 1)); - if (meas_result.rs_idx_results.results_ssb_idxes_present) { + HANDLE_CODE(bref.pack(meas_result.rs_idx_results.results_ssb_idxes.size() > 0, 1)); + HANDLE_CODE(bref.pack(meas_result.rs_idx_results.results_csi_rs_idxes.size() > 0, 1)); + if (meas_result.rs_idx_results.results_ssb_idxes.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result.rs_idx_results.results_ssb_idxes, 1, 64)); } - if (meas_result.rs_idx_results.results_csi_rs_idxes_present) { + if (meas_result.rs_idx_results.results_csi_rs_idxes.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result.rs_idx_results.results_csi_rs_idxes, 1, 64)); } } @@ -19550,12 +19639,14 @@ SRSASN_CODE meas_result_nr_s::unpack(cbit_ref& bref) HANDLE_CODE(meas_result.cell_results.results_csi_rs_cell.unpack(bref)); } if (meas_result.rs_idx_results_present) { - HANDLE_CODE(bref.unpack(meas_result.rs_idx_results.results_ssb_idxes_present, 1)); - HANDLE_CODE(bref.unpack(meas_result.rs_idx_results.results_csi_rs_idxes_present, 1)); - if (meas_result.rs_idx_results.results_ssb_idxes_present) { + bool results_ssb_idxes_present; + HANDLE_CODE(bref.unpack(results_ssb_idxes_present, 1)); + bool results_csi_rs_idxes_present; + HANDLE_CODE(bref.unpack(results_csi_rs_idxes_present, 1)); + if (results_ssb_idxes_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result.rs_idx_results.results_ssb_idxes, bref, 1, 64)); } - if (meas_result.rs_idx_results.results_csi_rs_idxes_present) { + if (results_csi_rs_idxes_present) { HANDLE_CODE(unpack_dyn_seq_of(meas_result.rs_idx_results.results_csi_rs_idxes, bref, 1, 64)); } } @@ -19599,14 +19690,14 @@ void meas_result_nr_s::to_json(json_writer& j) const if (meas_result.rs_idx_results_present) { j.write_fieldname("rsIndexResults"); j.start_obj(); - if (meas_result.rs_idx_results.results_ssb_idxes_present) { + if (meas_result.rs_idx_results.results_ssb_idxes.size() > 0) { j.start_array("resultsSSB-Indexes"); for (const auto& e1 : meas_result.rs_idx_results.results_ssb_idxes) { e1.to_json(j); } j.end_array(); } - if (meas_result.rs_idx_results.results_csi_rs_idxes_present) { + if (meas_result.rs_idx_results.results_csi_rs_idxes.size() > 0) { j.start_array("resultsCSI-RS-Indexes"); for (const auto& e1 : meas_result.rs_idx_results.results_csi_rs_idxes) { e1.to_json(j); @@ -19795,7 +19886,7 @@ SRSASN_CODE meas_result2_nr_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(ssb_freq_present, 1)); HANDLE_CODE(bref.pack(ref_freq_csi_rs_present, 1)); HANDLE_CODE(bref.pack(meas_result_serving_cell_present, 1)); - HANDLE_CODE(bref.pack(meas_result_neigh_cell_list_nr_present, 1)); + HANDLE_CODE(bref.pack(meas_result_neigh_cell_list_nr.size() > 0, 1)); if (ssb_freq_present) { HANDLE_CODE(pack_integer(bref, ssb_freq, (uint32_t)0u, (uint32_t)3279165u)); @@ -19806,7 +19897,7 @@ SRSASN_CODE meas_result2_nr_s::pack(bit_ref& bref) const if (meas_result_serving_cell_present) { HANDLE_CODE(meas_result_serving_cell.pack(bref)); } - if (meas_result_neigh_cell_list_nr_present) { + if (meas_result_neigh_cell_list_nr.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cell_list_nr, 1, 8)); } @@ -19818,6 +19909,7 @@ SRSASN_CODE meas_result2_nr_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(ssb_freq_present, 1)); HANDLE_CODE(bref.unpack(ref_freq_csi_rs_present, 1)); HANDLE_CODE(bref.unpack(meas_result_serving_cell_present, 1)); + bool meas_result_neigh_cell_list_nr_present; HANDLE_CODE(bref.unpack(meas_result_neigh_cell_list_nr_present, 1)); if (ssb_freq_present) { @@ -19848,7 +19940,7 @@ void meas_result2_nr_s::to_json(json_writer& j) const j.write_fieldname("measResultServingCell"); meas_result_serving_cell.to_json(j); } - if (meas_result_neigh_cell_list_nr_present) { + if (meas_result_neigh_cell_list_nr.size() > 0) { j.start_array("measResultNeighCellListNR"); for (const auto& e1 : meas_result_neigh_cell_list_nr) { e1.to_json(j); @@ -20481,14 +20573,14 @@ const char* fail_info_rlc_bearer_s::fail_type_opts::to_string() const SRSASN_CODE fail_report_scg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(meas_result_freq_list_present, 1)); - HANDLE_CODE(bref.pack(meas_result_scg_fail_present, 1)); + HANDLE_CODE(bref.pack(meas_result_freq_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(meas_result_scg_fail.size() > 0, 1)); HANDLE_CODE(fail_type.pack(bref)); - if (meas_result_freq_list_present) { + if (meas_result_freq_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_freq_list, 1, 8)); } - if (meas_result_scg_fail_present) { + if (meas_result_scg_fail.size() > 0) { HANDLE_CODE(meas_result_scg_fail.pack(bref)); } @@ -20497,7 +20589,9 @@ SRSASN_CODE fail_report_scg_s::pack(bit_ref& bref) const SRSASN_CODE fail_report_scg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool meas_result_freq_list_present; HANDLE_CODE(bref.unpack(meas_result_freq_list_present, 1)); + bool meas_result_scg_fail_present; HANDLE_CODE(bref.unpack(meas_result_scg_fail_present, 1)); HANDLE_CODE(fail_type.unpack(bref)); @@ -20514,14 +20608,14 @@ void fail_report_scg_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("failureType", fail_type.to_string()); - if (meas_result_freq_list_present) { + if (meas_result_freq_list.size() > 0) { j.start_array("measResultFreqList"); for (const auto& e1 : meas_result_freq_list) { e1.to_json(j); } j.end_array(); } - if (meas_result_scg_fail_present) { + if (meas_result_scg_fail.size() > 0) { j.write_str("measResultSCG-Failure", meas_result_scg_fail.to_string()); } j.end_obj(); @@ -20556,14 +20650,14 @@ uint16_t fail_report_scg_s::fail_type_opts::to_number() const SRSASN_CODE fail_report_scg_eutra_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(meas_result_freq_list_mrdc_present, 1)); - HANDLE_CODE(bref.pack(meas_result_scg_fail_mrdc_present, 1)); + HANDLE_CODE(bref.pack(meas_result_freq_list_mrdc.size() > 0, 1)); + HANDLE_CODE(bref.pack(meas_result_scg_fail_mrdc.size() > 0, 1)); HANDLE_CODE(fail_type.pack(bref)); - if (meas_result_freq_list_mrdc_present) { + if (meas_result_freq_list_mrdc.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_freq_list_mrdc, 1, 8)); } - if (meas_result_scg_fail_mrdc_present) { + if (meas_result_scg_fail_mrdc.size() > 0) { HANDLE_CODE(meas_result_scg_fail_mrdc.pack(bref)); } @@ -20572,7 +20666,9 @@ SRSASN_CODE fail_report_scg_eutra_s::pack(bit_ref& bref) const SRSASN_CODE fail_report_scg_eutra_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool meas_result_freq_list_mrdc_present; HANDLE_CODE(bref.unpack(meas_result_freq_list_mrdc_present, 1)); + bool meas_result_scg_fail_mrdc_present; HANDLE_CODE(bref.unpack(meas_result_scg_fail_mrdc_present, 1)); HANDLE_CODE(fail_type.unpack(bref)); @@ -20589,14 +20685,14 @@ void fail_report_scg_eutra_s::to_json(json_writer& j) const { j.start_obj(); j.write_str("failureType", fail_type.to_string()); - if (meas_result_freq_list_mrdc_present) { + if (meas_result_freq_list_mrdc.size() > 0) { j.start_array("measResultFreqListMRDC"); for (const auto& e1 : meas_result_freq_list_mrdc) { e1.to_json(j); } j.end_array(); } - if (meas_result_scg_fail_mrdc_present) { + if (meas_result_scg_fail_mrdc.size() > 0) { j.write_str("measResultSCG-FailureMRDC", meas_result_scg_fail_mrdc.to_string()); } j.end_obj(); @@ -20994,10 +21090,10 @@ const char* meas_results_s::meas_result_neigh_cells_c_::types_opts::to_string() // RRCReconfigurationComplete-v1530-IEs ::= SEQUENCE SRSASN_CODE rrc_recfg_complete_v1530_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ul_tx_direct_current_list_present, 1)); + HANDLE_CODE(bref.pack(ul_tx_direct_current_list.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (ul_tx_direct_current_list_present) { + if (ul_tx_direct_current_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ul_tx_direct_current_list, 1, 32)); } if (non_crit_ext_present) { @@ -21008,6 +21104,7 @@ SRSASN_CODE rrc_recfg_complete_v1530_ies_s::pack(bit_ref& bref) const } SRSASN_CODE rrc_recfg_complete_v1530_ies_s::unpack(cbit_ref& bref) { + bool ul_tx_direct_current_list_present; HANDLE_CODE(bref.unpack(ul_tx_direct_current_list_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21023,7 +21120,7 @@ SRSASN_CODE rrc_recfg_complete_v1530_ies_s::unpack(cbit_ref& bref) void rrc_recfg_complete_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (ul_tx_direct_current_list_present) { + if (ul_tx_direct_current_list.size() > 0) { j.start_array("uplinkTxDirectCurrentList"); for (const auto& e1 : ul_tx_direct_current_list) { e1.to_json(j); @@ -21208,10 +21305,10 @@ const char* s_nssai_c::types_opts::to_string() const // SCGFailureInformation-v1590-IEs ::= SEQUENCE SRSASN_CODE scg_fail_info_v1590_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21219,6 +21316,7 @@ SRSASN_CODE scg_fail_info_v1590_ies_s::pack(bit_ref& bref) const } SRSASN_CODE scg_fail_info_v1590_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21231,7 +21329,7 @@ SRSASN_CODE scg_fail_info_v1590_ies_s::unpack(cbit_ref& bref) void scg_fail_info_v1590_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21245,10 +21343,10 @@ void scg_fail_info_v1590_ies_s::to_json(json_writer& j) const // SCGFailureInformationEUTRA-v1590-IEs ::= SEQUENCE SRSASN_CODE scg_fail_info_eutra_v1590_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21256,6 +21354,7 @@ SRSASN_CODE scg_fail_info_eutra_v1590_ies_s::pack(bit_ref& bref) const } SRSASN_CODE scg_fail_info_eutra_v1590_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21268,7 +21367,7 @@ SRSASN_CODE scg_fail_info_eutra_v1590_ies_s::unpack(cbit_ref& bref) void scg_fail_info_eutra_v1590_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21320,11 +21419,11 @@ void ueassist_info_v1540_ies_s::to_json(json_writer& j) const // CounterCheckResponse-IEs ::= SEQUENCE SRSASN_CODE counter_check_resp_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, drb_count_info_list, 0, 29)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21332,6 +21431,7 @@ SRSASN_CODE counter_check_resp_ies_s::pack(bit_ref& bref) const } SRSASN_CODE counter_check_resp_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21350,7 +21450,7 @@ void counter_check_resp_ies_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21365,13 +21465,13 @@ void counter_check_resp_ies_s::to_json(json_writer& j) const SRSASN_CODE fail_info_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(fail_info_rlc_bearer_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (fail_info_rlc_bearer_present) { HANDLE_CODE(fail_info_rlc_bearer.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21380,6 +21480,7 @@ SRSASN_CODE fail_info_ies_s::pack(bit_ref& bref) const SRSASN_CODE fail_info_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(fail_info_rlc_bearer_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21399,7 +21500,7 @@ void fail_info_ies_s::to_json(json_writer& j) const j.write_fieldname("failureInfoRLC-Bearer"); fail_info_rlc_bearer.to_json(j); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21413,11 +21514,11 @@ void fail_info_ies_s::to_json(json_writer& j) const // LocationMeasurementIndication-IEs ::= SEQUENCE SRSASN_CODE location_meas_ind_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(meas_ind.pack(bref)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21425,6 +21526,7 @@ SRSASN_CODE location_meas_ind_ies_s::pack(bit_ref& bref) const } SRSASN_CODE location_meas_ind_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21440,7 +21542,7 @@ void location_meas_ind_ies_s::to_json(json_writer& j) const j.start_obj(); j.write_fieldname("measurementIndication"); meas_ind.to_json(j); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21454,11 +21556,11 @@ void location_meas_ind_ies_s::to_json(json_writer& j) const // MeasurementReport-IEs ::= SEQUENCE SRSASN_CODE meas_report_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(meas_results.pack(bref)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21466,6 +21568,7 @@ SRSASN_CODE meas_report_ies_s::pack(bit_ref& bref) const } SRSASN_CODE meas_report_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21481,7 +21584,7 @@ void meas_report_ies_s::to_json(json_writer& j) const j.start_obj(); j.write_fieldname("measResults"); meas_results.to_json(j); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21495,10 +21598,10 @@ void meas_report_ies_s::to_json(json_writer& j) const // RRCReconfigurationComplete-IEs ::= SEQUENCE SRSASN_CODE rrc_recfg_complete_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { @@ -21509,6 +21612,7 @@ SRSASN_CODE rrc_recfg_complete_ies_s::pack(bit_ref& bref) const } SRSASN_CODE rrc_recfg_complete_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21524,7 +21628,7 @@ SRSASN_CODE rrc_recfg_complete_ies_s::unpack(cbit_ref& bref) void rrc_recfg_complete_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21537,10 +21641,10 @@ void rrc_recfg_complete_ies_s::to_json(json_writer& j) const // RRCReestablishmentComplete-IEs ::= SEQUENCE SRSASN_CODE rrc_reest_complete_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21548,6 +21652,7 @@ SRSASN_CODE rrc_reest_complete_ies_s::pack(bit_ref& bref) const } SRSASN_CODE rrc_reest_complete_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21560,7 +21665,7 @@ SRSASN_CODE rrc_reest_complete_ies_s::unpack(cbit_ref& bref) void rrc_reest_complete_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21574,22 +21679,22 @@ void rrc_reest_complete_ies_s::to_json(json_writer& j) const // RRCResumeComplete-IEs ::= SEQUENCE SRSASN_CODE rrc_resume_complete_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ded_nas_msg_present, 1)); + HANDLE_CODE(bref.pack(ded_nas_msg.size() > 0, 1)); HANDLE_CODE(bref.pack(sel_plmn_id_present, 1)); - HANDLE_CODE(bref.pack(ul_tx_direct_current_list_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(ul_tx_direct_current_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (ded_nas_msg_present) { + if (ded_nas_msg.size() > 0) { HANDLE_CODE(ded_nas_msg.pack(bref)); } if (sel_plmn_id_present) { HANDLE_CODE(pack_integer(bref, sel_plmn_id, (uint8_t)1u, (uint8_t)12u)); } - if (ul_tx_direct_current_list_present) { + if (ul_tx_direct_current_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ul_tx_direct_current_list, 1, 32)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21597,9 +21702,12 @@ SRSASN_CODE rrc_resume_complete_ies_s::pack(bit_ref& bref) const } SRSASN_CODE rrc_resume_complete_ies_s::unpack(cbit_ref& bref) { + bool ded_nas_msg_present; HANDLE_CODE(bref.unpack(ded_nas_msg_present, 1)); HANDLE_CODE(bref.unpack(sel_plmn_id_present, 1)); + bool ul_tx_direct_current_list_present; HANDLE_CODE(bref.unpack(ul_tx_direct_current_list_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21621,20 +21729,20 @@ SRSASN_CODE rrc_resume_complete_ies_s::unpack(cbit_ref& bref) void rrc_resume_complete_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (ded_nas_msg_present) { + if (ded_nas_msg.size() > 0) { j.write_str("dedicatedNAS-Message", ded_nas_msg.to_string()); } if (sel_plmn_id_present) { j.write_int("selectedPLMN-Identity", sel_plmn_id); } - if (ul_tx_direct_current_list_present) { + if (ul_tx_direct_current_list.size() > 0) { j.start_array("uplinkTxDirectCurrentList"); for (const auto& e1 : ul_tx_direct_current_list) { e1.to_json(j); } j.end_array(); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21650,9 +21758,9 @@ SRSASN_CODE rrc_setup_complete_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(registered_amf_present, 1)); HANDLE_CODE(bref.pack(guami_type_present, 1)); - HANDLE_CODE(bref.pack(s_nssai_list_present, 1)); + HANDLE_CODE(bref.pack(s_nssai_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ng_minus5_g_s_tmsi_value_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(pack_integer(bref, sel_plmn_id, (uint8_t)1u, (uint8_t)12u)); @@ -21662,14 +21770,14 @@ SRSASN_CODE rrc_setup_complete_ies_s::pack(bit_ref& bref) const if (guami_type_present) { HANDLE_CODE(guami_type.pack(bref)); } - if (s_nssai_list_present) { + if (s_nssai_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, s_nssai_list, 1, 8)); } HANDLE_CODE(ded_nas_msg.pack(bref)); if (ng_minus5_g_s_tmsi_value_present) { HANDLE_CODE(ng_minus5_g_s_tmsi_value.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21679,8 +21787,10 @@ SRSASN_CODE rrc_setup_complete_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(registered_amf_present, 1)); HANDLE_CODE(bref.unpack(guami_type_present, 1)); + bool s_nssai_list_present; HANDLE_CODE(bref.unpack(s_nssai_list_present, 1)); HANDLE_CODE(bref.unpack(ng_minus5_g_s_tmsi_value_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21715,7 +21825,7 @@ void rrc_setup_complete_ies_s::to_json(json_writer& j) const if (guami_type_present) { j.write_str("guami-Type", guami_type.to_string()); } - if (s_nssai_list_present) { + if (s_nssai_list.size() > 0) { j.start_array("s-NSSAI-List"); for (const auto& e1 : s_nssai_list) { e1.to_json(j); @@ -21727,7 +21837,7 @@ void rrc_setup_complete_ies_s::to_json(json_writer& j) const j.write_fieldname("ng-5G-S-TMSI-Value"); ng_minus5_g_s_tmsi_value.to_json(j); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -21968,10 +22078,10 @@ void scg_fail_info_eutra_ies_s::to_json(json_writer& j) const // SecurityModeComplete-IEs ::= SEQUENCE SRSASN_CODE security_mode_complete_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -21979,6 +22089,7 @@ SRSASN_CODE security_mode_complete_ies_s::pack(bit_ref& bref) const } SRSASN_CODE security_mode_complete_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -21991,7 +22102,7 @@ SRSASN_CODE security_mode_complete_ies_s::unpack(cbit_ref& bref) void security_mode_complete_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -22005,10 +22116,10 @@ void security_mode_complete_ies_s::to_json(json_writer& j) const // SecurityModeFailure-IEs ::= SEQUENCE SRSASN_CODE security_mode_fail_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -22016,6 +22127,7 @@ SRSASN_CODE security_mode_fail_ies_s::pack(bit_ref& bref) const } SRSASN_CODE security_mode_fail_ies_s::unpack(cbit_ref& bref) { + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -22028,7 +22140,7 @@ SRSASN_CODE security_mode_fail_ies_s::unpack(cbit_ref& bref) void security_mode_fail_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -22043,13 +22155,13 @@ void security_mode_fail_ies_s::to_json(json_writer& j) const SRSASN_CODE ueassist_info_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(delay_budget_report_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (delay_budget_report_present) { HANDLE_CODE(delay_budget_report.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { @@ -22061,6 +22173,7 @@ SRSASN_CODE ueassist_info_ies_s::pack(bit_ref& bref) const SRSASN_CODE ueassist_info_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(delay_budget_report_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -22083,7 +22196,7 @@ void ueassist_info_ies_s::to_json(json_writer& j) const j.write_fieldname("delayBudgetReport"); delay_budget_report.to_json(j); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -22097,13 +22210,13 @@ void ueassist_info_ies_s::to_json(json_writer& j) const SRSASN_CODE ue_cap_info_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(ue_cap_rat_container_list_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (ue_cap_rat_container_list_present) { HANDLE_CODE(pack_dyn_seq_of(bref, ue_cap_rat_container_list, 0, 8)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -22112,6 +22225,7 @@ SRSASN_CODE ue_cap_info_ies_s::pack(bit_ref& bref) const SRSASN_CODE ue_cap_info_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(ue_cap_rat_container_list_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -22134,7 +22248,7 @@ void ue_cap_info_ies_s::to_json(json_writer& j) const } j.end_array(); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -22148,14 +22262,14 @@ void ue_cap_info_ies_s::to_json(json_writer& j) const // ULInformationTransfer-IEs ::= SEQUENCE SRSASN_CODE ul_info_transfer_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ded_nas_msg_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(ded_nas_msg.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (ded_nas_msg_present) { + if (ded_nas_msg.size() > 0) { HANDLE_CODE(ded_nas_msg.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -22163,7 +22277,9 @@ SRSASN_CODE ul_info_transfer_ies_s::pack(bit_ref& bref) const } SRSASN_CODE ul_info_transfer_ies_s::unpack(cbit_ref& bref) { + bool ded_nas_msg_present; HANDLE_CODE(bref.unpack(ded_nas_msg_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -22179,10 +22295,10 @@ SRSASN_CODE ul_info_transfer_ies_s::unpack(cbit_ref& bref) void ul_info_transfer_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (ded_nas_msg_present) { + if (ded_nas_msg.size() > 0) { j.write_str("dedicatedNAS-Message", ded_nas_msg.to_string()); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -22196,18 +22312,18 @@ void ul_info_transfer_ies_s::to_json(json_writer& j) const // ULInformationTransferMRDC-IEs ::= SEQUENCE SRSASN_CODE ul_info_transfer_mrdc_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ul_dcch_msg_nr_present, 1)); - HANDLE_CODE(bref.pack(ul_dcch_msg_eutra_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(ul_dcch_msg_nr.size() > 0, 1)); + HANDLE_CODE(bref.pack(ul_dcch_msg_eutra.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (ul_dcch_msg_nr_present) { + if (ul_dcch_msg_nr.size() > 0) { HANDLE_CODE(ul_dcch_msg_nr.pack(bref)); } - if (ul_dcch_msg_eutra_present) { + if (ul_dcch_msg_eutra.size() > 0) { HANDLE_CODE(ul_dcch_msg_eutra.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -22215,8 +22331,11 @@ SRSASN_CODE ul_info_transfer_mrdc_ies_s::pack(bit_ref& bref) const } SRSASN_CODE ul_info_transfer_mrdc_ies_s::unpack(cbit_ref& bref) { + bool ul_dcch_msg_nr_present; HANDLE_CODE(bref.unpack(ul_dcch_msg_nr_present, 1)); + bool ul_dcch_msg_eutra_present; HANDLE_CODE(bref.unpack(ul_dcch_msg_eutra_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -22235,13 +22354,13 @@ SRSASN_CODE ul_info_transfer_mrdc_ies_s::unpack(cbit_ref& bref) void ul_info_transfer_mrdc_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (ul_dcch_msg_nr_present) { + if (ul_dcch_msg_nr.size() > 0) { j.write_str("ul-DCCH-MessageNR", ul_dcch_msg_nr.to_string()); } - if (ul_dcch_msg_eutra_present) { + if (ul_dcch_msg_eutra.size() > 0) { j.write_str("ul-DCCH-MessageEUTRA", ul_dcch_msg_eutra.to_string()); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -24410,11 +24529,11 @@ void ul_dcch_msg_s::to_json(json_writer& j) const SRSASN_CODE bfr_csirs_res_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ra_occasion_list_present, 1)); + HANDLE_CODE(bref.pack(ra_occasion_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ra_preamb_idx_present, 1)); HANDLE_CODE(pack_integer(bref, csi_rs, (uint8_t)0u, (uint8_t)191u)); - if (ra_occasion_list_present) { + if (ra_occasion_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ra_occasion_list, 1, 64, integer_packer(0, 511))); } if (ra_preamb_idx_present) { @@ -24426,6 +24545,7 @@ SRSASN_CODE bfr_csirs_res_s::pack(bit_ref& bref) const SRSASN_CODE bfr_csirs_res_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool ra_occasion_list_present; HANDLE_CODE(bref.unpack(ra_occasion_list_present, 1)); HANDLE_CODE(bref.unpack(ra_preamb_idx_present, 1)); @@ -24443,7 +24563,7 @@ void bfr_csirs_res_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("csi-RS", csi_rs); - if (ra_occasion_list_present) { + if (ra_occasion_list.size() > 0) { j.start_array("ra-OccasionList"); for (const auto& e1 : ra_occasion_list) { j.write_int(e1); @@ -26792,25 +26912,25 @@ void zp_csi_rs_res_set_s::to_json(json_writer& j) const SRSASN_CODE pdcch_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ctrl_res_set_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(ctrl_res_set_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(search_spaces_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(search_spaces_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(ctrl_res_set_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(ctrl_res_set_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(search_spaces_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(search_spaces_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(dl_preemption_present, 1)); HANDLE_CODE(bref.pack(tpc_pusch_present, 1)); HANDLE_CODE(bref.pack(tpc_pucch_present, 1)); HANDLE_CODE(bref.pack(tpc_srs_present, 1)); - if (ctrl_res_set_to_add_mod_list_present) { + if (ctrl_res_set_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ctrl_res_set_to_add_mod_list, 1, 3)); } - if (ctrl_res_set_to_release_list_present) { + if (ctrl_res_set_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ctrl_res_set_to_release_list, 1, 3, integer_packer(0, 11))); } - if (search_spaces_to_add_mod_list_present) { + if (search_spaces_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, search_spaces_to_add_mod_list, 1, 10)); } - if (search_spaces_to_release_list_present) { + if (search_spaces_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, search_spaces_to_release_list, 1, 10, integer_packer(0, 39))); } if (dl_preemption_present) { @@ -26831,9 +26951,13 @@ SRSASN_CODE pdcch_cfg_s::pack(bit_ref& bref) const SRSASN_CODE pdcch_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool ctrl_res_set_to_add_mod_list_present; HANDLE_CODE(bref.unpack(ctrl_res_set_to_add_mod_list_present, 1)); + bool ctrl_res_set_to_release_list_present; HANDLE_CODE(bref.unpack(ctrl_res_set_to_release_list_present, 1)); + bool search_spaces_to_add_mod_list_present; HANDLE_CODE(bref.unpack(search_spaces_to_add_mod_list_present, 1)); + bool search_spaces_to_release_list_present; HANDLE_CODE(bref.unpack(search_spaces_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(dl_preemption_present, 1)); HANDLE_CODE(bref.unpack(tpc_pusch_present, 1)); @@ -26870,28 +26994,28 @@ SRSASN_CODE pdcch_cfg_s::unpack(cbit_ref& bref) void pdcch_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (ctrl_res_set_to_add_mod_list_present) { + if (ctrl_res_set_to_add_mod_list.size() > 0) { j.start_array("controlResourceSetToAddModList"); for (const auto& e1 : ctrl_res_set_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (ctrl_res_set_to_release_list_present) { + if (ctrl_res_set_to_release_list.size() > 0) { j.start_array("controlResourceSetToReleaseList"); for (const auto& e1 : ctrl_res_set_to_release_list) { j.write_int(e1); } j.end_array(); } - if (search_spaces_to_add_mod_list_present) { + if (search_spaces_to_add_mod_list.size() > 0) { j.start_array("searchSpacesToAddModList"); for (const auto& e1 : search_spaces_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (search_spaces_to_release_list_present) { + if (search_spaces_to_release_list.size() > 0) { j.start_array("searchSpacesToReleaseList"); for (const auto& e1 : search_spaces_to_release_list) { j.write_int(e1); @@ -26924,23 +27048,23 @@ SRSASN_CODE pdsch_cfg_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(data_scrambling_id_pdsch_present, 1)); HANDLE_CODE(bref.pack(dmrs_dl_for_pdsch_map_type_a_present, 1)); HANDLE_CODE(bref.pack(dmrs_dl_for_pdsch_map_type_b_present, 1)); - HANDLE_CODE(bref.pack(tci_states_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(tci_states_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(tci_states_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(tci_states_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(vrb_to_prb_interleaver_present, 1)); HANDLE_CODE(bref.pack(pdsch_time_domain_alloc_list_present, 1)); HANDLE_CODE(bref.pack(pdsch_aggregation_factor_present, 1)); - HANDLE_CODE(bref.pack(rate_match_pattern_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(rate_match_pattern_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(rate_match_pattern_group1_present, 1)); - HANDLE_CODE(bref.pack(rate_match_pattern_group2_present, 1)); + HANDLE_CODE(bref.pack(rate_match_pattern_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(rate_match_pattern_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(rate_match_pattern_group1.size() > 0, 1)); + HANDLE_CODE(bref.pack(rate_match_pattern_group2.size() > 0, 1)); HANDLE_CODE(bref.pack(mcs_table_present, 1)); HANDLE_CODE(bref.pack(max_nrof_code_words_sched_by_dci_present, 1)); - HANDLE_CODE(bref.pack(zp_csi_rs_res_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(zp_csi_rs_res_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(aperiodic_zp_csi_rs_res_sets_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(aperiodic_zp_csi_rs_res_sets_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(sp_zp_csi_rs_res_sets_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(sp_zp_csi_rs_res_sets_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(zp_csi_rs_res_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(zp_csi_rs_res_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(aperiodic_zp_csi_rs_res_sets_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(aperiodic_zp_csi_rs_res_sets_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(sp_zp_csi_rs_res_sets_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(sp_zp_csi_rs_res_sets_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(p_zp_csi_rs_res_set_present, 1)); if (data_scrambling_id_pdsch_present) { @@ -26952,10 +27076,10 @@ SRSASN_CODE pdsch_cfg_s::pack(bit_ref& bref) const if (dmrs_dl_for_pdsch_map_type_b_present) { HANDLE_CODE(dmrs_dl_for_pdsch_map_type_b.pack(bref)); } - if (tci_states_to_add_mod_list_present) { + if (tci_states_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, tci_states_to_add_mod_list, 1, 128)); } - if (tci_states_to_release_list_present) { + if (tci_states_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, tci_states_to_release_list, 1, 128, integer_packer(0, 127))); } if (vrb_to_prb_interleaver_present) { @@ -26968,16 +27092,16 @@ SRSASN_CODE pdsch_cfg_s::pack(bit_ref& bref) const if (pdsch_aggregation_factor_present) { HANDLE_CODE(pdsch_aggregation_factor.pack(bref)); } - if (rate_match_pattern_to_add_mod_list_present) { + if (rate_match_pattern_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rate_match_pattern_to_add_mod_list, 1, 4)); } - if (rate_match_pattern_to_release_list_present) { + if (rate_match_pattern_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rate_match_pattern_to_release_list, 1, 4, integer_packer(0, 3))); } - if (rate_match_pattern_group1_present) { + if (rate_match_pattern_group1.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rate_match_pattern_group1, 1, 8)); } - if (rate_match_pattern_group2_present) { + if (rate_match_pattern_group2.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rate_match_pattern_group2, 1, 8)); } HANDLE_CODE(rbg_size.pack(bref)); @@ -26988,23 +27112,23 @@ SRSASN_CODE pdsch_cfg_s::pack(bit_ref& bref) const HANDLE_CODE(max_nrof_code_words_sched_by_dci.pack(bref)); } HANDLE_CODE(prb_bundling_type.pack(bref)); - if (zp_csi_rs_res_to_add_mod_list_present) { + if (zp_csi_rs_res_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, zp_csi_rs_res_to_add_mod_list, 1, 32)); } - if (zp_csi_rs_res_to_release_list_present) { + if (zp_csi_rs_res_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, zp_csi_rs_res_to_release_list, 1, 32, integer_packer(0, 31))); } - if (aperiodic_zp_csi_rs_res_sets_to_add_mod_list_present) { + if (aperiodic_zp_csi_rs_res_sets_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, aperiodic_zp_csi_rs_res_sets_to_add_mod_list, 1, 16)); } - if (aperiodic_zp_csi_rs_res_sets_to_release_list_present) { + if (aperiodic_zp_csi_rs_res_sets_to_release_list.size() > 0) { HANDLE_CODE( pack_dyn_seq_of(bref, aperiodic_zp_csi_rs_res_sets_to_release_list, 1, 16, integer_packer(0, 15))); } - if (sp_zp_csi_rs_res_sets_to_add_mod_list_present) { + if (sp_zp_csi_rs_res_sets_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sp_zp_csi_rs_res_sets_to_add_mod_list, 1, 16)); } - if (sp_zp_csi_rs_res_sets_to_release_list_present) { + if (sp_zp_csi_rs_res_sets_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sp_zp_csi_rs_res_sets_to_release_list, 1, 16, integer_packer(0, 15))); } if (p_zp_csi_rs_res_set_present) { @@ -27019,22 +27143,34 @@ SRSASN_CODE pdsch_cfg_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(data_scrambling_id_pdsch_present, 1)); HANDLE_CODE(bref.unpack(dmrs_dl_for_pdsch_map_type_a_present, 1)); HANDLE_CODE(bref.unpack(dmrs_dl_for_pdsch_map_type_b_present, 1)); + bool tci_states_to_add_mod_list_present; HANDLE_CODE(bref.unpack(tci_states_to_add_mod_list_present, 1)); + bool tci_states_to_release_list_present; HANDLE_CODE(bref.unpack(tci_states_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(vrb_to_prb_interleaver_present, 1)); HANDLE_CODE(bref.unpack(pdsch_time_domain_alloc_list_present, 1)); HANDLE_CODE(bref.unpack(pdsch_aggregation_factor_present, 1)); + bool rate_match_pattern_to_add_mod_list_present; HANDLE_CODE(bref.unpack(rate_match_pattern_to_add_mod_list_present, 1)); + bool rate_match_pattern_to_release_list_present; HANDLE_CODE(bref.unpack(rate_match_pattern_to_release_list_present, 1)); + bool rate_match_pattern_group1_present; HANDLE_CODE(bref.unpack(rate_match_pattern_group1_present, 1)); + bool rate_match_pattern_group2_present; HANDLE_CODE(bref.unpack(rate_match_pattern_group2_present, 1)); HANDLE_CODE(bref.unpack(mcs_table_present, 1)); HANDLE_CODE(bref.unpack(max_nrof_code_words_sched_by_dci_present, 1)); + bool zp_csi_rs_res_to_add_mod_list_present; HANDLE_CODE(bref.unpack(zp_csi_rs_res_to_add_mod_list_present, 1)); + bool zp_csi_rs_res_to_release_list_present; HANDLE_CODE(bref.unpack(zp_csi_rs_res_to_release_list_present, 1)); + bool aperiodic_zp_csi_rs_res_sets_to_add_mod_list_present; HANDLE_CODE(bref.unpack(aperiodic_zp_csi_rs_res_sets_to_add_mod_list_present, 1)); + bool aperiodic_zp_csi_rs_res_sets_to_release_list_present; HANDLE_CODE(bref.unpack(aperiodic_zp_csi_rs_res_sets_to_release_list_present, 1)); + bool sp_zp_csi_rs_res_sets_to_add_mod_list_present; HANDLE_CODE(bref.unpack(sp_zp_csi_rs_res_sets_to_add_mod_list_present, 1)); + bool sp_zp_csi_rs_res_sets_to_release_list_present; HANDLE_CODE(bref.unpack(sp_zp_csi_rs_res_sets_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(p_zp_csi_rs_res_set_present, 1)); @@ -27122,14 +27258,14 @@ void pdsch_cfg_s::to_json(json_writer& j) const j.write_fieldname("dmrs-DownlinkForPDSCH-MappingTypeB"); dmrs_dl_for_pdsch_map_type_b.to_json(j); } - if (tci_states_to_add_mod_list_present) { + if (tci_states_to_add_mod_list.size() > 0) { j.start_array("tci-StatesToAddModList"); for (const auto& e1 : tci_states_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (tci_states_to_release_list_present) { + if (tci_states_to_release_list.size() > 0) { j.start_array("tci-StatesToReleaseList"); for (const auto& e1 : tci_states_to_release_list) { j.write_int(e1); @@ -27147,28 +27283,28 @@ void pdsch_cfg_s::to_json(json_writer& j) const if (pdsch_aggregation_factor_present) { j.write_str("pdsch-AggregationFactor", pdsch_aggregation_factor.to_string()); } - if (rate_match_pattern_to_add_mod_list_present) { + if (rate_match_pattern_to_add_mod_list.size() > 0) { j.start_array("rateMatchPatternToAddModList"); for (const auto& e1 : rate_match_pattern_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (rate_match_pattern_to_release_list_present) { + if (rate_match_pattern_to_release_list.size() > 0) { j.start_array("rateMatchPatternToReleaseList"); for (const auto& e1 : rate_match_pattern_to_release_list) { j.write_int(e1); } j.end_array(); } - if (rate_match_pattern_group1_present) { + if (rate_match_pattern_group1.size() > 0) { j.start_array("rateMatchPatternGroup1"); for (const auto& e1 : rate_match_pattern_group1) { e1.to_json(j); } j.end_array(); } - if (rate_match_pattern_group2_present) { + if (rate_match_pattern_group2.size() > 0) { j.start_array("rateMatchPatternGroup2"); for (const auto& e1 : rate_match_pattern_group2) { e1.to_json(j); @@ -27184,42 +27320,42 @@ void pdsch_cfg_s::to_json(json_writer& j) const } j.write_fieldname("prb-BundlingType"); prb_bundling_type.to_json(j); - if (zp_csi_rs_res_to_add_mod_list_present) { + if (zp_csi_rs_res_to_add_mod_list.size() > 0) { j.start_array("zp-CSI-RS-ResourceToAddModList"); for (const auto& e1 : zp_csi_rs_res_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (zp_csi_rs_res_to_release_list_present) { + if (zp_csi_rs_res_to_release_list.size() > 0) { j.start_array("zp-CSI-RS-ResourceToReleaseList"); for (const auto& e1 : zp_csi_rs_res_to_release_list) { j.write_int(e1); } j.end_array(); } - if (aperiodic_zp_csi_rs_res_sets_to_add_mod_list_present) { + if (aperiodic_zp_csi_rs_res_sets_to_add_mod_list.size() > 0) { j.start_array("aperiodic-ZP-CSI-RS-ResourceSetsToAddModList"); for (const auto& e1 : aperiodic_zp_csi_rs_res_sets_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (aperiodic_zp_csi_rs_res_sets_to_release_list_present) { + if (aperiodic_zp_csi_rs_res_sets_to_release_list.size() > 0) { j.start_array("aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList"); for (const auto& e1 : aperiodic_zp_csi_rs_res_sets_to_release_list) { j.write_int(e1); } j.end_array(); } - if (sp_zp_csi_rs_res_sets_to_add_mod_list_present) { + if (sp_zp_csi_rs_res_sets_to_add_mod_list.size() > 0) { j.start_array("sp-ZP-CSI-RS-ResourceSetsToAddModList"); for (const auto& e1 : sp_zp_csi_rs_res_sets_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (sp_zp_csi_rs_res_sets_to_release_list_present) { + if (sp_zp_csi_rs_res_sets_to_release_list.size() > 0) { j.start_array("sp-ZP-CSI-RS-ResourceSetsToReleaseList"); for (const auto& e1 : sp_zp_csi_rs_res_sets_to_release_list) { j.write_int(e1); @@ -27501,15 +27637,15 @@ const char* pdsch_cfg_s::prb_bundling_type_c_::types_opts::to_string() const SRSASN_CODE radio_link_monitoring_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(fail_detection_res_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(fail_detection_res_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(fail_detection_res_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(fail_detection_res_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(beam_fail_instance_max_count_present, 1)); HANDLE_CODE(bref.pack(beam_fail_detection_timer_present, 1)); - if (fail_detection_res_to_add_mod_list_present) { + if (fail_detection_res_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, fail_detection_res_to_add_mod_list, 1, 10)); } - if (fail_detection_res_to_release_list_present) { + if (fail_detection_res_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, fail_detection_res_to_release_list, 1, 10, integer_packer(0, 9))); } if (beam_fail_instance_max_count_present) { @@ -27524,7 +27660,9 @@ SRSASN_CODE radio_link_monitoring_cfg_s::pack(bit_ref& bref) const SRSASN_CODE radio_link_monitoring_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool fail_detection_res_to_add_mod_list_present; HANDLE_CODE(bref.unpack(fail_detection_res_to_add_mod_list_present, 1)); + bool fail_detection_res_to_release_list_present; HANDLE_CODE(bref.unpack(fail_detection_res_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(beam_fail_instance_max_count_present, 1)); HANDLE_CODE(bref.unpack(beam_fail_detection_timer_present, 1)); @@ -27547,14 +27685,14 @@ SRSASN_CODE radio_link_monitoring_cfg_s::unpack(cbit_ref& bref) void radio_link_monitoring_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (fail_detection_res_to_add_mod_list_present) { + if (fail_detection_res_to_add_mod_list.size() > 0) { j.start_array("failureDetectionResourcesToAddModList"); for (const auto& e1 : fail_detection_res_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (fail_detection_res_to_release_list_present) { + if (fail_detection_res_to_release_list.size() > 0) { j.start_array("failureDetectionResourcesToReleaseList"); for (const auto& e1 : fail_detection_res_to_release_list) { j.write_int(e1); @@ -29712,8 +29850,8 @@ SRSASN_CODE pucch_pwr_ctrl_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(delta_f_pucch_f2_present, 1)); HANDLE_CODE(bref.pack(delta_f_pucch_f3_present, 1)); HANDLE_CODE(bref.pack(delta_f_pucch_f4_present, 1)); - HANDLE_CODE(bref.pack(p0_set_present, 1)); - HANDLE_CODE(bref.pack(pathloss_ref_rss_present, 1)); + HANDLE_CODE(bref.pack(p0_set.size() > 0, 1)); + HANDLE_CODE(bref.pack(pathloss_ref_rss.size() > 0, 1)); HANDLE_CODE(bref.pack(two_pucch_pc_adjustment_states_present, 1)); if (delta_f_pucch_f0_present) { @@ -29731,10 +29869,10 @@ SRSASN_CODE pucch_pwr_ctrl_s::pack(bit_ref& bref) const if (delta_f_pucch_f4_present) { HANDLE_CODE(pack_integer(bref, delta_f_pucch_f4, (int8_t)-16, (int8_t)15)); } - if (p0_set_present) { + if (p0_set.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, p0_set, 1, 8)); } - if (pathloss_ref_rss_present) { + if (pathloss_ref_rss.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, pathloss_ref_rss, 1, 4)); } @@ -29748,7 +29886,9 @@ SRSASN_CODE pucch_pwr_ctrl_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(delta_f_pucch_f2_present, 1)); HANDLE_CODE(bref.unpack(delta_f_pucch_f3_present, 1)); HANDLE_CODE(bref.unpack(delta_f_pucch_f4_present, 1)); + bool p0_set_present; HANDLE_CODE(bref.unpack(p0_set_present, 1)); + bool pathloss_ref_rss_present; HANDLE_CODE(bref.unpack(pathloss_ref_rss_present, 1)); HANDLE_CODE(bref.unpack(two_pucch_pc_adjustment_states_present, 1)); @@ -29794,14 +29934,14 @@ void pucch_pwr_ctrl_s::to_json(json_writer& j) const if (delta_f_pucch_f4_present) { j.write_int("deltaF-PUCCH-f4", delta_f_pucch_f4); } - if (p0_set_present) { + if (p0_set.size() > 0) { j.start_array("p0-Set"); for (const auto& e1 : p0_set) { e1.to_json(j); } j.end_array(); } - if (pathloss_ref_rss_present) { + if (pathloss_ref_rss.size() > 0) { j.start_array("pathlossReferenceRSs"); for (const auto& e1 : pathloss_ref_rss) { e1.to_json(j); @@ -30341,13 +30481,13 @@ SRSASN_CODE pusch_pwr_ctrl_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(tpc_accumulation_present, 1)); HANDLE_CODE(bref.pack(msg3_alpha_present, 1)); HANDLE_CODE(bref.pack(p0_nominal_without_grant_present, 1)); - HANDLE_CODE(bref.pack(p0_alpha_sets_present, 1)); - HANDLE_CODE(bref.pack(pathloss_ref_rs_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(pathloss_ref_rs_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(p0_alpha_sets.size() > 0, 1)); + HANDLE_CODE(bref.pack(pathloss_ref_rs_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(pathloss_ref_rs_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(two_pusch_pc_adjustment_states_present, 1)); HANDLE_CODE(bref.pack(delta_mcs_present, 1)); - HANDLE_CODE(bref.pack(sri_pusch_map_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(sri_pusch_map_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(sri_pusch_map_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(sri_pusch_map_to_release_list.size() > 0, 1)); if (msg3_alpha_present) { HANDLE_CODE(msg3_alpha.pack(bref)); @@ -30355,19 +30495,19 @@ SRSASN_CODE pusch_pwr_ctrl_s::pack(bit_ref& bref) const if (p0_nominal_without_grant_present) { HANDLE_CODE(pack_integer(bref, p0_nominal_without_grant, (int16_t)-202, (int16_t)24)); } - if (p0_alpha_sets_present) { + if (p0_alpha_sets.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, p0_alpha_sets, 1, 30)); } - if (pathloss_ref_rs_to_add_mod_list_present) { + if (pathloss_ref_rs_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, pathloss_ref_rs_to_add_mod_list, 1, 4)); } - if (pathloss_ref_rs_to_release_list_present) { + if (pathloss_ref_rs_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, pathloss_ref_rs_to_release_list, 1, 4, integer_packer(0, 3))); } - if (sri_pusch_map_to_add_mod_list_present) { + if (sri_pusch_map_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sri_pusch_map_to_add_mod_list, 1, 16)); } - if (sri_pusch_map_to_release_list_present) { + if (sri_pusch_map_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sri_pusch_map_to_release_list, 1, 16, integer_packer(0, 15))); } @@ -30378,12 +30518,17 @@ SRSASN_CODE pusch_pwr_ctrl_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(tpc_accumulation_present, 1)); HANDLE_CODE(bref.unpack(msg3_alpha_present, 1)); HANDLE_CODE(bref.unpack(p0_nominal_without_grant_present, 1)); + bool p0_alpha_sets_present; HANDLE_CODE(bref.unpack(p0_alpha_sets_present, 1)); + bool pathloss_ref_rs_to_add_mod_list_present; HANDLE_CODE(bref.unpack(pathloss_ref_rs_to_add_mod_list_present, 1)); + bool pathloss_ref_rs_to_release_list_present; HANDLE_CODE(bref.unpack(pathloss_ref_rs_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(two_pusch_pc_adjustment_states_present, 1)); HANDLE_CODE(bref.unpack(delta_mcs_present, 1)); + bool sri_pusch_map_to_add_mod_list_present; HANDLE_CODE(bref.unpack(sri_pusch_map_to_add_mod_list_present, 1)); + bool sri_pusch_map_to_release_list_present; HANDLE_CODE(bref.unpack(sri_pusch_map_to_release_list_present, 1)); if (msg3_alpha_present) { @@ -30422,21 +30567,21 @@ void pusch_pwr_ctrl_s::to_json(json_writer& j) const if (p0_nominal_without_grant_present) { j.write_int("p0-NominalWithoutGrant", p0_nominal_without_grant); } - if (p0_alpha_sets_present) { + if (p0_alpha_sets.size() > 0) { j.start_array("p0-AlphaSets"); for (const auto& e1 : p0_alpha_sets) { e1.to_json(j); } j.end_array(); } - if (pathloss_ref_rs_to_add_mod_list_present) { + if (pathloss_ref_rs_to_add_mod_list.size() > 0) { j.start_array("pathlossReferenceRSToAddModList"); for (const auto& e1 : pathloss_ref_rs_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (pathloss_ref_rs_to_release_list_present) { + if (pathloss_ref_rs_to_release_list.size() > 0) { j.start_array("pathlossReferenceRSToReleaseList"); for (const auto& e1 : pathloss_ref_rs_to_release_list) { j.write_int(e1); @@ -30449,14 +30594,14 @@ void pusch_pwr_ctrl_s::to_json(json_writer& j) const if (delta_mcs_present) { j.write_str("deltaMCS", "enabled"); } - if (sri_pusch_map_to_add_mod_list_present) { + if (sri_pusch_map_to_add_mod_list.size() > 0) { j.start_array("sri-PUSCH-MappingToAddModList"); for (const auto& e1 : sri_pusch_map_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (sri_pusch_map_to_release_list_present) { + if (sri_pusch_map_to_release_list.size() > 0) { j.start_array("sri-PUSCH-MappingToReleaseList"); for (const auto& e1 : sri_pusch_map_to_release_list) { j.write_int(e1); @@ -30994,14 +31139,14 @@ const char* srs_res_s::res_type_c_::types_opts::to_string() const SRSASN_CODE srs_res_set_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(srs_res_id_list_present, 1)); + HANDLE_CODE(bref.pack(srs_res_id_list.size() > 0, 1)); HANDLE_CODE(bref.pack(alpha_present, 1)); HANDLE_CODE(bref.pack(p0_present, 1)); HANDLE_CODE(bref.pack(pathloss_ref_rs_present, 1)); HANDLE_CODE(bref.pack(srs_pwr_ctrl_adjustment_states_present, 1)); HANDLE_CODE(pack_integer(bref, srs_res_set_id, (uint8_t)0u, (uint8_t)15u)); - if (srs_res_id_list_present) { + if (srs_res_id_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, srs_res_id_list, 1, 16, integer_packer(0, 63))); } HANDLE_CODE(res_type.pack(bref)); @@ -31024,6 +31169,7 @@ SRSASN_CODE srs_res_set_s::pack(bit_ref& bref) const SRSASN_CODE srs_res_set_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool srs_res_id_list_present; HANDLE_CODE(bref.unpack(srs_res_id_list_present, 1)); HANDLE_CODE(bref.unpack(alpha_present, 1)); HANDLE_CODE(bref.unpack(p0_present, 1)); @@ -31055,7 +31201,7 @@ void srs_res_set_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("srs-ResourceSetId", srs_res_set_id); - if (srs_res_id_list_present) { + if (srs_res_id_list.size() > 0) { j.start_array("srs-ResourceIdList"); for (const auto& e1 : srs_res_id_list) { j.write_int(e1); @@ -32078,7 +32224,7 @@ SRSASN_CODE beam_fail_recovery_cfg_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(root_seq_idx_bfr_present, 1)); HANDLE_CODE(bref.pack(rach_cfg_bfr_present, 1)); HANDLE_CODE(bref.pack(rsrp_thres_ssb_present, 1)); - HANDLE_CODE(bref.pack(candidate_beam_rs_list_present, 1)); + HANDLE_CODE(bref.pack(candidate_beam_rs_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ssb_per_rach_occasion_present, 1)); HANDLE_CODE(bref.pack(ra_ssb_occasion_mask_idx_present, 1)); HANDLE_CODE(bref.pack(recovery_search_space_id_present, 1)); @@ -32094,7 +32240,7 @@ SRSASN_CODE beam_fail_recovery_cfg_s::pack(bit_ref& bref) const if (rsrp_thres_ssb_present) { HANDLE_CODE(pack_integer(bref, rsrp_thres_ssb, (uint8_t)0u, (uint8_t)127u)); } - if (candidate_beam_rs_list_present) { + if (candidate_beam_rs_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, candidate_beam_rs_list, 1, 16)); } if (ssb_per_rach_occasion_present) { @@ -32135,6 +32281,7 @@ SRSASN_CODE beam_fail_recovery_cfg_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(root_seq_idx_bfr_present, 1)); HANDLE_CODE(bref.unpack(rach_cfg_bfr_present, 1)); HANDLE_CODE(bref.unpack(rsrp_thres_ssb_present, 1)); + bool candidate_beam_rs_list_present; HANDLE_CODE(bref.unpack(candidate_beam_rs_list_present, 1)); HANDLE_CODE(bref.unpack(ssb_per_rach_occasion_present, 1)); HANDLE_CODE(bref.unpack(ra_ssb_occasion_mask_idx_present, 1)); @@ -32198,7 +32345,7 @@ void beam_fail_recovery_cfg_s::to_json(json_writer& j) const if (rsrp_thres_ssb_present) { j.write_int("rsrp-ThresholdSSB", rsrp_thres_ssb); } - if (candidate_beam_rs_list_present) { + if (candidate_beam_rs_list.size() > 0) { j.start_array("candidateBeamRSList"); for (const auto& e1 : candidate_beam_rs_list) { e1.to_json(j); @@ -32543,32 +32690,32 @@ const char* cfgured_grant_cfg_s::periodicity_opts::to_string() const SRSASN_CODE pucch_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(res_set_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(res_set_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(res_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(res_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(res_set_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(res_set_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(res_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(res_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(format1_present, 1)); HANDLE_CODE(bref.pack(format2_present, 1)); HANDLE_CODE(bref.pack(format3_present, 1)); HANDLE_CODE(bref.pack(format4_present, 1)); - HANDLE_CODE(bref.pack(sched_request_res_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(sched_request_res_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(multi_csi_pucch_res_list_present, 1)); - HANDLE_CODE(bref.pack(dl_data_to_ul_ack_present, 1)); - HANDLE_CODE(bref.pack(spatial_relation_info_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(spatial_relation_info_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(sched_request_res_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(sched_request_res_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(multi_csi_pucch_res_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(dl_data_to_ul_ack.size() > 0, 1)); + HANDLE_CODE(bref.pack(spatial_relation_info_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(spatial_relation_info_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(pucch_pwr_ctrl_present, 1)); - if (res_set_to_add_mod_list_present) { + if (res_set_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, res_set_to_add_mod_list, 1, 4)); } - if (res_set_to_release_list_present) { + if (res_set_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, res_set_to_release_list, 1, 4, integer_packer(0, 3))); } - if (res_to_add_mod_list_present) { + if (res_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, res_to_add_mod_list, 1, 128)); } - if (res_to_release_list_present) { + if (res_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, res_to_release_list, 1, 128, integer_packer(0, 127))); } if (format1_present) { @@ -32583,22 +32730,22 @@ SRSASN_CODE pucch_cfg_s::pack(bit_ref& bref) const if (format4_present) { HANDLE_CODE(format4.pack(bref)); } - if (sched_request_res_to_add_mod_list_present) { + if (sched_request_res_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sched_request_res_to_add_mod_list, 1, 8)); } - if (sched_request_res_to_release_list_present) { + if (sched_request_res_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sched_request_res_to_release_list, 1, 8, integer_packer(1, 8))); } - if (multi_csi_pucch_res_list_present) { + if (multi_csi_pucch_res_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, multi_csi_pucch_res_list, 1, 2, integer_packer(0, 127))); } - if (dl_data_to_ul_ack_present) { + if (dl_data_to_ul_ack.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, dl_data_to_ul_ack, 1, 8, integer_packer(0, 15))); } - if (spatial_relation_info_to_add_mod_list_present) { + if (spatial_relation_info_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, spatial_relation_info_to_add_mod_list, 1, 8)); } - if (spatial_relation_info_to_release_list_present) { + if (spatial_relation_info_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, spatial_relation_info_to_release_list, 1, 8, integer_packer(1, 8))); } if (pucch_pwr_ctrl_present) { @@ -32610,19 +32757,29 @@ SRSASN_CODE pucch_cfg_s::pack(bit_ref& bref) const SRSASN_CODE pucch_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool res_set_to_add_mod_list_present; HANDLE_CODE(bref.unpack(res_set_to_add_mod_list_present, 1)); + bool res_set_to_release_list_present; HANDLE_CODE(bref.unpack(res_set_to_release_list_present, 1)); + bool res_to_add_mod_list_present; HANDLE_CODE(bref.unpack(res_to_add_mod_list_present, 1)); + bool res_to_release_list_present; HANDLE_CODE(bref.unpack(res_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(format1_present, 1)); HANDLE_CODE(bref.unpack(format2_present, 1)); HANDLE_CODE(bref.unpack(format3_present, 1)); HANDLE_CODE(bref.unpack(format4_present, 1)); + bool sched_request_res_to_add_mod_list_present; HANDLE_CODE(bref.unpack(sched_request_res_to_add_mod_list_present, 1)); + bool sched_request_res_to_release_list_present; HANDLE_CODE(bref.unpack(sched_request_res_to_release_list_present, 1)); + bool multi_csi_pucch_res_list_present; HANDLE_CODE(bref.unpack(multi_csi_pucch_res_list_present, 1)); + bool dl_data_to_ul_ack_present; HANDLE_CODE(bref.unpack(dl_data_to_ul_ack_present, 1)); + bool spatial_relation_info_to_add_mod_list_present; HANDLE_CODE(bref.unpack(spatial_relation_info_to_add_mod_list_present, 1)); + bool spatial_relation_info_to_release_list_present; HANDLE_CODE(bref.unpack(spatial_relation_info_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(pucch_pwr_ctrl_present, 1)); @@ -32677,28 +32834,28 @@ SRSASN_CODE pucch_cfg_s::unpack(cbit_ref& bref) void pucch_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (res_set_to_add_mod_list_present) { + if (res_set_to_add_mod_list.size() > 0) { j.start_array("resourceSetToAddModList"); for (const auto& e1 : res_set_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (res_set_to_release_list_present) { + if (res_set_to_release_list.size() > 0) { j.start_array("resourceSetToReleaseList"); for (const auto& e1 : res_set_to_release_list) { j.write_int(e1); } j.end_array(); } - if (res_to_add_mod_list_present) { + if (res_to_add_mod_list.size() > 0) { j.start_array("resourceToAddModList"); for (const auto& e1 : res_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (res_to_release_list_present) { + if (res_to_release_list.size() > 0) { j.start_array("resourceToReleaseList"); for (const auto& e1 : res_to_release_list) { j.write_int(e1); @@ -32721,42 +32878,42 @@ void pucch_cfg_s::to_json(json_writer& j) const j.write_fieldname("format4"); format4.to_json(j); } - if (sched_request_res_to_add_mod_list_present) { + if (sched_request_res_to_add_mod_list.size() > 0) { j.start_array("schedulingRequestResourceToAddModList"); for (const auto& e1 : sched_request_res_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (sched_request_res_to_release_list_present) { + if (sched_request_res_to_release_list.size() > 0) { j.start_array("schedulingRequestResourceToReleaseList"); for (const auto& e1 : sched_request_res_to_release_list) { j.write_int(e1); } j.end_array(); } - if (multi_csi_pucch_res_list_present) { + if (multi_csi_pucch_res_list.size() > 0) { j.start_array("multi-CSI-PUCCH-ResourceList"); for (const auto& e1 : multi_csi_pucch_res_list) { j.write_int(e1); } j.end_array(); } - if (dl_data_to_ul_ack_present) { + if (dl_data_to_ul_ack.size() > 0) { j.start_array("dl-DataToUL-ACK"); for (const auto& e1 : dl_data_to_ul_ack) { j.write_int(e1); } j.end_array(); } - if (spatial_relation_info_to_add_mod_list_present) { + if (spatial_relation_info_to_add_mod_list.size() > 0) { j.start_array("spatialRelationInfoToAddModList"); for (const auto& e1 : spatial_relation_info_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (spatial_relation_info_to_release_list_present) { + if (spatial_relation_info_to_release_list.size() > 0) { j.start_array("spatialRelationInfoToReleaseList"); for (const auto& e1 : spatial_relation_info_to_release_list) { j.write_int(e1); @@ -32780,7 +32937,7 @@ SRSASN_CODE pusch_cfg_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(dmrs_ul_for_pusch_map_type_b_present, 1)); HANDLE_CODE(bref.pack(pusch_pwr_ctrl_present, 1)); HANDLE_CODE(bref.pack(freq_hop_present, 1)); - HANDLE_CODE(bref.pack(freq_hop_offset_lists_present, 1)); + HANDLE_CODE(bref.pack(freq_hop_offset_lists.size() > 0, 1)); HANDLE_CODE(bref.pack(pusch_time_domain_alloc_list_present, 1)); HANDLE_CODE(bref.pack(pusch_aggregation_factor_present, 1)); HANDLE_CODE(bref.pack(mcs_table_present, 1)); @@ -32810,7 +32967,7 @@ SRSASN_CODE pusch_cfg_s::pack(bit_ref& bref) const if (freq_hop_present) { HANDLE_CODE(freq_hop.pack(bref)); } - if (freq_hop_offset_lists_present) { + if (freq_hop_offset_lists.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_hop_offset_lists, 1, 4, integer_packer(1, 274))); } HANDLE_CODE(res_alloc.pack(bref)); @@ -32850,6 +33007,7 @@ SRSASN_CODE pusch_cfg_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(dmrs_ul_for_pusch_map_type_b_present, 1)); HANDLE_CODE(bref.unpack(pusch_pwr_ctrl_present, 1)); HANDLE_CODE(bref.unpack(freq_hop_present, 1)); + bool freq_hop_offset_lists_present; HANDLE_CODE(bref.unpack(freq_hop_offset_lists_present, 1)); HANDLE_CODE(bref.unpack(pusch_time_domain_alloc_list_present, 1)); HANDLE_CODE(bref.unpack(pusch_aggregation_factor_present, 1)); @@ -32935,7 +33093,7 @@ void pusch_cfg_s::to_json(json_writer& j) const if (freq_hop_present) { j.write_str("frequencyHopping", freq_hop.to_string()); } - if (freq_hop_offset_lists_present) { + if (freq_hop_offset_lists.size() > 0) { j.start_array("frequencyHoppingOffsetLists"); for (const auto& e1 : freq_hop_offset_lists) { j.write_int(e1); @@ -33050,22 +33208,22 @@ const char* pusch_cfg_s::codebook_subset_opts::to_string() const SRSASN_CODE srs_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(srs_res_set_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(srs_res_set_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(srs_res_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(srs_res_to_add_mod_list_present, 1)); + HANDLE_CODE(bref.pack(srs_res_set_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(srs_res_set_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(srs_res_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(srs_res_to_add_mod_list.size() > 0, 1)); HANDLE_CODE(bref.pack(tpc_accumulation_present, 1)); - if (srs_res_set_to_release_list_present) { + if (srs_res_set_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, srs_res_set_to_release_list, 1, 16, integer_packer(0, 15))); } - if (srs_res_set_to_add_mod_list_present) { + if (srs_res_set_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, srs_res_set_to_add_mod_list, 1, 16)); } - if (srs_res_to_release_list_present) { + if (srs_res_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, srs_res_to_release_list, 1, 64, integer_packer(0, 63))); } - if (srs_res_to_add_mod_list_present) { + if (srs_res_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, srs_res_to_add_mod_list, 1, 64)); } @@ -33074,9 +33232,13 @@ SRSASN_CODE srs_cfg_s::pack(bit_ref& bref) const SRSASN_CODE srs_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool srs_res_set_to_release_list_present; HANDLE_CODE(bref.unpack(srs_res_set_to_release_list_present, 1)); + bool srs_res_set_to_add_mod_list_present; HANDLE_CODE(bref.unpack(srs_res_set_to_add_mod_list_present, 1)); + bool srs_res_to_release_list_present; HANDLE_CODE(bref.unpack(srs_res_to_release_list_present, 1)); + bool srs_res_to_add_mod_list_present; HANDLE_CODE(bref.unpack(srs_res_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(tpc_accumulation_present, 1)); @@ -33098,28 +33260,28 @@ SRSASN_CODE srs_cfg_s::unpack(cbit_ref& bref) void srs_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (srs_res_set_to_release_list_present) { + if (srs_res_set_to_release_list.size() > 0) { j.start_array("srs-ResourceSetToReleaseList"); for (const auto& e1 : srs_res_set_to_release_list) { j.write_int(e1); } j.end_array(); } - if (srs_res_set_to_add_mod_list_present) { + if (srs_res_set_to_add_mod_list.size() > 0) { j.start_array("srs-ResourceSetToAddModList"); for (const auto& e1 : srs_res_set_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (srs_res_to_release_list_present) { + if (srs_res_to_release_list.size() > 0) { j.start_array("srs-ResourceToReleaseList"); for (const auto& e1 : srs_res_to_release_list) { j.write_int(e1); } j.end_array(); } - if (srs_res_to_add_mod_list_present) { + if (srs_res_to_add_mod_list.size() > 0) { j.start_array("srs-ResourceToAddModList"); for (const auto& e1 : srs_res_to_add_mod_list) { e1.to_json(j); @@ -37759,7 +37921,7 @@ void csi_associated_report_cfg_info_s::res_for_ch_c_::to_json(json_writer& j) co j.write_fieldname("nzp-CSI-RS"); j.start_obj(); j.write_int("resourceSet", c.get().res_set); - if (c.get().qcl_info_present) { + if (c.get().qcl_info.size() > 0) { j.start_array("qcl-info"); for (const auto& e1 : c.get().qcl_info) { j.write_int(e1); @@ -37781,9 +37943,9 @@ SRSASN_CODE csi_associated_report_cfg_info_s::res_for_ch_c_::pack(bit_ref& bref) type_.pack(bref); switch (type_) { case types::nzp_csi_rs: - HANDLE_CODE(bref.pack(c.get().qcl_info_present, 1)); + HANDLE_CODE(bref.pack(c.get().qcl_info.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, c.get().res_set, (uint8_t)1u, (uint8_t)16u)); - if (c.get().qcl_info_present) { + if (c.get().qcl_info.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, c.get().qcl_info, 1, 16, integer_packer(0, 127))); } break; @@ -37803,9 +37965,10 @@ SRSASN_CODE csi_associated_report_cfg_info_s::res_for_ch_c_::unpack(cbit_ref& br set(e); switch (type_) { case types::nzp_csi_rs: - HANDLE_CODE(bref.unpack(c.get().qcl_info_present, 1)); + bool qcl_info_present; + HANDLE_CODE(bref.unpack(qcl_info_present, 1)); HANDLE_CODE(unpack_integer(c.get().res_set, bref, (uint8_t)1u, (uint8_t)16u)); - if (c.get().qcl_info_present) { + if (qcl_info_present) { HANDLE_CODE(unpack_dyn_seq_of(c.get().qcl_info, bref, 1, 16, integer_packer(0, 127))); } break; @@ -40884,7 +41047,7 @@ SRSASN_CODE csi_report_cfg_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(codebook_cfg_present, 1)); HANDLE_CODE(bref.pack(dummy_present, 1)); HANDLE_CODE(bref.pack(cqi_table_present, 1)); - HANDLE_CODE(bref.pack(non_pmi_port_ind_present, 1)); + HANDLE_CODE(bref.pack(non_pmi_port_ind.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, report_cfg_id, (uint8_t)0u, (uint8_t)47u)); if (carrier_present) { @@ -40926,7 +41089,7 @@ SRSASN_CODE csi_report_cfg_s::pack(bit_ref& bref) const HANDLE_CODE(cqi_table.pack(bref)); } HANDLE_CODE(subband_size.pack(bref)); - if (non_pmi_port_ind_present) { + if (non_pmi_port_ind.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, non_pmi_port_ind, 1, 128)); } @@ -40956,6 +41119,7 @@ SRSASN_CODE csi_report_cfg_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(codebook_cfg_present, 1)); HANDLE_CODE(bref.unpack(dummy_present, 1)); HANDLE_CODE(bref.unpack(cqi_table_present, 1)); + bool non_pmi_port_ind_present; HANDLE_CODE(bref.unpack(non_pmi_port_ind_present, 1)); HANDLE_CODE(unpack_integer(report_cfg_id, bref, (uint8_t)0u, (uint8_t)47u)); @@ -41067,7 +41231,7 @@ void csi_report_cfg_s::to_json(json_writer& j) const j.write_str("cqi-Table", cqi_table.to_string()); } j.write_str("subbandSize", subband_size.to_string()); - if (non_pmi_port_ind_present) { + if (non_pmi_port_ind.size() > 0) { j.start_array("non-PMI-PortIndication"); for (const auto& e1 : non_pmi_port_ind) { e1.to_json(j); @@ -42316,7 +42480,7 @@ void csi_res_cfg_s::csi_rs_res_set_list_c_::to_json(json_writer& j) const case types::nzp_csi_rs_ssb: j.write_fieldname("nzp-CSI-RS-SSB"); j.start_obj(); - if (c.get().nzp_csi_rs_res_set_list_present) { + if (c.get().nzp_csi_rs_res_set_list.size() > 0) { j.start_array("nzp-CSI-RS-ResourceSetList"); for (const auto& e1 : c.get().nzp_csi_rs_res_set_list) { j.write_int(e1); @@ -42349,9 +42513,9 @@ SRSASN_CODE csi_res_cfg_s::csi_rs_res_set_list_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::nzp_csi_rs_ssb: - HANDLE_CODE(bref.pack(c.get().nzp_csi_rs_res_set_list_present, 1)); + HANDLE_CODE(bref.pack(c.get().nzp_csi_rs_res_set_list.size() > 0, 1)); HANDLE_CODE(bref.pack(c.get().csi_ssb_res_set_list_present, 1)); - if (c.get().nzp_csi_rs_res_set_list_present) { + if (c.get().nzp_csi_rs_res_set_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of( bref, c.get().nzp_csi_rs_res_set_list, 1, 16, integer_packer(0, 63))); } @@ -42378,9 +42542,10 @@ SRSASN_CODE csi_res_cfg_s::csi_rs_res_set_list_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::nzp_csi_rs_ssb: - HANDLE_CODE(bref.unpack(c.get().nzp_csi_rs_res_set_list_present, 1)); + bool nzp_csi_rs_res_set_list_present; + HANDLE_CODE(bref.unpack(nzp_csi_rs_res_set_list_present, 1)); HANDLE_CODE(bref.unpack(c.get().csi_ssb_res_set_list_present, 1)); - if (c.get().nzp_csi_rs_res_set_list_present) { + if (nzp_csi_rs_res_set_list_present) { HANDLE_CODE(unpack_dyn_seq_of( c.get().nzp_csi_rs_res_set_list, bref, 1, 16, integer_packer(0, 63))); } @@ -42589,64 +42754,64 @@ const char* nzp_csi_rs_res_set_s::repeat_opts::to_string() const SRSASN_CODE csi_meas_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(nzp_csi_rs_res_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(nzp_csi_rs_res_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(nzp_csi_rs_res_set_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(nzp_csi_rs_res_set_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(csi_im_res_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(csi_im_res_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(csi_im_res_set_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(csi_im_res_set_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(csi_ssb_res_set_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(csi_ssb_res_set_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(csi_res_cfg_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(csi_res_cfg_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(csi_report_cfg_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(csi_report_cfg_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(nzp_csi_rs_res_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(nzp_csi_rs_res_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(nzp_csi_rs_res_set_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(nzp_csi_rs_res_set_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_im_res_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_im_res_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_im_res_set_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_im_res_set_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_ssb_res_set_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_ssb_res_set_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_res_cfg_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_res_cfg_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_report_cfg_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(csi_report_cfg_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(report_trigger_size_present, 1)); HANDLE_CODE(bref.pack(aperiodic_trigger_state_list_present, 1)); HANDLE_CODE(bref.pack(semi_persistent_on_pusch_trigger_state_list_present, 1)); - if (nzp_csi_rs_res_to_add_mod_list_present) { + if (nzp_csi_rs_res_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, nzp_csi_rs_res_to_add_mod_list, 1, 192)); } - if (nzp_csi_rs_res_to_release_list_present) { + if (nzp_csi_rs_res_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, nzp_csi_rs_res_to_release_list, 1, 192, integer_packer(0, 191))); } - if (nzp_csi_rs_res_set_to_add_mod_list_present) { + if (nzp_csi_rs_res_set_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, nzp_csi_rs_res_set_to_add_mod_list, 1, 64)); } - if (nzp_csi_rs_res_set_to_release_list_present) { + if (nzp_csi_rs_res_set_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, nzp_csi_rs_res_set_to_release_list, 1, 64, integer_packer(0, 63))); } - if (csi_im_res_to_add_mod_list_present) { + if (csi_im_res_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_res_to_add_mod_list, 1, 32)); } - if (csi_im_res_to_release_list_present) { + if (csi_im_res_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_res_to_release_list, 1, 32, integer_packer(0, 31))); } - if (csi_im_res_set_to_add_mod_list_present) { + if (csi_im_res_set_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_res_set_to_add_mod_list, 1, 64)); } - if (csi_im_res_set_to_release_list_present) { + if (csi_im_res_set_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_im_res_set_to_release_list, 1, 64, integer_packer(0, 63))); } - if (csi_ssb_res_set_to_add_mod_list_present) { + if (csi_ssb_res_set_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_ssb_res_set_to_add_mod_list, 1, 64)); } - if (csi_ssb_res_set_to_release_list_present) { + if (csi_ssb_res_set_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_ssb_res_set_to_release_list, 1, 64, integer_packer(0, 63))); } - if (csi_res_cfg_to_add_mod_list_present) { + if (csi_res_cfg_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_res_cfg_to_add_mod_list, 1, 112)); } - if (csi_res_cfg_to_release_list_present) { + if (csi_res_cfg_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_res_cfg_to_release_list, 1, 112, integer_packer(0, 111))); } - if (csi_report_cfg_to_add_mod_list_present) { + if (csi_report_cfg_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_report_cfg_to_add_mod_list, 1, 48)); } - if (csi_report_cfg_to_release_list_present) { + if (csi_report_cfg_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, csi_report_cfg_to_release_list, 1, 48, integer_packer(0, 47))); } if (report_trigger_size_present) { @@ -42664,19 +42829,33 @@ SRSASN_CODE csi_meas_cfg_s::pack(bit_ref& bref) const SRSASN_CODE csi_meas_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool nzp_csi_rs_res_to_add_mod_list_present; HANDLE_CODE(bref.unpack(nzp_csi_rs_res_to_add_mod_list_present, 1)); + bool nzp_csi_rs_res_to_release_list_present; HANDLE_CODE(bref.unpack(nzp_csi_rs_res_to_release_list_present, 1)); + bool nzp_csi_rs_res_set_to_add_mod_list_present; HANDLE_CODE(bref.unpack(nzp_csi_rs_res_set_to_add_mod_list_present, 1)); + bool nzp_csi_rs_res_set_to_release_list_present; HANDLE_CODE(bref.unpack(nzp_csi_rs_res_set_to_release_list_present, 1)); + bool csi_im_res_to_add_mod_list_present; HANDLE_CODE(bref.unpack(csi_im_res_to_add_mod_list_present, 1)); + bool csi_im_res_to_release_list_present; HANDLE_CODE(bref.unpack(csi_im_res_to_release_list_present, 1)); + bool csi_im_res_set_to_add_mod_list_present; HANDLE_CODE(bref.unpack(csi_im_res_set_to_add_mod_list_present, 1)); + bool csi_im_res_set_to_release_list_present; HANDLE_CODE(bref.unpack(csi_im_res_set_to_release_list_present, 1)); + bool csi_ssb_res_set_to_add_mod_list_present; HANDLE_CODE(bref.unpack(csi_ssb_res_set_to_add_mod_list_present, 1)); + bool csi_ssb_res_set_to_release_list_present; HANDLE_CODE(bref.unpack(csi_ssb_res_set_to_release_list_present, 1)); + bool csi_res_cfg_to_add_mod_list_present; HANDLE_CODE(bref.unpack(csi_res_cfg_to_add_mod_list_present, 1)); + bool csi_res_cfg_to_release_list_present; HANDLE_CODE(bref.unpack(csi_res_cfg_to_release_list_present, 1)); + bool csi_report_cfg_to_add_mod_list_present; HANDLE_CODE(bref.unpack(csi_report_cfg_to_add_mod_list_present, 1)); + bool csi_report_cfg_to_release_list_present; HANDLE_CODE(bref.unpack(csi_report_cfg_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(report_trigger_size_present, 1)); HANDLE_CODE(bref.unpack(aperiodic_trigger_state_list_present, 1)); @@ -42739,98 +42918,98 @@ SRSASN_CODE csi_meas_cfg_s::unpack(cbit_ref& bref) void csi_meas_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (nzp_csi_rs_res_to_add_mod_list_present) { + if (nzp_csi_rs_res_to_add_mod_list.size() > 0) { j.start_array("nzp-CSI-RS-ResourceToAddModList"); for (const auto& e1 : nzp_csi_rs_res_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (nzp_csi_rs_res_to_release_list_present) { + if (nzp_csi_rs_res_to_release_list.size() > 0) { j.start_array("nzp-CSI-RS-ResourceToReleaseList"); for (const auto& e1 : nzp_csi_rs_res_to_release_list) { j.write_int(e1); } j.end_array(); } - if (nzp_csi_rs_res_set_to_add_mod_list_present) { + if (nzp_csi_rs_res_set_to_add_mod_list.size() > 0) { j.start_array("nzp-CSI-RS-ResourceSetToAddModList"); for (const auto& e1 : nzp_csi_rs_res_set_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (nzp_csi_rs_res_set_to_release_list_present) { + if (nzp_csi_rs_res_set_to_release_list.size() > 0) { j.start_array("nzp-CSI-RS-ResourceSetToReleaseList"); for (const auto& e1 : nzp_csi_rs_res_set_to_release_list) { j.write_int(e1); } j.end_array(); } - if (csi_im_res_to_add_mod_list_present) { + if (csi_im_res_to_add_mod_list.size() > 0) { j.start_array("csi-IM-ResourceToAddModList"); for (const auto& e1 : csi_im_res_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (csi_im_res_to_release_list_present) { + if (csi_im_res_to_release_list.size() > 0) { j.start_array("csi-IM-ResourceToReleaseList"); for (const auto& e1 : csi_im_res_to_release_list) { j.write_int(e1); } j.end_array(); } - if (csi_im_res_set_to_add_mod_list_present) { + if (csi_im_res_set_to_add_mod_list.size() > 0) { j.start_array("csi-IM-ResourceSetToAddModList"); for (const auto& e1 : csi_im_res_set_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (csi_im_res_set_to_release_list_present) { + if (csi_im_res_set_to_release_list.size() > 0) { j.start_array("csi-IM-ResourceSetToReleaseList"); for (const auto& e1 : csi_im_res_set_to_release_list) { j.write_int(e1); } j.end_array(); } - if (csi_ssb_res_set_to_add_mod_list_present) { + if (csi_ssb_res_set_to_add_mod_list.size() > 0) { j.start_array("csi-SSB-ResourceSetToAddModList"); for (const auto& e1 : csi_ssb_res_set_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (csi_ssb_res_set_to_release_list_present) { + if (csi_ssb_res_set_to_release_list.size() > 0) { j.start_array("csi-SSB-ResourceSetToReleaseList"); for (const auto& e1 : csi_ssb_res_set_to_release_list) { j.write_int(e1); } j.end_array(); } - if (csi_res_cfg_to_add_mod_list_present) { + if (csi_res_cfg_to_add_mod_list.size() > 0) { j.start_array("csi-ResourceConfigToAddModList"); for (const auto& e1 : csi_res_cfg_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (csi_res_cfg_to_release_list_present) { + if (csi_res_cfg_to_release_list.size() > 0) { j.start_array("csi-ResourceConfigToReleaseList"); for (const auto& e1 : csi_res_cfg_to_release_list) { j.write_int(e1); } j.end_array(); } - if (csi_report_cfg_to_add_mod_list_present) { + if (csi_report_cfg_to_add_mod_list.size() > 0) { j.start_array("csi-ReportConfigToAddModList"); for (const auto& e1 : csi_report_cfg_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (csi_report_cfg_to_release_list_present) { + if (csi_report_cfg_to_release_list.size() > 0) { j.start_array("csi-ReportConfigToReleaseList"); for (const auto& e1 : csi_report_cfg_to_release_list) { j.write_int(e1); @@ -43304,13 +43483,13 @@ void freq_info_dl_s::to_json(json_writer& j) const SRSASN_CODE freq_info_ul_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(freq_band_list_present, 1)); + HANDLE_CODE(bref.pack(freq_band_list.size() > 0, 1)); HANDLE_CODE(bref.pack(absolute_freq_point_a_present, 1)); HANDLE_CODE(bref.pack(add_spec_emission_present, 1)); HANDLE_CODE(bref.pack(p_max_present, 1)); HANDLE_CODE(bref.pack(freq_shift7p5khz_present, 1)); - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list, 1, 8, integer_packer(1, 1024))); } if (absolute_freq_point_a_present) { @@ -43329,6 +43508,7 @@ SRSASN_CODE freq_info_ul_s::pack(bit_ref& bref) const SRSASN_CODE freq_info_ul_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool freq_band_list_present; HANDLE_CODE(bref.unpack(freq_band_list_present, 1)); HANDLE_CODE(bref.unpack(absolute_freq_point_a_present, 1)); HANDLE_CODE(bref.unpack(add_spec_emission_present, 1)); @@ -43354,7 +43534,7 @@ SRSASN_CODE freq_info_ul_s::unpack(cbit_ref& bref) void freq_info_ul_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_list_present) { + if (freq_band_list.size() > 0) { j.start_array("frequencyBandList"); for (const auto& e1 : freq_band_list) { j.write_int(e1); @@ -43419,9 +43599,9 @@ uint8_t pusch_code_block_group_tx_s::max_code_block_groups_per_transport_block_o // SRS-TPC-PDCCH-Config ::= SEQUENCE SRSASN_CODE srs_tpc_pdcch_cfg_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(srs_cc_set_idxlist_present, 1)); + HANDLE_CODE(bref.pack(srs_cc_set_idxlist.size() > 0, 1)); - if (srs_cc_set_idxlist_present) { + if (srs_cc_set_idxlist.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, srs_cc_set_idxlist, 1, 4)); } @@ -43429,6 +43609,7 @@ SRSASN_CODE srs_tpc_pdcch_cfg_s::pack(bit_ref& bref) const } SRSASN_CODE srs_tpc_pdcch_cfg_s::unpack(cbit_ref& bref) { + bool srs_cc_set_idxlist_present; HANDLE_CODE(bref.unpack(srs_cc_set_idxlist_present, 1)); if (srs_cc_set_idxlist_present) { @@ -43440,7 +43621,7 @@ SRSASN_CODE srs_tpc_pdcch_cfg_s::unpack(cbit_ref& bref) void srs_tpc_pdcch_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (srs_cc_set_idxlist_present) { + if (srs_cc_set_idxlist.size() > 0) { j.start_array("srs-CC-SetIndexlist"); for (const auto& e1 : srs_cc_set_idxlist) { e1.to_json(j); @@ -43455,7 +43636,7 @@ SRSASN_CODE slot_format_combinations_per_cell_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(subcarrier_spacing2_present, 1)); - HANDLE_CODE(bref.pack(slot_format_combinations_present, 1)); + HANDLE_CODE(bref.pack(slot_format_combinations.size() > 0, 1)); HANDLE_CODE(bref.pack(position_in_dci_present, 1)); HANDLE_CODE(pack_integer(bref, serving_cell_id, (uint8_t)0u, (uint8_t)31u)); @@ -43463,7 +43644,7 @@ SRSASN_CODE slot_format_combinations_per_cell_s::pack(bit_ref& bref) const if (subcarrier_spacing2_present) { HANDLE_CODE(subcarrier_spacing2.pack(bref)); } - if (slot_format_combinations_present) { + if (slot_format_combinations.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, slot_format_combinations, 1, 512)); } if (position_in_dci_present) { @@ -43476,6 +43657,7 @@ SRSASN_CODE slot_format_combinations_per_cell_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(subcarrier_spacing2_present, 1)); + bool slot_format_combinations_present; HANDLE_CODE(bref.unpack(slot_format_combinations_present, 1)); HANDLE_CODE(bref.unpack(position_in_dci_present, 1)); @@ -43501,7 +43683,7 @@ void slot_format_combinations_per_cell_s::to_json(json_writer& j) const if (subcarrier_spacing2_present) { j.write_str("subcarrierSpacing2", subcarrier_spacing2.to_string()); } - if (slot_format_combinations_present) { + if (slot_format_combinations.size() > 0) { j.start_array("slotFormatCombinations"); for (const auto& e1 : slot_format_combinations) { e1.to_json(j); @@ -43742,11 +43924,11 @@ int32_t poll_pdu_opts::to_number() const // RateMatchPatternLTE-CRS ::= SEQUENCE SRSASN_CODE rate_match_pattern_lte_crs_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list_present, 1)); + HANDLE_CODE(bref.pack(mbsfn_sf_cfg_list.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, carrier_freq_dl, (uint16_t)0u, (uint16_t)16383u)); HANDLE_CODE(carrier_bw_dl.pack(bref)); - if (mbsfn_sf_cfg_list_present) { + if (mbsfn_sf_cfg_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, mbsfn_sf_cfg_list, 1, 8)); } HANDLE_CODE(nrof_crs_ports.pack(bref)); @@ -43756,6 +43938,7 @@ SRSASN_CODE rate_match_pattern_lte_crs_s::pack(bit_ref& bref) const } SRSASN_CODE rate_match_pattern_lte_crs_s::unpack(cbit_ref& bref) { + bool mbsfn_sf_cfg_list_present; HANDLE_CODE(bref.unpack(mbsfn_sf_cfg_list_present, 1)); HANDLE_CODE(unpack_integer(carrier_freq_dl, bref, (uint16_t)0u, (uint16_t)16383u)); @@ -43773,7 +43956,7 @@ void rate_match_pattern_lte_crs_s::to_json(json_writer& j) const j.start_obj(); j.write_int("carrierFreqDL", carrier_freq_dl); j.write_str("carrierBandwidthDL", carrier_bw_dl.to_string()); - if (mbsfn_sf_cfg_list_present) { + if (mbsfn_sf_cfg_list.size() > 0) { j.start_array("mbsfn-SubframeConfigList"); for (const auto& e1 : mbsfn_sf_cfg_list) { e1.to_json(j); @@ -43848,7 +44031,7 @@ SRSASN_CODE srs_carrier_switching_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(srs_switch_from_serv_cell_idx_present, 1)); HANDLE_CODE(bref.pack(srs_tpc_pdcch_group_present, 1)); - HANDLE_CODE(bref.pack(monitoring_cells_present, 1)); + HANDLE_CODE(bref.pack(monitoring_cells.size() > 0, 1)); if (srs_switch_from_serv_cell_idx_present) { HANDLE_CODE(pack_integer(bref, srs_switch_from_serv_cell_idx, (uint8_t)0u, (uint8_t)31u)); @@ -43857,7 +44040,7 @@ SRSASN_CODE srs_carrier_switching_s::pack(bit_ref& bref) const if (srs_tpc_pdcch_group_present) { HANDLE_CODE(srs_tpc_pdcch_group.pack(bref)); } - if (monitoring_cells_present) { + if (monitoring_cells.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, monitoring_cells, 1, 32, integer_packer(0, 31))); } @@ -43868,6 +44051,7 @@ SRSASN_CODE srs_carrier_switching_s::unpack(cbit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(srs_switch_from_serv_cell_idx_present, 1)); HANDLE_CODE(bref.unpack(srs_tpc_pdcch_group_present, 1)); + bool monitoring_cells_present; HANDLE_CODE(bref.unpack(monitoring_cells_present, 1)); if (srs_switch_from_serv_cell_idx_present) { @@ -43894,7 +44078,7 @@ void srs_carrier_switching_s::to_json(json_writer& j) const j.write_fieldname("srs-TPC-PDCCH-Group"); srs_tpc_pdcch_group.to_json(j); } - if (monitoring_cells_present) { + if (monitoring_cells.size() > 0) { j.start_array("monitoringCells"); for (const auto& e1 : monitoring_cells) { j.write_int(e1); @@ -44055,15 +44239,15 @@ const char* srs_carrier_switching_s::srs_tpc_pdcch_group_c_::types_opts::to_stri SRSASN_CODE slot_format_ind_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(slot_format_comb_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(slot_format_comb_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(slot_format_comb_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(slot_format_comb_to_release_list.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, sfi_rnti, (uint32_t)0u, (uint32_t)65535u)); HANDLE_CODE(pack_integer(bref, dci_payload_size, (uint8_t)1u, (uint8_t)128u)); - if (slot_format_comb_to_add_mod_list_present) { + if (slot_format_comb_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, slot_format_comb_to_add_mod_list, 1, 16)); } - if (slot_format_comb_to_release_list_present) { + if (slot_format_comb_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, slot_format_comb_to_release_list, 1, 16, integer_packer(0, 31))); } @@ -44072,7 +44256,9 @@ SRSASN_CODE slot_format_ind_s::pack(bit_ref& bref) const SRSASN_CODE slot_format_ind_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool slot_format_comb_to_add_mod_list_present; HANDLE_CODE(bref.unpack(slot_format_comb_to_add_mod_list_present, 1)); + bool slot_format_comb_to_release_list_present; HANDLE_CODE(bref.unpack(slot_format_comb_to_release_list_present, 1)); HANDLE_CODE(unpack_integer(sfi_rnti, bref, (uint32_t)0u, (uint32_t)65535u)); @@ -44091,14 +44277,14 @@ void slot_format_ind_s::to_json(json_writer& j) const j.start_obj(); j.write_int("sfi-RNTI", sfi_rnti); j.write_int("dci-PayloadSize", dci_payload_size); - if (slot_format_comb_to_add_mod_list_present) { + if (slot_format_comb_to_add_mod_list.size() > 0) { j.start_array("slotFormatCombToAddModList"); for (const auto& e1 : slot_format_comb_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (slot_format_comb_to_release_list_present) { + if (slot_format_comb_to_release_list.size() > 0) { j.start_array("slotFormatCombToReleaseList"); for (const auto& e1 : slot_format_comb_to_release_list) { j.write_int(e1); @@ -44850,8 +45036,8 @@ SRSASN_CODE serving_cell_cfg_common_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(ssb_positions_in_burst_present, 1)); HANDLE_CODE(bref.pack(ssb_periodicity_serving_cell_present, 1)); HANDLE_CODE(bref.pack(lte_crs_to_match_around_present, 1)); - HANDLE_CODE(bref.pack(rate_match_pattern_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(rate_match_pattern_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(rate_match_pattern_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(rate_match_pattern_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(ssb_subcarrier_spacing_present, 1)); HANDLE_CODE(bref.pack(tdd_ul_dl_cfg_common_present, 1)); @@ -44880,10 +45066,10 @@ SRSASN_CODE serving_cell_cfg_common_s::pack(bit_ref& bref) const if (lte_crs_to_match_around_present) { HANDLE_CODE(lte_crs_to_match_around.pack(bref)); } - if (rate_match_pattern_to_add_mod_list_present) { + if (rate_match_pattern_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rate_match_pattern_to_add_mod_list, 1, 4)); } - if (rate_match_pattern_to_release_list_present) { + if (rate_match_pattern_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rate_match_pattern_to_release_list, 1, 4, integer_packer(0, 3))); } if (ssb_subcarrier_spacing_present) { @@ -44907,7 +45093,9 @@ SRSASN_CODE serving_cell_cfg_common_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(ssb_positions_in_burst_present, 1)); HANDLE_CODE(bref.unpack(ssb_periodicity_serving_cell_present, 1)); HANDLE_CODE(bref.unpack(lte_crs_to_match_around_present, 1)); + bool rate_match_pattern_to_add_mod_list_present; HANDLE_CODE(bref.unpack(rate_match_pattern_to_add_mod_list_present, 1)); + bool rate_match_pattern_to_release_list_present; HANDLE_CODE(bref.unpack(rate_match_pattern_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(ssb_subcarrier_spacing_present, 1)); HANDLE_CODE(bref.unpack(tdd_ul_dl_cfg_common_present, 1)); @@ -44986,14 +45174,14 @@ void serving_cell_cfg_common_s::to_json(json_writer& j) const j.write_fieldname("lte-CRS-ToMatchAround"); lte_crs_to_match_around.to_json(j); } - if (rate_match_pattern_to_add_mod_list_present) { + if (rate_match_pattern_to_add_mod_list.size() > 0) { j.start_array("rateMatchPatternToAddModList"); for (const auto& e1 : rate_match_pattern_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (rate_match_pattern_to_release_list_present) { + if (rate_match_pattern_to_release_list.size() > 0) { j.start_array("rateMatchPatternToReleaseList"); for (const auto& e1 : rate_match_pattern_to_release_list) { j.write_int(e1); @@ -45234,13 +45422,13 @@ void tag_s::to_json(json_writer& j) const SRSASN_CODE tdd_ul_dl_cfg_ded_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(slot_specific_cfgs_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(slot_specific_cfgs_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(slot_specific_cfgs_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(slot_specific_cfgs_to_release_list.size() > 0, 1)); - if (slot_specific_cfgs_to_add_mod_list_present) { + if (slot_specific_cfgs_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, slot_specific_cfgs_to_add_mod_list, 1, 320)); } - if (slot_specific_cfgs_to_release_list_present) { + if (slot_specific_cfgs_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, slot_specific_cfgs_to_release_list, 1, 320, integer_packer(0, 319))); } @@ -45249,7 +45437,9 @@ SRSASN_CODE tdd_ul_dl_cfg_ded_s::pack(bit_ref& bref) const SRSASN_CODE tdd_ul_dl_cfg_ded_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool slot_specific_cfgs_to_add_mod_list_present; HANDLE_CODE(bref.unpack(slot_specific_cfgs_to_add_mod_list_present, 1)); + bool slot_specific_cfgs_to_release_list_present; HANDLE_CODE(bref.unpack(slot_specific_cfgs_to_release_list_present, 1)); if (slot_specific_cfgs_to_add_mod_list_present) { @@ -45264,14 +45454,14 @@ SRSASN_CODE tdd_ul_dl_cfg_ded_s::unpack(cbit_ref& bref) void tdd_ul_dl_cfg_ded_s::to_json(json_writer& j) const { j.start_obj(); - if (slot_specific_cfgs_to_add_mod_list_present) { + if (slot_specific_cfgs_to_add_mod_list.size() > 0) { j.start_array("slotSpecificConfigurationsToAddModList"); for (const auto& e1 : slot_specific_cfgs_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (slot_specific_cfgs_to_release_list_present) { + if (slot_specific_cfgs_to_release_list.size() > 0) { j.start_array("slotSpecificConfigurationsToReleaseList"); for (const auto& e1 : slot_specific_cfgs_to_release_list) { j.write_int(e1); @@ -45369,8 +45559,8 @@ SRSASN_CODE ul_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(init_ul_bwp_present, 1)); - HANDLE_CODE(bref.pack(ul_bwp_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(ul_bwp_to_add_mod_list_present, 1)); + HANDLE_CODE(bref.pack(ul_bwp_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(ul_bwp_to_add_mod_list.size() > 0, 1)); HANDLE_CODE(bref.pack(first_active_ul_bwp_id_present, 1)); HANDLE_CODE(bref.pack(pusch_serving_cell_cfg_present, 1)); HANDLE_CODE(bref.pack(carrier_switching_present, 1)); @@ -45378,10 +45568,10 @@ SRSASN_CODE ul_cfg_s::pack(bit_ref& bref) const if (init_ul_bwp_present) { HANDLE_CODE(init_ul_bwp.pack(bref)); } - if (ul_bwp_to_release_list_present) { + if (ul_bwp_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ul_bwp_to_release_list, 1, 4, integer_packer(0, 4))); } - if (ul_bwp_to_add_mod_list_present) { + if (ul_bwp_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ul_bwp_to_add_mod_list, 1, 4)); } if (first_active_ul_bwp_id_present) { @@ -45419,7 +45609,9 @@ SRSASN_CODE ul_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(init_ul_bwp_present, 1)); + bool ul_bwp_to_release_list_present; HANDLE_CODE(bref.unpack(ul_bwp_to_release_list_present, 1)); + bool ul_bwp_to_add_mod_list_present; HANDLE_CODE(bref.unpack(ul_bwp_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(first_active_ul_bwp_id_present, 1)); HANDLE_CODE(bref.unpack(pusch_serving_cell_cfg_present, 1)); @@ -45472,14 +45664,14 @@ void ul_cfg_s::to_json(json_writer& j) const j.write_fieldname("initialUplinkBWP"); init_ul_bwp.to_json(j); } - if (ul_bwp_to_release_list_present) { + if (ul_bwp_to_release_list.size() > 0) { j.start_array("uplinkBWP-ToReleaseList"); for (const auto& e1 : ul_bwp_to_release_list) { j.write_int(e1); } j.end_array(); } - if (ul_bwp_to_add_mod_list_present) { + if (ul_bwp_to_add_mod_list.size() > 0) { j.start_array("uplinkBWP-ToAddModList"); for (const auto& e1 : ul_bwp_to_add_mod_list) { e1.to_json(j); @@ -46385,8 +46577,8 @@ void lc_ch_cfg_s::to_json(json_writer& j) const SRSASN_CODE lc_ch_cfg_s::ul_specific_params_s_::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(allowed_serving_cells_present, 1)); - HANDLE_CODE(bref.pack(allowed_scs_list_present, 1)); + HANDLE_CODE(bref.pack(allowed_serving_cells.size() > 0, 1)); + HANDLE_CODE(bref.pack(allowed_scs_list.size() > 0, 1)); HANDLE_CODE(bref.pack(max_pusch_dur_present, 1)); HANDLE_CODE(bref.pack(cfgured_grant_type1_allowed_present, 1)); HANDLE_CODE(bref.pack(lc_ch_group_present, 1)); @@ -46395,10 +46587,10 @@ SRSASN_CODE lc_ch_cfg_s::ul_specific_params_s_::pack(bit_ref& bref) const HANDLE_CODE(pack_integer(bref, prio, (uint8_t)1u, (uint8_t)16u)); HANDLE_CODE(prioritised_bit_rate.pack(bref)); HANDLE_CODE(bucket_size_dur.pack(bref)); - if (allowed_serving_cells_present) { + if (allowed_serving_cells.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, allowed_serving_cells, 1, 31, integer_packer(0, 31))); } - if (allowed_scs_list_present) { + if (allowed_scs_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, allowed_scs_list, 1, 5)); } if (max_pusch_dur_present) { @@ -46425,7 +46617,9 @@ SRSASN_CODE lc_ch_cfg_s::ul_specific_params_s_::pack(bit_ref& bref) const SRSASN_CODE lc_ch_cfg_s::ul_specific_params_s_::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool allowed_serving_cells_present; HANDLE_CODE(bref.unpack(allowed_serving_cells_present, 1)); + bool allowed_scs_list_present; HANDLE_CODE(bref.unpack(allowed_scs_list_present, 1)); HANDLE_CODE(bref.unpack(max_pusch_dur_present, 1)); HANDLE_CODE(bref.unpack(cfgured_grant_type1_allowed_present, 1)); @@ -46468,14 +46662,14 @@ void lc_ch_cfg_s::ul_specific_params_s_::to_json(json_writer& j) const j.write_int("priority", prio); j.write_str("prioritisedBitRate", prioritised_bit_rate.to_string()); j.write_str("bucketSizeDuration", bucket_size_dur.to_string()); - if (allowed_serving_cells_present) { + if (allowed_serving_cells.size() > 0) { j.start_array("allowedServingCells"); for (const auto& e1 : allowed_serving_cells) { j.write_int(e1); } j.end_array(); } - if (allowed_scs_list_present) { + if (allowed_scs_list.size() > 0) { j.start_array("allowedSCS-List"); for (const auto& e1 : allowed_scs_list) { j.write_str(e1.to_string()); @@ -47199,13 +47393,13 @@ const char* recfg_with_sync_s::rach_cfg_ded_c_::types_opts::to_string() const // SchedulingRequestConfig ::= SEQUENCE SRSASN_CODE sched_request_cfg_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(sched_request_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(sched_request_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(sched_request_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(sched_request_to_release_list.size() > 0, 1)); - if (sched_request_to_add_mod_list_present) { + if (sched_request_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sched_request_to_add_mod_list, 1, 8)); } - if (sched_request_to_release_list_present) { + if (sched_request_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sched_request_to_release_list, 1, 8, integer_packer(0, 7))); } @@ -47213,7 +47407,9 @@ SRSASN_CODE sched_request_cfg_s::pack(bit_ref& bref) const } SRSASN_CODE sched_request_cfg_s::unpack(cbit_ref& bref) { + bool sched_request_to_add_mod_list_present; HANDLE_CODE(bref.unpack(sched_request_to_add_mod_list_present, 1)); + bool sched_request_to_release_list_present; HANDLE_CODE(bref.unpack(sched_request_to_release_list_present, 1)); if (sched_request_to_add_mod_list_present) { @@ -47228,14 +47424,14 @@ SRSASN_CODE sched_request_cfg_s::unpack(cbit_ref& bref) void sched_request_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (sched_request_to_add_mod_list_present) { + if (sched_request_to_add_mod_list.size() > 0) { j.start_array("schedulingRequestToAddModList"); for (const auto& e1 : sched_request_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (sched_request_to_release_list_present) { + if (sched_request_to_release_list.size() > 0) { j.start_array("schedulingRequestToReleaseList"); for (const auto& e1 : sched_request_to_release_list) { j.write_int(e1); @@ -47251,8 +47447,8 @@ SRSASN_CODE serving_cell_cfg_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(tdd_ul_dl_cfg_ded_present, 1)); HANDLE_CODE(bref.pack(init_dl_bwp_present, 1)); - HANDLE_CODE(bref.pack(dl_bwp_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(dl_bwp_to_add_mod_list_present, 1)); + HANDLE_CODE(bref.pack(dl_bwp_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(dl_bwp_to_add_mod_list.size() > 0, 1)); HANDLE_CODE(bref.pack(first_active_dl_bwp_id_present, 1)); HANDLE_CODE(bref.pack(bwp_inactivity_timer_present, 1)); HANDLE_CODE(bref.pack(default_dl_bwp_id_present, 1)); @@ -47273,10 +47469,10 @@ SRSASN_CODE serving_cell_cfg_s::pack(bit_ref& bref) const if (init_dl_bwp_present) { HANDLE_CODE(init_dl_bwp.pack(bref)); } - if (dl_bwp_to_release_list_present) { + if (dl_bwp_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, dl_bwp_to_release_list, 1, 4, integer_packer(0, 4))); } - if (dl_bwp_to_add_mod_list_present) { + if (dl_bwp_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, dl_bwp_to_add_mod_list, 1, 4)); } if (first_active_dl_bwp_id_present) { @@ -47353,7 +47549,9 @@ SRSASN_CODE serving_cell_cfg_s::unpack(cbit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(tdd_ul_dl_cfg_ded_present, 1)); HANDLE_CODE(bref.unpack(init_dl_bwp_present, 1)); + bool dl_bwp_to_release_list_present; HANDLE_CODE(bref.unpack(dl_bwp_to_release_list_present, 1)); + bool dl_bwp_to_add_mod_list_present; HANDLE_CODE(bref.unpack(dl_bwp_to_add_mod_list_present, 1)); HANDLE_CODE(bref.unpack(first_active_dl_bwp_id_present, 1)); HANDLE_CODE(bref.unpack(bwp_inactivity_timer_present, 1)); @@ -47465,14 +47663,14 @@ void serving_cell_cfg_s::to_json(json_writer& j) const j.write_fieldname("initialDownlinkBWP"); init_dl_bwp.to_json(j); } - if (dl_bwp_to_release_list_present) { + if (dl_bwp_to_release_list.size() > 0) { j.start_array("downlinkBWP-ToReleaseList"); for (const auto& e1 : dl_bwp_to_release_list) { j.write_int(e1); } j.end_array(); } - if (dl_bwp_to_add_mod_list_present) { + if (dl_bwp_to_add_mod_list.size() > 0) { j.start_array("downlinkBWP-ToAddModList"); for (const auto& e1 : dl_bwp_to_add_mod_list) { e1.to_json(j); @@ -47605,13 +47803,13 @@ const char* serving_cell_cfg_s::pathloss_ref_linking_opts::to_string() const // TAG-Config ::= SEQUENCE SRSASN_CODE tag_cfg_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(tag_to_release_list_present, 1)); - HANDLE_CODE(bref.pack(tag_to_add_mod_list_present, 1)); + HANDLE_CODE(bref.pack(tag_to_release_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(tag_to_add_mod_list.size() > 0, 1)); - if (tag_to_release_list_present) { + if (tag_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, tag_to_release_list, 1, 4, integer_packer(0, 3))); } - if (tag_to_add_mod_list_present) { + if (tag_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, tag_to_add_mod_list, 1, 4)); } @@ -47619,7 +47817,9 @@ SRSASN_CODE tag_cfg_s::pack(bit_ref& bref) const } SRSASN_CODE tag_cfg_s::unpack(cbit_ref& bref) { + bool tag_to_release_list_present; HANDLE_CODE(bref.unpack(tag_to_release_list_present, 1)); + bool tag_to_add_mod_list_present; HANDLE_CODE(bref.unpack(tag_to_add_mod_list_present, 1)); if (tag_to_release_list_present) { @@ -47634,14 +47834,14 @@ SRSASN_CODE tag_cfg_s::unpack(cbit_ref& bref) void tag_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (tag_to_release_list_present) { + if (tag_to_release_list.size() > 0) { j.start_array("tag-ToReleaseList"); for (const auto& e1 : tag_to_release_list) { j.write_int(e1); } j.end_array(); } - if (tag_to_add_mod_list_present) { + if (tag_to_add_mod_list.size() > 0) { j.start_array("tag-ToAddModList"); for (const auto& e1 : tag_to_add_mod_list) { e1.to_json(j); @@ -48322,19 +48522,19 @@ void sp_cell_cfg_s::to_json(json_writer& j) const SRSASN_CODE cell_group_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(rlc_bearer_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(rlc_bearer_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(rlc_bearer_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(rlc_bearer_to_release_list.size() > 0, 1)); HANDLE_CODE(bref.pack(mac_cell_group_cfg_present, 1)); HANDLE_CODE(bref.pack(phys_cell_group_cfg_present, 1)); HANDLE_CODE(bref.pack(sp_cell_cfg_present, 1)); - HANDLE_CODE(bref.pack(scell_to_add_mod_list_present, 1)); - HANDLE_CODE(bref.pack(scell_to_release_list_present, 1)); + HANDLE_CODE(bref.pack(scell_to_add_mod_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(scell_to_release_list.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, cell_group_id, (uint8_t)0u, (uint8_t)3u)); - if (rlc_bearer_to_add_mod_list_present) { + if (rlc_bearer_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rlc_bearer_to_add_mod_list, 1, 32)); } - if (rlc_bearer_to_release_list_present) { + if (rlc_bearer_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, rlc_bearer_to_release_list, 1, 32, integer_packer(1, 32))); } if (mac_cell_group_cfg_present) { @@ -48346,10 +48546,10 @@ SRSASN_CODE cell_group_cfg_s::pack(bit_ref& bref) const if (sp_cell_cfg_present) { HANDLE_CODE(sp_cell_cfg.pack(bref)); } - if (scell_to_add_mod_list_present) { + if (scell_to_add_mod_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list, 1, 31)); } - if (scell_to_release_list_present) { + if (scell_to_release_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_release_list, 1, 31, integer_packer(1, 31))); } @@ -48369,12 +48569,16 @@ SRSASN_CODE cell_group_cfg_s::pack(bit_ref& bref) const SRSASN_CODE cell_group_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool rlc_bearer_to_add_mod_list_present; HANDLE_CODE(bref.unpack(rlc_bearer_to_add_mod_list_present, 1)); + bool rlc_bearer_to_release_list_present; HANDLE_CODE(bref.unpack(rlc_bearer_to_release_list_present, 1)); HANDLE_CODE(bref.unpack(mac_cell_group_cfg_present, 1)); HANDLE_CODE(bref.unpack(phys_cell_group_cfg_present, 1)); HANDLE_CODE(bref.unpack(sp_cell_cfg_present, 1)); + bool scell_to_add_mod_list_present; HANDLE_CODE(bref.unpack(scell_to_add_mod_list_present, 1)); + bool scell_to_release_list_present; HANDLE_CODE(bref.unpack(scell_to_release_list_present, 1)); HANDLE_CODE(unpack_integer(cell_group_id, bref, (uint8_t)0u, (uint8_t)3u)); @@ -48416,14 +48620,14 @@ void cell_group_cfg_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("cellGroupId", cell_group_id); - if (rlc_bearer_to_add_mod_list_present) { + if (rlc_bearer_to_add_mod_list.size() > 0) { j.start_array("rlc-BearerToAddModList"); for (const auto& e1 : rlc_bearer_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (rlc_bearer_to_release_list_present) { + if (rlc_bearer_to_release_list.size() > 0) { j.start_array("rlc-BearerToReleaseList"); for (const auto& e1 : rlc_bearer_to_release_list) { j.write_int(e1); @@ -48442,14 +48646,14 @@ void cell_group_cfg_s::to_json(json_writer& j) const j.write_fieldname("spCellConfig"); sp_cell_cfg.to_json(j); } - if (scell_to_add_mod_list_present) { + if (scell_to_add_mod_list.size() > 0) { j.start_array("sCellToAddModList"); for (const auto& e1 : scell_to_add_mod_list) { e1.to_json(j); } j.end_array(); } - if (scell_to_release_list_present) { + if (scell_to_release_list.size() > 0) { j.start_array("sCellToReleaseList"); for (const auto& e1 : scell_to_release_list) { j.write_int(e1); @@ -49106,10 +49310,10 @@ SRSASN_CODE feature_set_dl_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(time_dur_for_qcl_present, 1)); HANDLE_CODE(bref.pack(pdsch_processing_type1_different_tb_per_slot_present, 1)); HANDLE_CODE(bref.pack(dummy3_present, 1)); - HANDLE_CODE(bref.pack(dummy4_present, 1)); - HANDLE_CODE(bref.pack(dummy5_present, 1)); - HANDLE_CODE(bref.pack(dummy6_present, 1)); - HANDLE_CODE(bref.pack(dummy7_present, 1)); + HANDLE_CODE(bref.pack(dummy4.size() > 0, 1)); + HANDLE_CODE(bref.pack(dummy5.size() > 0, 1)); + HANDLE_CODE(bref.pack(dummy6.size() > 0, 1)); + HANDLE_CODE(bref.pack(dummy7.size() > 0, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, feature_set_list_per_dl_cc, 1, 32, integer_packer(1, 1024))); if (intra_band_freq_separation_dl_present) { @@ -49152,16 +49356,16 @@ SRSASN_CODE feature_set_dl_s::pack(bit_ref& bref) const if (dummy3_present) { HANDLE_CODE(dummy3.pack(bref)); } - if (dummy4_present) { + if (dummy4.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, dummy4, 1, 16)); } - if (dummy5_present) { + if (dummy5.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, dummy5, 1, 16)); } - if (dummy6_present) { + if (dummy6.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, dummy6, 1, 16)); } - if (dummy7_present) { + if (dummy7.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, dummy7, 1, 16)); } @@ -49183,9 +49387,13 @@ SRSASN_CODE feature_set_dl_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(time_dur_for_qcl_present, 1)); HANDLE_CODE(bref.unpack(pdsch_processing_type1_different_tb_per_slot_present, 1)); HANDLE_CODE(bref.unpack(dummy3_present, 1)); + bool dummy4_present; HANDLE_CODE(bref.unpack(dummy4_present, 1)); + bool dummy5_present; HANDLE_CODE(bref.unpack(dummy5_present, 1)); + bool dummy6_present; HANDLE_CODE(bref.unpack(dummy6_present, 1)); + bool dummy7_present; HANDLE_CODE(bref.unpack(dummy7_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(feature_set_list_per_dl_cc, bref, 1, 32, integer_packer(1, 1024))); @@ -49317,28 +49525,28 @@ void feature_set_dl_s::to_json(json_writer& j) const j.write_fieldname("dummy3"); dummy3.to_json(j); } - if (dummy4_present) { + if (dummy4.size() > 0) { j.start_array("dummy4"); for (const auto& e1 : dummy4) { e1.to_json(j); } j.end_array(); } - if (dummy5_present) { + if (dummy5.size() > 0) { j.start_array("dummy5"); for (const auto& e1 : dummy5) { e1.to_json(j); } j.end_array(); } - if (dummy6_present) { + if (dummy6.size() > 0) { j.start_array("dummy6"); for (const auto& e1 : dummy6) { e1.to_json(j); } j.end_array(); } - if (dummy7_present) { + if (dummy7.size() > 0) { j.start_array("dummy7"); for (const auto& e1 : dummy7) { e1.to_json(j); @@ -50513,21 +50721,21 @@ void feature_set_ul_per_cc_v1540_s::to_json(json_writer& j) const SRSASN_CODE feature_sets_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(feature_sets_dl_present, 1)); - HANDLE_CODE(bref.pack(feature_sets_dl_per_cc_present, 1)); - HANDLE_CODE(bref.pack(feature_sets_ul_present, 1)); - HANDLE_CODE(bref.pack(feature_sets_ul_per_cc_present, 1)); + HANDLE_CODE(bref.pack(feature_sets_dl.size() > 0, 1)); + HANDLE_CODE(bref.pack(feature_sets_dl_per_cc.size() > 0, 1)); + HANDLE_CODE(bref.pack(feature_sets_ul.size() > 0, 1)); + HANDLE_CODE(bref.pack(feature_sets_ul_per_cc.size() > 0, 1)); - if (feature_sets_dl_present) { + if (feature_sets_dl.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_sets_dl, 1, 1024)); } - if (feature_sets_dl_per_cc_present) { + if (feature_sets_dl_per_cc.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_sets_dl_per_cc, 1, 1024)); } - if (feature_sets_ul_present) { + if (feature_sets_ul.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_sets_ul, 1, 1024)); } - if (feature_sets_ul_per_cc_present) { + if (feature_sets_ul_per_cc.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_sets_ul_per_cc, 1, 1024)); } @@ -50569,9 +50777,13 @@ SRSASN_CODE feature_sets_s::pack(bit_ref& bref) const SRSASN_CODE feature_sets_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool feature_sets_dl_present; HANDLE_CODE(bref.unpack(feature_sets_dl_present, 1)); + bool feature_sets_dl_per_cc_present; HANDLE_CODE(bref.unpack(feature_sets_dl_per_cc_present, 1)); + bool feature_sets_ul_present; HANDLE_CODE(bref.unpack(feature_sets_ul_present, 1)); + bool feature_sets_ul_per_cc_present; HANDLE_CODE(bref.unpack(feature_sets_ul_per_cc_present, 1)); if (feature_sets_dl_present) { @@ -50629,28 +50841,28 @@ SRSASN_CODE feature_sets_s::unpack(cbit_ref& bref) void feature_sets_s::to_json(json_writer& j) const { j.start_obj(); - if (feature_sets_dl_present) { + if (feature_sets_dl.size() > 0) { j.start_array("featureSetsDownlink"); for (const auto& e1 : feature_sets_dl) { e1.to_json(j); } j.end_array(); } - if (feature_sets_dl_per_cc_present) { + if (feature_sets_dl_per_cc.size() > 0) { j.start_array("featureSetsDownlinkPerCC"); for (const auto& e1 : feature_sets_dl_per_cc) { e1.to_json(j); } j.end_array(); } - if (feature_sets_ul_present) { + if (feature_sets_ul.size() > 0) { j.start_array("featureSetsUplink"); for (const auto& e1 : feature_sets_ul) { e1.to_json(j); } j.end_array(); } - if (feature_sets_ul_per_cc_present) { + if (feature_sets_ul_per_cc.size() > 0) { j.start_array("featureSetsUplinkPerCC"); for (const auto& e1 : feature_sets_ul_per_cc) { e1.to_json(j); @@ -52040,7 +52252,7 @@ SRSASN_CODE nrdc_params_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(tdd_add_ue_nrdc_cap_present, 1)); HANDLE_CODE(bref.pack(fr1_add_ue_nrdc_cap_present, 1)); HANDLE_CODE(bref.pack(fr2_add_ue_nrdc_cap_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(dummy_present, 1)); if (meas_and_mob_params_nrdc_present) { @@ -52061,7 +52273,7 @@ SRSASN_CODE nrdc_params_s::pack(bit_ref& bref) const if (fr2_add_ue_nrdc_cap_present) { HANDLE_CODE(fr2_add_ue_nrdc_cap.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -52075,6 +52287,7 @@ SRSASN_CODE nrdc_params_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(tdd_add_ue_nrdc_cap_present, 1)); HANDLE_CODE(bref.unpack(fr1_add_ue_nrdc_cap_present, 1)); HANDLE_CODE(bref.unpack(fr2_add_ue_nrdc_cap_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(dummy_present, 1)); @@ -52129,7 +52342,7 @@ void nrdc_params_s::to_json(json_writer& j) const j.write_fieldname("fr2-Add-UE-NRDC-Capabilities"); fr2_add_ue_nrdc_cap.to_json(j); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (dummy_present) { @@ -53383,9 +53596,9 @@ uint16_t naics_cap_entry_s::nof_aggregated_prb_opts::to_number() const SRSASN_CODE phy_params_mrdc_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(naics_cap_list_present, 1)); + HANDLE_CODE(bref.pack(naics_cap_list.size() > 0, 1)); - if (naics_cap_list_present) { + if (naics_cap_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, naics_cap_list, 1, 8)); } @@ -53408,6 +53621,7 @@ SRSASN_CODE phy_params_mrdc_s::pack(bit_ref& bref) const SRSASN_CODE phy_params_mrdc_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool naics_cap_list_present; HANDLE_CODE(bref.unpack(naics_cap_list_present, 1)); if (naics_cap_list_present) { @@ -53434,7 +53648,7 @@ SRSASN_CODE phy_params_mrdc_s::unpack(cbit_ref& bref) void phy_params_mrdc_s::to_json(json_writer& j) const { j.start_obj(); - if (naics_cap_list_present) { + if (naics_cap_list.size() > 0) { j.start_array("naics-Capability-List"); for (const auto& e1 : naics_cap_list) { e1.to_json(j); @@ -53454,14 +53668,14 @@ void phy_params_mrdc_s::to_json(json_writer& j) const SRSASN_CODE rf_params_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(supported_band_combination_list_present, 1)); - HANDLE_CODE(bref.pack(applied_freq_band_list_filt_present, 1)); + HANDLE_CODE(bref.pack(supported_band_combination_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(applied_freq_band_list_filt.size() > 0, 1)); HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_nr, 1, 1024)); - if (supported_band_combination_list_present) { + if (supported_band_combination_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_list, 1, 65536)); } - if (applied_freq_band_list_filt_present) { + if (applied_freq_band_list_filt.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, applied_freq_band_list_filt, 1, 1280)); } @@ -53504,7 +53718,9 @@ SRSASN_CODE rf_params_s::pack(bit_ref& bref) const SRSASN_CODE rf_params_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool supported_band_combination_list_present; HANDLE_CODE(bref.unpack(supported_band_combination_list_present, 1)); + bool applied_freq_band_list_filt_present; HANDLE_CODE(bref.unpack(applied_freq_band_list_filt_present, 1)); HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_nr, bref, 1, 1024)); @@ -53561,14 +53777,14 @@ void rf_params_s::to_json(json_writer& j) const e1.to_json(j); } j.end_array(); - if (supported_band_combination_list_present) { + if (supported_band_combination_list.size() > 0) { j.start_array("supportedBandCombinationList"); for (const auto& e1 : supported_band_combination_list) { e1.to_json(j); } j.end_array(); } - if (applied_freq_band_list_filt_present) { + if (applied_freq_band_list_filt.size() > 0) { j.start_array("appliedFreqBandListFilter"); for (const auto& e1 : applied_freq_band_list_filt) { e1.to_json(j); @@ -53608,13 +53824,13 @@ void rf_params_s::to_json(json_writer& j) const SRSASN_CODE rf_params_mrdc_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(supported_band_combination_list_present, 1)); - HANDLE_CODE(bref.pack(applied_freq_band_list_filt_present, 1)); + HANDLE_CODE(bref.pack(supported_band_combination_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(applied_freq_band_list_filt.size() > 0, 1)); - if (supported_band_combination_list_present) { + if (supported_band_combination_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_combination_list, 1, 65536)); } - if (applied_freq_band_list_filt_present) { + if (applied_freq_band_list_filt.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, applied_freq_band_list_filt, 1, 1280)); } @@ -53690,32 +53906,32 @@ SRSASN_CODE rf_params_mrdc_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(supported_band_combination_list_nedc_only_v15a0.is_present(), 1)); if (supported_band_combination_list_nedc_only_v15a0.is_present()) { HANDLE_CODE(bref.pack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540_present, 1)); + supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540.size() > 0, 1)); HANDLE_CODE(bref.pack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560_present, 1)); + supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560.size() > 0, 1)); HANDLE_CODE(bref.pack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570_present, 1)); + supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570.size() > 0, 1)); HANDLE_CODE(bref.pack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580_present, 1)); + supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580.size() > 0, 1)); HANDLE_CODE(bref.pack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590_present, 1)); - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540_present) { + supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590.size() > 0, 1)); + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540.size() > 0) { HANDLE_CODE(pack_dyn_seq_of( bref, supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540, 1, 65536)); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560.size() > 0) { HANDLE_CODE(pack_dyn_seq_of( bref, supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560, 1, 65536)); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570.size() > 0) { HANDLE_CODE(pack_dyn_seq_of( bref, supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570, 1, 65536)); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580.size() > 0) { HANDLE_CODE(pack_dyn_seq_of( bref, supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580, 1, 65536)); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590.size() > 0) { HANDLE_CODE(pack_dyn_seq_of( bref, supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590, 1, 65536)); } @@ -53727,7 +53943,9 @@ SRSASN_CODE rf_params_mrdc_s::pack(bit_ref& bref) const SRSASN_CODE rf_params_mrdc_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool supported_band_combination_list_present; HANDLE_CODE(bref.unpack(supported_band_combination_list_present, 1)); + bool applied_freq_band_list_filt_present; HANDLE_CODE(bref.unpack(applied_freq_band_list_filt_present, 1)); if (supported_band_combination_list_present) { @@ -53816,33 +54034,33 @@ SRSASN_CODE rf_params_mrdc_s::unpack(cbit_ref& bref) supported_band_combination_list_nedc_only_v15a0.set_present( supported_band_combination_list_nedc_only_v15a0_present); if (supported_band_combination_list_nedc_only_v15a0.is_present()) { - HANDLE_CODE(bref.unpack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540_present, 1)); - HANDLE_CODE(bref.unpack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560_present, 1)); - HANDLE_CODE(bref.unpack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570_present, 1)); - HANDLE_CODE(bref.unpack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580_present, 1)); - HANDLE_CODE(bref.unpack( - supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590_present, 1)); - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540_present) { + bool supported_band_combination_list_v1540_present; + HANDLE_CODE(bref.unpack(supported_band_combination_list_v1540_present, 1)); + bool supported_band_combination_list_v1560_present; + HANDLE_CODE(bref.unpack(supported_band_combination_list_v1560_present, 1)); + bool supported_band_combination_list_v1570_present; + HANDLE_CODE(bref.unpack(supported_band_combination_list_v1570_present, 1)); + bool supported_band_combination_list_v1580_present; + HANDLE_CODE(bref.unpack(supported_band_combination_list_v1580_present, 1)); + bool supported_band_combination_list_v1590_present; + HANDLE_CODE(bref.unpack(supported_band_combination_list_v1590_present, 1)); + if (supported_band_combination_list_v1540_present) { HANDLE_CODE(unpack_dyn_seq_of( supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540, bref, 1, 65536)); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560_present) { + if (supported_band_combination_list_v1560_present) { HANDLE_CODE(unpack_dyn_seq_of( supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560, bref, 1, 65536)); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570_present) { + if (supported_band_combination_list_v1570_present) { HANDLE_CODE(unpack_dyn_seq_of( supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570, bref, 1, 65536)); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580_present) { + if (supported_band_combination_list_v1580_present) { HANDLE_CODE(unpack_dyn_seq_of( supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580, bref, 1, 65536)); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590_present) { + if (supported_band_combination_list_v1590_present) { HANDLE_CODE(unpack_dyn_seq_of( supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590, bref, 1, 65536)); } @@ -53854,14 +54072,14 @@ SRSASN_CODE rf_params_mrdc_s::unpack(cbit_ref& bref) void rf_params_mrdc_s::to_json(json_writer& j) const { j.start_obj(); - if (supported_band_combination_list_present) { + if (supported_band_combination_list.size() > 0) { j.start_array("supportedBandCombinationList"); for (const auto& e1 : supported_band_combination_list) { e1.to_json(j); } j.end_array(); } - if (applied_freq_band_list_filt_present) { + if (applied_freq_band_list_filt.size() > 0) { j.start_array("appliedFreqBandListFilter"); for (const auto& e1 : applied_freq_band_list_filt) { e1.to_json(j); @@ -53924,35 +54142,35 @@ void rf_params_mrdc_s::to_json(json_writer& j) const if (supported_band_combination_list_nedc_only_v15a0.is_present()) { j.write_fieldname("supportedBandCombinationListNEDC-Only-v15a0"); j.start_obj(); - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540.size() > 0) { j.start_array("supportedBandCombinationList-v1540"); for (const auto& e1 : supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1540) { e1.to_json(j); } j.end_array(); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560.size() > 0) { j.start_array("supportedBandCombinationList-v1560"); for (const auto& e1 : supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1560) { e1.to_json(j); } j.end_array(); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570.size() > 0) { j.start_array("supportedBandCombinationList-v1570"); for (const auto& e1 : supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1570) { e1.to_json(j); } j.end_array(); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580.size() > 0) { j.start_array("supportedBandCombinationList-v1580"); for (const auto& e1 : supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1580) { e1.to_json(j); } j.end_array(); } - if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590_present) { + if (supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590.size() > 0) { j.start_array("supportedBandCombinationList-v1590"); for (const auto& e1 : supported_band_combination_list_nedc_only_v15a0->supported_band_combination_list_v1590) { e1.to_json(j); @@ -53997,10 +54215,10 @@ void ue_cap_request_filt_nr_v1540_s::to_json(json_writer& j) const // UE-CapabilityRequestFilterNR ::= SEQUENCE SRSASN_CODE ue_cap_request_filt_nr_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_band_list_filt_present, 1)); + HANDLE_CODE(bref.pack(freq_band_list_filt.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (freq_band_list_filt_present) { + if (freq_band_list_filt.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_list_filt, 1, 1280)); } if (non_crit_ext_present) { @@ -54011,6 +54229,7 @@ SRSASN_CODE ue_cap_request_filt_nr_s::pack(bit_ref& bref) const } SRSASN_CODE ue_cap_request_filt_nr_s::unpack(cbit_ref& bref) { + bool freq_band_list_filt_present; HANDLE_CODE(bref.unpack(freq_band_list_filt_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -54026,7 +54245,7 @@ SRSASN_CODE ue_cap_request_filt_nr_s::unpack(cbit_ref& bref) void ue_cap_request_filt_nr_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_list_filt_present) { + if (freq_band_list_filt.size() > 0) { j.start_array("frequencyBandListFilter"); for (const auto& e1 : freq_band_list_filt) { e1.to_json(j); @@ -54101,13 +54320,13 @@ void pdcp_params_mrdc_s::to_json(json_writer& j) const // UE-MRDC-Capability-v1560 ::= SEQUENCE SRSASN_CODE ue_mrdc_cap_v1560_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(rx_filts_present, 1)); + HANDLE_CODE(bref.pack(rx_filts.size() > 0, 1)); HANDLE_CODE(bref.pack(meas_and_mob_params_mrdc_v1560_present, 1)); HANDLE_CODE(bref.pack(fdd_add_ue_mrdc_cap_v1560_present, 1)); HANDLE_CODE(bref.pack(tdd_add_ue_mrdc_cap_v1560_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (rx_filts_present) { + if (rx_filts.size() > 0) { HANDLE_CODE(rx_filts.pack(bref)); } if (meas_and_mob_params_mrdc_v1560_present) { @@ -54124,6 +54343,7 @@ SRSASN_CODE ue_mrdc_cap_v1560_s::pack(bit_ref& bref) const } SRSASN_CODE ue_mrdc_cap_v1560_s::unpack(cbit_ref& bref) { + bool rx_filts_present; HANDLE_CODE(bref.unpack(rx_filts_present, 1)); HANDLE_CODE(bref.unpack(meas_and_mob_params_mrdc_v1560_present, 1)); HANDLE_CODE(bref.unpack(fdd_add_ue_mrdc_cap_v1560_present, 1)); @@ -54148,7 +54368,7 @@ SRSASN_CODE ue_mrdc_cap_v1560_s::unpack(cbit_ref& bref) void ue_mrdc_cap_v1560_s::to_json(json_writer& j) const { j.start_obj(); - if (rx_filts_present) { + if (rx_filts.size() > 0) { j.write_str("receivedFilters", rx_filts.to_string()); } if (meas_and_mob_params_mrdc_v1560_present) { @@ -54181,9 +54401,9 @@ SRSASN_CODE ue_mrdc_cap_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(tdd_add_ue_mrdc_cap_present, 1)); HANDLE_CODE(bref.pack(fr1_add_ue_mrdc_cap_present, 1)); HANDLE_CODE(bref.pack(fr2_add_ue_mrdc_cap_present, 1)); - HANDLE_CODE(bref.pack(feature_set_combinations_present, 1)); + HANDLE_CODE(bref.pack(feature_set_combinations.size() > 0, 1)); HANDLE_CODE(bref.pack(pdcp_params_mrdc_v1530_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (meas_and_mob_params_mrdc_present) { @@ -54208,7 +54428,7 @@ SRSASN_CODE ue_mrdc_cap_s::pack(bit_ref& bref) const if (fr2_add_ue_mrdc_cap_present) { HANDLE_CODE(fr2_add_ue_mrdc_cap.pack(bref)); } - if (feature_set_combinations_present) { + if (feature_set_combinations.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_set_combinations, 1, @@ -54218,7 +54438,7 @@ SRSASN_CODE ue_mrdc_cap_s::pack(bit_ref& bref) const if (pdcp_params_mrdc_v1530_present) { HANDLE_CODE(pdcp_params_mrdc_v1530.pack(bref)); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { @@ -54236,8 +54456,10 @@ SRSASN_CODE ue_mrdc_cap_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(tdd_add_ue_mrdc_cap_present, 1)); HANDLE_CODE(bref.unpack(fr1_add_ue_mrdc_cap_present, 1)); HANDLE_CODE(bref.unpack(fr2_add_ue_mrdc_cap_present, 1)); + bool feature_set_combinations_present; HANDLE_CODE(bref.unpack(feature_set_combinations_present, 1)); HANDLE_CODE(bref.unpack(pdcp_params_mrdc_v1530_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -54315,7 +54537,7 @@ void ue_mrdc_cap_s::to_json(json_writer& j) const j.write_fieldname("fr2-Add-UE-MRDC-Capabilities"); fr2_add_ue_mrdc_cap.to_json(j); } - if (feature_set_combinations_present) { + if (feature_set_combinations.size() > 0) { j.start_array("featureSetCombinations"); for (const auto& e1 : feature_set_combinations) { j.start_array(); @@ -54334,7 +54556,7 @@ void ue_mrdc_cap_s::to_json(json_writer& j) const j.write_fieldname("pdcp-ParametersMRDC-v1530"); pdcp_params_mrdc_v1530.to_json(j); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -54408,13 +54630,13 @@ void ue_nr_cap_v1570_s::to_json(json_writer& j) const SRSASN_CODE ue_nr_cap_v1560_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(nrdc_params_present, 1)); - HANDLE_CODE(bref.pack(rx_filts_present, 1)); + HANDLE_CODE(bref.pack(rx_filts.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (nrdc_params_present) { HANDLE_CODE(nrdc_params.pack(bref)); } - if (rx_filts_present) { + if (rx_filts.size() > 0) { HANDLE_CODE(rx_filts.pack(bref)); } if (non_crit_ext_present) { @@ -54426,6 +54648,7 @@ SRSASN_CODE ue_nr_cap_v1560_s::pack(bit_ref& bref) const SRSASN_CODE ue_nr_cap_v1560_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(nrdc_params_present, 1)); + bool rx_filts_present; HANDLE_CODE(bref.unpack(rx_filts_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -54448,7 +54671,7 @@ void ue_nr_cap_v1560_s::to_json(json_writer& j) const j.write_fieldname("nrdc-Parameters"); nrdc_params.to_json(j); } - if (rx_filts_present) { + if (rx_filts.size() > 0) { j.write_str("receivedFilters", rx_filts.to_string()); } if (non_crit_ext_present) { @@ -55016,8 +55239,8 @@ SRSASN_CODE ue_nr_cap_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(fr1_add_ue_nr_cap_present, 1)); HANDLE_CODE(bref.pack(fr2_add_ue_nr_cap_present, 1)); HANDLE_CODE(bref.pack(feature_sets_present, 1)); - HANDLE_CODE(bref.pack(feature_set_combinations_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(feature_set_combinations.size() > 0, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); HANDLE_CODE(access_stratum_release.pack(bref)); @@ -55048,14 +55271,14 @@ SRSASN_CODE ue_nr_cap_s::pack(bit_ref& bref) const if (feature_sets_present) { HANDLE_CODE(feature_sets.pack(bref)); } - if (feature_set_combinations_present) { + if (feature_set_combinations.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, feature_set_combinations, 1, 1024, SeqOfPacker >(1, 32, SeqOfPacker(1, 128, Packer())))); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } if (non_crit_ext_present) { @@ -55074,7 +55297,9 @@ SRSASN_CODE ue_nr_cap_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(fr1_add_ue_nr_cap_present, 1)); HANDLE_CODE(bref.unpack(fr2_add_ue_nr_cap_present, 1)); HANDLE_CODE(bref.unpack(feature_sets_present, 1)); + bool feature_set_combinations_present; HANDLE_CODE(bref.unpack(feature_set_combinations_present, 1)); + bool late_non_crit_ext_present; HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -55164,7 +55389,7 @@ void ue_nr_cap_s::to_json(json_writer& j) const j.write_fieldname("featureSets"); feature_sets.to_json(j); } - if (feature_set_combinations_present) { + if (feature_set_combinations.size() > 0) { j.start_array("featureSetCombinations"); for (const auto& e1 : feature_set_combinations) { j.start_array(); @@ -55179,7 +55404,7 @@ void ue_nr_cap_s::to_json(json_writer& j) const } j.end_array(); } - if (late_non_crit_ext_present) { + if (late_non_crit_ext.size() > 0) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { @@ -55282,25 +55507,25 @@ SRSASN_CODE as_cfg_s::pack(bit_ref& bref) const if (ext) { ext_groups_packer_guard group_flags; - group_flags[0] |= source_rb_sn_cfg_present; - group_flags[0] |= source_scg_nr_cfg_present; - group_flags[0] |= source_scg_eutra_cfg_present; + group_flags[0] |= source_rb_sn_cfg.size() > 0; + group_flags[0] |= source_scg_nr_cfg.size() > 0; + group_flags[0] |= source_scg_eutra_cfg.size() > 0; group_flags[1] |= source_scg_cfgured_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(source_rb_sn_cfg_present, 1)); - HANDLE_CODE(bref.pack(source_scg_nr_cfg_present, 1)); - HANDLE_CODE(bref.pack(source_scg_eutra_cfg_present, 1)); - if (source_rb_sn_cfg_present) { + HANDLE_CODE(bref.pack(source_rb_sn_cfg.size() > 0, 1)); + HANDLE_CODE(bref.pack(source_scg_nr_cfg.size() > 0, 1)); + HANDLE_CODE(bref.pack(source_scg_eutra_cfg.size() > 0, 1)); + if (source_rb_sn_cfg.size() > 0) { HANDLE_CODE(source_rb_sn_cfg.pack(bref)); } - if (source_scg_nr_cfg_present) { + if (source_scg_nr_cfg.size() > 0) { HANDLE_CODE(source_scg_nr_cfg.pack(bref)); } - if (source_scg_eutra_cfg_present) { + if (source_scg_eutra_cfg.size() > 0) { HANDLE_CODE(source_scg_eutra_cfg.pack(bref)); } } @@ -55324,8 +55549,11 @@ SRSASN_CODE as_cfg_s::unpack(cbit_ref& bref) if (group_flags[0]) { varlength_field_unpack_guard varlen_scope(bref, false); + bool source_rb_sn_cfg_present; HANDLE_CODE(bref.unpack(source_rb_sn_cfg_present, 1)); + bool source_scg_nr_cfg_present; HANDLE_CODE(bref.unpack(source_scg_nr_cfg_present, 1)); + bool source_scg_eutra_cfg_present; HANDLE_CODE(bref.unpack(source_scg_eutra_cfg_present, 1)); if (source_rb_sn_cfg_present) { HANDLE_CODE(source_rb_sn_cfg.unpack(bref)); @@ -55350,13 +55578,13 @@ void as_cfg_s::to_json(json_writer& j) const j.start_obj(); j.write_str("rrcReconfiguration", rrc_recfg.to_string()); if (ext) { - if (source_rb_sn_cfg_present) { + if (source_rb_sn_cfg.size() > 0) { j.write_str("sourceRB-SN-Config", source_rb_sn_cfg.to_string()); } - if (source_scg_nr_cfg_present) { + if (source_scg_nr_cfg.size() > 0) { j.write_str("sourceSCG-NR-Config", source_scg_nr_cfg.to_string()); } - if (source_scg_eutra_cfg_present) { + if (source_scg_eutra_cfg.size() > 0) { j.write_str("sourceSCG-EUTRA-Config", source_scg_eutra_cfg.to_string()); } if (source_scg_cfgured_present) { @@ -55446,13 +55674,13 @@ void band_combination_info_sn_s::to_json(json_writer& j) const SRSASN_CODE cfg_restrict_info_scg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(allowed_bc_list_mrdc_present, 1)); + HANDLE_CODE(bref.pack(allowed_bc_list_mrdc.size() > 0, 1)); HANDLE_CODE(bref.pack(pwr_coordination_fr1_present, 1)); HANDLE_CODE(bref.pack(serv_cell_idx_range_scg_present, 1)); HANDLE_CODE(bref.pack(max_meas_freqs_scg_present, 1)); HANDLE_CODE(bref.pack(dummy_present, 1)); - if (allowed_bc_list_mrdc_present) { + if (allowed_bc_list_mrdc.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, allowed_bc_list_mrdc, 1, 65536)); } if (pwr_coordination_fr1_present) { @@ -55527,6 +55755,7 @@ SRSASN_CODE cfg_restrict_info_scg_s::pack(bit_ref& bref) const SRSASN_CODE cfg_restrict_info_scg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool allowed_bc_list_mrdc_present; HANDLE_CODE(bref.unpack(allowed_bc_list_mrdc_present, 1)); HANDLE_CODE(bref.unpack(pwr_coordination_fr1_present, 1)); HANDLE_CODE(bref.unpack(serv_cell_idx_range_scg_present, 1)); @@ -55605,7 +55834,7 @@ SRSASN_CODE cfg_restrict_info_scg_s::unpack(cbit_ref& bref) void cfg_restrict_info_scg_s::to_json(json_writer& j) const { j.start_obj(); - if (allowed_bc_list_mrdc_present) { + if (allowed_bc_list_mrdc.size() > 0) { j.start_array("allowedBC-ListMRDC"); for (const auto& e1 : allowed_bc_list_mrdc) { e1.to_json(j); @@ -55670,11 +55899,11 @@ void cfg_restrict_info_scg_s::to_json(json_writer& j) const // ReestablishmentInfo ::= SEQUENCE SRSASN_CODE reest_info_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(add_reestab_info_list_present, 1)); + HANDLE_CODE(bref.pack(add_reestab_info_list.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, source_pci, (uint16_t)0u, (uint16_t)1007u)); HANDLE_CODE(target_cell_short_mac_i.pack(bref)); - if (add_reestab_info_list_present) { + if (add_reestab_info_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, add_reestab_info_list, 1, 32)); } @@ -55682,6 +55911,7 @@ SRSASN_CODE reest_info_s::pack(bit_ref& bref) const } SRSASN_CODE reest_info_s::unpack(cbit_ref& bref) { + bool add_reestab_info_list_present; HANDLE_CODE(bref.unpack(add_reestab_info_list_present, 1)); HANDLE_CODE(unpack_integer(source_pci, bref, (uint16_t)0u, (uint16_t)1007u)); @@ -55697,7 +55927,7 @@ 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) { + if (add_reestab_info_list.size() > 0) { j.start_array("additionalReestabInfoList"); for (const auto& e1 : add_reestab_info_list) { e1.to_json(j); @@ -55724,7 +55954,7 @@ SRSASN_CODE as_context_s::pack(bit_ref& bref) const if (ext) { ext_groups_packer_guard group_flags; group_flags[0] |= ran_notif_area_info.is_present(); - group_flags[1] |= ue_assist_info_present; + group_flags[1] |= ue_assist_info.size() > 0; group_flags[2] |= sel_band_combination_sn.is_present(); group_flags.pack(bref); @@ -55739,8 +55969,8 @@ SRSASN_CODE as_context_s::pack(bit_ref& bref) const if (group_flags[1]) { varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(ue_assist_info_present, 1)); - if (ue_assist_info_present) { + HANDLE_CODE(bref.pack(ue_assist_info.size() > 0, 1)); + if (ue_assist_info.size() > 0) { HANDLE_CODE(ue_assist_info.pack(bref)); } } @@ -55785,6 +56015,7 @@ SRSASN_CODE as_context_s::unpack(cbit_ref& bref) if (group_flags[1]) { varlength_field_unpack_guard varlen_scope(bref, false); + bool ue_assist_info_present; HANDLE_CODE(bref.unpack(ue_assist_info_present, 1)); if (ue_assist_info_present) { HANDLE_CODE(ue_assist_info.unpack(bref)); @@ -55819,7 +56050,7 @@ void as_context_s::to_json(json_writer& j) const j.write_fieldname("ran-NotificationAreaInfo"); ran_notif_area_info->to_json(j); } - if (ue_assist_info_present) { + if (ue_assist_info.size() > 0) { j.write_str("ueAssistanceInformation", ue_assist_info.to_string()); } if (sel_band_combination_sn.is_present()) { @@ -55885,8 +56116,8 @@ SRSASN_CODE affected_carrier_freq_comb_info_mrdc_s::pack(bit_ref& bref) const HANDLE_CODE(victim_sys_type.pack(bref)); HANDLE_CODE(interference_direction_mrdc.pack(bref)); if (affected_carrier_freq_comb_mrdc_present) { - HANDLE_CODE(bref.pack(affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra_present, 1)); - if (affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra_present) { + HANDLE_CODE(bref.pack(affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra.size() > 0, 1)); + if (affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra, 1, @@ -55909,8 +56140,9 @@ SRSASN_CODE affected_carrier_freq_comb_info_mrdc_s::unpack(cbit_ref& bref) HANDLE_CODE(victim_sys_type.unpack(bref)); HANDLE_CODE(interference_direction_mrdc.unpack(bref)); if (affected_carrier_freq_comb_mrdc_present) { - HANDLE_CODE(bref.unpack(affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra_present, 1)); - if (affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra_present) { + bool affected_carrier_freq_comb_eutra_present; + HANDLE_CODE(bref.unpack(affected_carrier_freq_comb_eutra_present, 1)); + if (affected_carrier_freq_comb_eutra_present) { HANDLE_CODE(unpack_dyn_seq_of(affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra, bref, 1, @@ -55935,7 +56167,7 @@ void affected_carrier_freq_comb_info_mrdc_s::to_json(json_writer& j) const if (affected_carrier_freq_comb_mrdc_present) { j.write_fieldname("affectedCarrierFreqCombMRDC"); j.start_obj(); - if (affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra_present) { + if (affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra.size() > 0) { j.start_array("affectedCarrierFreqCombEUTRA"); for (const auto& e1 : affected_carrier_freq_comb_mrdc.affected_carrier_freq_comb_eutra) { j.write_int(e1); @@ -55994,14 +56226,14 @@ uint8_t ph_ul_carrier_scg_s::ph_type1or3_opts::to_number() const // CG-Config-v1590-IEs ::= SEQUENCE SRSASN_CODE cg_cfg_v1590_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(scell_frequencies_sn_nr_present, 1)); - HANDLE_CODE(bref.pack(scell_frequencies_sn_eutra_present, 1)); + HANDLE_CODE(bref.pack(scell_frequencies_sn_nr.size() > 0, 1)); + HANDLE_CODE(bref.pack(scell_frequencies_sn_eutra.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (scell_frequencies_sn_nr_present) { + if (scell_frequencies_sn_nr.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, scell_frequencies_sn_nr, 1, 31, integer_packer(0, 3279165))); } - if (scell_frequencies_sn_eutra_present) { + if (scell_frequencies_sn_eutra.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, scell_frequencies_sn_eutra, 1, 31, integer_packer(0, 262143))); } @@ -56009,7 +56241,9 @@ SRSASN_CODE cg_cfg_v1590_ies_s::pack(bit_ref& bref) const } SRSASN_CODE cg_cfg_v1590_ies_s::unpack(cbit_ref& bref) { + bool scell_frequencies_sn_nr_present; HANDLE_CODE(bref.unpack(scell_frequencies_sn_nr_present, 1)); + bool scell_frequencies_sn_eutra_present; HANDLE_CODE(bref.unpack(scell_frequencies_sn_eutra_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -56025,14 +56259,14 @@ SRSASN_CODE cg_cfg_v1590_ies_s::unpack(cbit_ref& bref) void cg_cfg_v1590_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (scell_frequencies_sn_nr_present) { + if (scell_frequencies_sn_nr.size() > 0) { j.start_array("scellFrequenciesSN-NR"); for (const auto& e1 : scell_frequencies_sn_nr) { j.write_int(e1); } j.end_array(); } - if (scell_frequencies_sn_eutra_present) { + if (scell_frequencies_sn_eutra.size() > 0) { j.start_array("scellFrequenciesSN-EUTRA"); for (const auto& e1 : scell_frequencies_sn_eutra) { j.write_int(e1); @@ -56091,9 +56325,9 @@ void ph_info_scg_s::to_json(json_writer& j) const SRSASN_CODE cg_cfg_v1560_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pscell_freq_eutra_present, 1)); - HANDLE_CODE(bref.pack(scg_cell_group_cfg_eutra_present, 1)); - HANDLE_CODE(bref.pack(candidate_cell_info_list_sn_eutra_present, 1)); - HANDLE_CODE(bref.pack(candidate_serving_freq_list_eutra_present, 1)); + HANDLE_CODE(bref.pack(scg_cell_group_cfg_eutra.size() > 0, 1)); + HANDLE_CODE(bref.pack(candidate_cell_info_list_sn_eutra.size() > 0, 1)); + HANDLE_CODE(bref.pack(candidate_serving_freq_list_eutra.size() > 0, 1)); HANDLE_CODE(bref.pack(need_for_gaps_present, 1)); HANDLE_CODE(bref.pack(drx_cfg_scg_present, 1)); HANDLE_CODE(bref.pack(report_cgi_request_eutra_present, 1)); @@ -56102,13 +56336,13 @@ SRSASN_CODE cg_cfg_v1560_ies_s::pack(bit_ref& bref) const if (pscell_freq_eutra_present) { HANDLE_CODE(pack_integer(bref, pscell_freq_eutra, (uint32_t)0u, (uint32_t)262143u)); } - if (scg_cell_group_cfg_eutra_present) { + if (scg_cell_group_cfg_eutra.size() > 0) { HANDLE_CODE(scg_cell_group_cfg_eutra.pack(bref)); } - if (candidate_cell_info_list_sn_eutra_present) { + if (candidate_cell_info_list_sn_eutra.size() > 0) { HANDLE_CODE(candidate_cell_info_list_sn_eutra.pack(bref)); } - if (candidate_serving_freq_list_eutra_present) { + if (candidate_serving_freq_list_eutra.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, candidate_serving_freq_list_eutra, 1, 32, integer_packer(0, 262143))); } if (drx_cfg_scg_present) { @@ -56134,8 +56368,11 @@ SRSASN_CODE cg_cfg_v1560_ies_s::pack(bit_ref& bref) const SRSASN_CODE cg_cfg_v1560_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(pscell_freq_eutra_present, 1)); + bool scg_cell_group_cfg_eutra_present; HANDLE_CODE(bref.unpack(scg_cell_group_cfg_eutra_present, 1)); + bool candidate_cell_info_list_sn_eutra_present; HANDLE_CODE(bref.unpack(candidate_cell_info_list_sn_eutra_present, 1)); + bool candidate_serving_freq_list_eutra_present; HANDLE_CODE(bref.unpack(candidate_serving_freq_list_eutra_present, 1)); HANDLE_CODE(bref.unpack(need_for_gaps_present, 1)); HANDLE_CODE(bref.unpack(drx_cfg_scg_present, 1)); @@ -56180,13 +56417,13 @@ void cg_cfg_v1560_ies_s::to_json(json_writer& j) const if (pscell_freq_eutra_present) { j.write_int("pSCellFrequencyEUTRA", pscell_freq_eutra); } - if (scg_cell_group_cfg_eutra_present) { + if (scg_cell_group_cfg_eutra.size() > 0) { j.write_str("scg-CellGroupConfigEUTRA", scg_cell_group_cfg_eutra.to_string()); } - if (candidate_cell_info_list_sn_eutra_present) { + if (candidate_cell_info_list_sn_eutra.size() > 0) { j.write_str("candidateCellInfoListSN-EUTRA", candidate_cell_info_list_sn_eutra.to_string()); } - if (candidate_serving_freq_list_eutra_present) { + if (candidate_serving_freq_list_eutra.size() > 0) { j.start_array("candidateServingFreqListEUTRA"); for (const auto& e1 : candidate_serving_freq_list_eutra) { j.write_int(e1); @@ -56291,7 +56528,7 @@ SRSASN_CODE cg_cfg_v1540_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(pscell_freq_present, 1)); HANDLE_CODE(bref.pack(report_cgi_request_nr_present, 1)); - HANDLE_CODE(bref.pack(ph_info_scg_present, 1)); + HANDLE_CODE(bref.pack(ph_info_scg.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (pscell_freq_present) { @@ -56306,7 +56543,7 @@ SRSASN_CODE cg_cfg_v1540_ies_s::pack(bit_ref& bref) const bref, report_cgi_request_nr.requested_cell_info.cell_for_which_to_report_cgi, (uint16_t)0u, (uint16_t)1007u)); } } - if (ph_info_scg_present) { + if (ph_info_scg.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ph_info_scg, 1, 32)); } if (non_crit_ext_present) { @@ -56319,6 +56556,7 @@ SRSASN_CODE cg_cfg_v1540_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(pscell_freq_present, 1)); HANDLE_CODE(bref.unpack(report_cgi_request_nr_present, 1)); + bool ph_info_scg_present; HANDLE_CODE(bref.unpack(ph_info_scg_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -56361,7 +56599,7 @@ void cg_cfg_v1540_ies_s::to_json(json_writer& j) const } j.end_obj(); } - if (ph_info_scg_present) { + if (ph_info_scg.size() > 0) { j.start_array("ph-InfoSCG"); for (const auto& e1 : ph_info_scg) { e1.to_json(j); @@ -57001,9 +57239,9 @@ uint16_t drx_info_s::short_drx_s_::drx_short_cycle_opts::to_number() const SRSASN_CODE meas_cfg_sn_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(measured_frequencies_sn_present, 1)); + HANDLE_CODE(bref.pack(measured_frequencies_sn.size() > 0, 1)); - if (measured_frequencies_sn_present) { + if (measured_frequencies_sn.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, measured_frequencies_sn, 1, 32)); } @@ -57012,6 +57250,7 @@ SRSASN_CODE meas_cfg_sn_s::pack(bit_ref& bref) const SRSASN_CODE meas_cfg_sn_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool measured_frequencies_sn_present; HANDLE_CODE(bref.unpack(measured_frequencies_sn_present, 1)); if (measured_frequencies_sn_present) { @@ -57023,7 +57262,7 @@ SRSASN_CODE meas_cfg_sn_s::unpack(cbit_ref& bref) void meas_cfg_sn_s::to_json(json_writer& j) const { j.start_obj(); - if (measured_frequencies_sn_present) { + if (measured_frequencies_sn.size() > 0) { j.start_array("measuredFrequenciesSN"); for (const auto& e1 : measured_frequencies_sn) { e1.to_json(j); @@ -57036,21 +57275,21 @@ void meas_cfg_sn_s::to_json(json_writer& j) const // CG-Config-IEs ::= SEQUENCE SRSASN_CODE cg_cfg_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(scg_cell_group_cfg_present, 1)); - HANDLE_CODE(bref.pack(scg_rb_cfg_present, 1)); + HANDLE_CODE(bref.pack(scg_cell_group_cfg.size() > 0, 1)); + HANDLE_CODE(bref.pack(scg_rb_cfg.size() > 0, 1)); HANDLE_CODE(bref.pack(cfg_restrict_mod_req_present, 1)); HANDLE_CODE(bref.pack(drx_info_scg_present, 1)); - HANDLE_CODE(bref.pack(candidate_cell_info_list_sn_present, 1)); + HANDLE_CODE(bref.pack(candidate_cell_info_list_sn.size() > 0, 1)); HANDLE_CODE(bref.pack(meas_cfg_sn_present, 1)); HANDLE_CODE(bref.pack(sel_band_combination_present, 1)); - HANDLE_CODE(bref.pack(fr_info_list_scg_present, 1)); - HANDLE_CODE(bref.pack(candidate_serving_freq_list_nr_present, 1)); + HANDLE_CODE(bref.pack(fr_info_list_scg.size() > 0, 1)); + HANDLE_CODE(bref.pack(candidate_serving_freq_list_nr.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (scg_cell_group_cfg_present) { + if (scg_cell_group_cfg.size() > 0) { HANDLE_CODE(scg_cell_group_cfg.pack(bref)); } - if (scg_rb_cfg_present) { + if (scg_rb_cfg.size() > 0) { HANDLE_CODE(scg_rb_cfg.pack(bref)); } if (cfg_restrict_mod_req_present) { @@ -57059,7 +57298,7 @@ SRSASN_CODE cg_cfg_ies_s::pack(bit_ref& bref) const if (drx_info_scg_present) { HANDLE_CODE(drx_info_scg.pack(bref)); } - if (candidate_cell_info_list_sn_present) { + if (candidate_cell_info_list_sn.size() > 0) { HANDLE_CODE(candidate_cell_info_list_sn.pack(bref)); } if (meas_cfg_sn_present) { @@ -57068,10 +57307,10 @@ SRSASN_CODE cg_cfg_ies_s::pack(bit_ref& bref) const if (sel_band_combination_present) { HANDLE_CODE(sel_band_combination.pack(bref)); } - if (fr_info_list_scg_present) { + if (fr_info_list_scg.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, fr_info_list_scg, 1, 31)); } - if (candidate_serving_freq_list_nr_present) { + if (candidate_serving_freq_list_nr.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, candidate_serving_freq_list_nr, 1, 32, integer_packer(0, 3279165))); } if (non_crit_ext_present) { @@ -57082,14 +57321,19 @@ SRSASN_CODE cg_cfg_ies_s::pack(bit_ref& bref) const } SRSASN_CODE cg_cfg_ies_s::unpack(cbit_ref& bref) { + bool scg_cell_group_cfg_present; HANDLE_CODE(bref.unpack(scg_cell_group_cfg_present, 1)); + bool scg_rb_cfg_present; HANDLE_CODE(bref.unpack(scg_rb_cfg_present, 1)); HANDLE_CODE(bref.unpack(cfg_restrict_mod_req_present, 1)); HANDLE_CODE(bref.unpack(drx_info_scg_present, 1)); + bool candidate_cell_info_list_sn_present; HANDLE_CODE(bref.unpack(candidate_cell_info_list_sn_present, 1)); HANDLE_CODE(bref.unpack(meas_cfg_sn_present, 1)); HANDLE_CODE(bref.unpack(sel_band_combination_present, 1)); + bool fr_info_list_scg_present; HANDLE_CODE(bref.unpack(fr_info_list_scg_present, 1)); + bool candidate_serving_freq_list_nr_present; HANDLE_CODE(bref.unpack(candidate_serving_freq_list_nr_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -57129,10 +57373,10 @@ SRSASN_CODE cg_cfg_ies_s::unpack(cbit_ref& bref) void cg_cfg_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (scg_cell_group_cfg_present) { + if (scg_cell_group_cfg.size() > 0) { j.write_str("scg-CellGroupConfig", scg_cell_group_cfg.to_string()); } - if (scg_rb_cfg_present) { + if (scg_rb_cfg.size() > 0) { j.write_str("scg-RB-Config", scg_rb_cfg.to_string()); } if (cfg_restrict_mod_req_present) { @@ -57143,7 +57387,7 @@ void cg_cfg_ies_s::to_json(json_writer& j) const j.write_fieldname("drx-InfoSCG"); drx_info_scg.to_json(j); } - if (candidate_cell_info_list_sn_present) { + if (candidate_cell_info_list_sn.size() > 0) { j.write_str("candidateCellInfoListSN", candidate_cell_info_list_sn.to_string()); } if (meas_cfg_sn_present) { @@ -57154,14 +57398,14 @@ void cg_cfg_ies_s::to_json(json_writer& j) const j.write_fieldname("selectedBandCombination"); sel_band_combination.to_json(j); } - if (fr_info_list_scg_present) { + if (fr_info_list_scg.size() > 0) { j.start_array("fr-InfoListSCG"); for (const auto& e1 : fr_info_list_scg) { e1.to_json(j); } j.end_array(); } - if (candidate_serving_freq_list_nr_present) { + if (candidate_serving_freq_list_nr.size() > 0) { j.start_array("candidateServingFreqListNR"); for (const auto& e1 : candidate_serving_freq_list_nr) { j.write_int(e1); @@ -57358,10 +57602,10 @@ uint8_t cg_cfg_s::crit_exts_c_::types_opts::to_number() const // CG-ConfigInfo-v1590-IEs ::= SEQUENCE SRSASN_CODE cg_cfg_info_v1590_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(serv_frequencies_mn_nr_present, 1)); + HANDLE_CODE(bref.pack(serv_frequencies_mn_nr.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (serv_frequencies_mn_nr_present) { + if (serv_frequencies_mn_nr.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, serv_frequencies_mn_nr, 1, 31, integer_packer(0, 3279165))); } @@ -57369,6 +57613,7 @@ SRSASN_CODE cg_cfg_info_v1590_ies_s::pack(bit_ref& bref) const } SRSASN_CODE cg_cfg_info_v1590_ies_s::unpack(cbit_ref& bref) { + bool serv_frequencies_mn_nr_present; HANDLE_CODE(bref.unpack(serv_frequencies_mn_nr_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -57381,7 +57626,7 @@ SRSASN_CODE cg_cfg_info_v1590_ies_s::unpack(cbit_ref& bref) void cg_cfg_info_v1590_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (serv_frequencies_mn_nr_present) { + if (serv_frequencies_mn_nr.size() > 0) { j.start_array("servFrequenciesMN-NR"); for (const auto& e1 : serv_frequencies_mn_nr) { j.write_int(e1); @@ -57432,14 +57677,14 @@ uint8_t ph_ul_carrier_mcg_s::ph_type1or3_opts::to_number() const // CG-ConfigInfo-v1570-IEs ::= SEQUENCE SRSASN_CODE cg_cfg_info_v1570_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(sftd_freq_list_nr_present, 1)); - HANDLE_CODE(bref.pack(sftd_freq_list_eutra_present, 1)); + HANDLE_CODE(bref.pack(sftd_freq_list_nr.size() > 0, 1)); + HANDLE_CODE(bref.pack(sftd_freq_list_eutra.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (sftd_freq_list_nr_present) { + if (sftd_freq_list_nr.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sftd_freq_list_nr, 1, 3, integer_packer(0, 3279165))); } - if (sftd_freq_list_eutra_present) { + if (sftd_freq_list_eutra.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, sftd_freq_list_eutra, 1, 3, integer_packer(0, 262143))); } if (non_crit_ext_present) { @@ -57450,7 +57695,9 @@ SRSASN_CODE cg_cfg_info_v1570_ies_s::pack(bit_ref& bref) const } SRSASN_CODE cg_cfg_info_v1570_ies_s::unpack(cbit_ref& bref) { + bool sftd_freq_list_nr_present; HANDLE_CODE(bref.unpack(sftd_freq_list_nr_present, 1)); + bool sftd_freq_list_eutra_present; HANDLE_CODE(bref.unpack(sftd_freq_list_eutra_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -57469,14 +57716,14 @@ SRSASN_CODE cg_cfg_info_v1570_ies_s::unpack(cbit_ref& bref) void cg_cfg_info_v1570_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (sftd_freq_list_nr_present) { + if (sftd_freq_list_nr.size() > 0) { j.start_array("sftdFrequencyList-NR"); for (const auto& e1 : sftd_freq_list_nr) { j.write_int(e1); } j.end_array(); } - if (sftd_freq_list_eutra_present) { + if (sftd_freq_list_eutra.size() > 0) { j.start_array("sftdFrequencyList-EUTRA"); for (const auto& e1 : sftd_freq_list_eutra) { j.write_int(e1); @@ -57533,23 +57780,23 @@ void ph_info_mcg_s::to_json(json_writer& j) const // CG-ConfigInfo-v1560-IEs ::= SEQUENCE SRSASN_CODE cg_cfg_info_v1560_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(candidate_cell_info_list_mn_eutra_present, 1)); - HANDLE_CODE(bref.pack(candidate_cell_info_list_sn_eutra_present, 1)); - HANDLE_CODE(bref.pack(source_cfg_scg_eutra_present, 1)); + HANDLE_CODE(bref.pack(candidate_cell_info_list_mn_eutra.size() > 0, 1)); + HANDLE_CODE(bref.pack(candidate_cell_info_list_sn_eutra.size() > 0, 1)); + HANDLE_CODE(bref.pack(source_cfg_scg_eutra.size() > 0, 1)); HANDLE_CODE(bref.pack(scg_fail_info_eutra_present, 1)); HANDLE_CODE(bref.pack(drx_cfg_mcg_present, 1)); HANDLE_CODE(bref.pack(meas_result_report_cgi_eutra_present, 1)); - HANDLE_CODE(bref.pack(meas_result_cell_list_sftd_eutra_present, 1)); - HANDLE_CODE(bref.pack(fr_info_list_mcg_present, 1)); + HANDLE_CODE(bref.pack(meas_result_cell_list_sftd_eutra.size() > 0, 1)); + HANDLE_CODE(bref.pack(fr_info_list_mcg.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (candidate_cell_info_list_mn_eutra_present) { + if (candidate_cell_info_list_mn_eutra.size() > 0) { HANDLE_CODE(candidate_cell_info_list_mn_eutra.pack(bref)); } - if (candidate_cell_info_list_sn_eutra_present) { + if (candidate_cell_info_list_sn_eutra.size() > 0) { HANDLE_CODE(candidate_cell_info_list_sn_eutra.pack(bref)); } - if (source_cfg_scg_eutra_present) { + if (source_cfg_scg_eutra.size() > 0) { HANDLE_CODE(source_cfg_scg_eutra.pack(bref)); } if (scg_fail_info_eutra_present) { @@ -57565,10 +57812,10 @@ SRSASN_CODE cg_cfg_info_v1560_ies_s::pack(bit_ref& bref) const bref, meas_result_report_cgi_eutra.cell_for_which_to_report_cgi_eutra, (uint16_t)0u, (uint16_t)503u)); HANDLE_CODE(meas_result_report_cgi_eutra.cgi_info_eutra.pack(bref)); } - if (meas_result_cell_list_sftd_eutra_present) { + if (meas_result_cell_list_sftd_eutra.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_cell_list_sftd_eutra, 1, 3)); } - if (fr_info_list_mcg_present) { + if (fr_info_list_mcg.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, fr_info_list_mcg, 1, 31)); } if (non_crit_ext_present) { @@ -57579,13 +57826,18 @@ SRSASN_CODE cg_cfg_info_v1560_ies_s::pack(bit_ref& bref) const } SRSASN_CODE cg_cfg_info_v1560_ies_s::unpack(cbit_ref& bref) { + bool candidate_cell_info_list_mn_eutra_present; HANDLE_CODE(bref.unpack(candidate_cell_info_list_mn_eutra_present, 1)); + bool candidate_cell_info_list_sn_eutra_present; HANDLE_CODE(bref.unpack(candidate_cell_info_list_sn_eutra_present, 1)); + bool source_cfg_scg_eutra_present; HANDLE_CODE(bref.unpack(source_cfg_scg_eutra_present, 1)); HANDLE_CODE(bref.unpack(scg_fail_info_eutra_present, 1)); HANDLE_CODE(bref.unpack(drx_cfg_mcg_present, 1)); HANDLE_CODE(bref.unpack(meas_result_report_cgi_eutra_present, 1)); + bool meas_result_cell_list_sftd_eutra_present; HANDLE_CODE(bref.unpack(meas_result_cell_list_sftd_eutra_present, 1)); + bool fr_info_list_mcg_present; HANDLE_CODE(bref.unpack(fr_info_list_mcg_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -57626,13 +57878,13 @@ SRSASN_CODE cg_cfg_info_v1560_ies_s::unpack(cbit_ref& bref) void cg_cfg_info_v1560_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (candidate_cell_info_list_mn_eutra_present) { + if (candidate_cell_info_list_mn_eutra.size() > 0) { j.write_str("candidateCellInfoListMN-EUTRA", candidate_cell_info_list_mn_eutra.to_string()); } - if (candidate_cell_info_list_sn_eutra_present) { + if (candidate_cell_info_list_sn_eutra.size() > 0) { j.write_str("candidateCellInfoListSN-EUTRA", candidate_cell_info_list_sn_eutra.to_string()); } - if (source_cfg_scg_eutra_present) { + if (source_cfg_scg_eutra.size() > 0) { j.write_str("sourceConfigSCG-EUTRA", source_cfg_scg_eutra.to_string()); } if (scg_fail_info_eutra_present) { @@ -57655,14 +57907,14 @@ void cg_cfg_info_v1560_ies_s::to_json(json_writer& j) const meas_result_report_cgi_eutra.cgi_info_eutra.to_json(j); j.end_obj(); } - if (meas_result_cell_list_sftd_eutra_present) { + if (meas_result_cell_list_sftd_eutra.size() > 0) { j.start_array("measResultCellListSFTD-EUTRA"); for (const auto& e1 : meas_result_cell_list_sftd_eutra) { e1.to_json(j); } j.end_array(); } - if (fr_info_list_mcg_present) { + if (fr_info_list_mcg.size() > 0) { j.start_array("fr-InfoListMCG"); for (const auto& e1 : fr_info_list_mcg) { e1.to_json(j); @@ -57690,11 +57942,11 @@ uint16_t cg_cfg_info_v1560_ies_s::scg_fail_info_eutra_s_::fail_type_eutra_opts:: // CG-ConfigInfo-v1540-IEs ::= SEQUENCE SRSASN_CODE cg_cfg_info_v1540_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ph_info_mcg_present, 1)); + HANDLE_CODE(bref.pack(ph_info_mcg.size() > 0, 1)); HANDLE_CODE(bref.pack(meas_result_report_cgi_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (ph_info_mcg_present) { + if (ph_info_mcg.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, ph_info_mcg, 1, 32)); } if (meas_result_report_cgi_present) { @@ -57710,6 +57962,7 @@ SRSASN_CODE cg_cfg_info_v1540_ies_s::pack(bit_ref& bref) const } SRSASN_CODE cg_cfg_info_v1540_ies_s::unpack(cbit_ref& bref) { + bool ph_info_mcg_present; HANDLE_CODE(bref.unpack(ph_info_mcg_present, 1)); HANDLE_CODE(bref.unpack(meas_result_report_cgi_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -57732,7 +57985,7 @@ SRSASN_CODE cg_cfg_info_v1540_ies_s::unpack(cbit_ref& bref) void cg_cfg_info_v1540_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (ph_info_mcg_present) { + if (ph_info_mcg.size() > 0) { j.start_array("ph-InfoMCG"); for (const auto& e1 : ph_info_mcg) { e1.to_json(j); @@ -57785,11 +58038,11 @@ void mrdc_assist_info_s::to_json(json_writer& j) const SRSASN_CODE meas_cfg_mn_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(measured_frequencies_mn_present, 1)); + HANDLE_CODE(bref.pack(measured_frequencies_mn.size() > 0, 1)); HANDLE_CODE(bref.pack(meas_gap_cfg_present, 1)); HANDLE_CODE(bref.pack(gap_purpose_present, 1)); - if (measured_frequencies_mn_present) { + if (measured_frequencies_mn.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, measured_frequencies_mn, 1, 32)); } if (meas_gap_cfg_present) { @@ -57818,6 +58071,7 @@ SRSASN_CODE meas_cfg_mn_s::pack(bit_ref& bref) const SRSASN_CODE meas_cfg_mn_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + bool measured_frequencies_mn_present; HANDLE_CODE(bref.unpack(measured_frequencies_mn_present, 1)); HANDLE_CODE(bref.unpack(meas_gap_cfg_present, 1)); HANDLE_CODE(bref.unpack(gap_purpose_present, 1)); @@ -57852,7 +58106,7 @@ SRSASN_CODE meas_cfg_mn_s::unpack(cbit_ref& bref) void meas_cfg_mn_s::to_json(json_writer& j) const { j.start_obj(); - if (measured_frequencies_mn_present) { + if (measured_frequencies_mn.size() > 0) { j.start_array("measuredFrequenciesMN"); for (const auto& e1 : measured_frequencies_mn) { e1.to_json(j); @@ -57892,30 +58146,30 @@ uint8_t meas_cfg_mn_s::gap_purpose_opts::to_number() const // CG-ConfigInfo-IEs ::= SEQUENCE SRSASN_CODE cg_cfg_info_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ue_cap_info_present, 1)); - HANDLE_CODE(bref.pack(candidate_cell_info_list_mn_present, 1)); - HANDLE_CODE(bref.pack(candidate_cell_info_list_sn_present, 1)); - HANDLE_CODE(bref.pack(meas_result_cell_list_sftd_nr_present, 1)); + HANDLE_CODE(bref.pack(ue_cap_info.size() > 0, 1)); + HANDLE_CODE(bref.pack(candidate_cell_info_list_mn.size() > 0, 1)); + HANDLE_CODE(bref.pack(candidate_cell_info_list_sn.size() > 0, 1)); + HANDLE_CODE(bref.pack(meas_result_cell_list_sftd_nr.size() > 0, 1)); HANDLE_CODE(bref.pack(scg_fail_info_present, 1)); HANDLE_CODE(bref.pack(cfg_restrict_info_present, 1)); HANDLE_CODE(bref.pack(drx_info_mcg_present, 1)); HANDLE_CODE(bref.pack(meas_cfg_mn_present, 1)); - HANDLE_CODE(bref.pack(source_cfg_scg_present, 1)); - HANDLE_CODE(bref.pack(scg_rb_cfg_present, 1)); - HANDLE_CODE(bref.pack(mcg_rb_cfg_present, 1)); + HANDLE_CODE(bref.pack(source_cfg_scg.size() > 0, 1)); + HANDLE_CODE(bref.pack(scg_rb_cfg.size() > 0, 1)); + HANDLE_CODE(bref.pack(mcg_rb_cfg.size() > 0, 1)); HANDLE_CODE(bref.pack(mrdc_assist_info_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (ue_cap_info_present) { + if (ue_cap_info.size() > 0) { HANDLE_CODE(ue_cap_info.pack(bref)); } - if (candidate_cell_info_list_mn_present) { + if (candidate_cell_info_list_mn.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, candidate_cell_info_list_mn, 1, 8)); } - if (candidate_cell_info_list_sn_present) { + if (candidate_cell_info_list_sn.size() > 0) { HANDLE_CODE(candidate_cell_info_list_sn.pack(bref)); } - if (meas_result_cell_list_sftd_nr_present) { + if (meas_result_cell_list_sftd_nr.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_cell_list_sftd_nr, 1, 3)); } if (scg_fail_info_present) { @@ -57931,13 +58185,13 @@ SRSASN_CODE cg_cfg_info_ies_s::pack(bit_ref& bref) const if (meas_cfg_mn_present) { HANDLE_CODE(meas_cfg_mn.pack(bref)); } - if (source_cfg_scg_present) { + if (source_cfg_scg.size() > 0) { HANDLE_CODE(source_cfg_scg.pack(bref)); } - if (scg_rb_cfg_present) { + if (scg_rb_cfg.size() > 0) { HANDLE_CODE(scg_rb_cfg.pack(bref)); } - if (mcg_rb_cfg_present) { + if (mcg_rb_cfg.size() > 0) { HANDLE_CODE(mcg_rb_cfg.pack(bref)); } if (mrdc_assist_info_present) { @@ -57951,16 +58205,23 @@ SRSASN_CODE cg_cfg_info_ies_s::pack(bit_ref& bref) const } SRSASN_CODE cg_cfg_info_ies_s::unpack(cbit_ref& bref) { + bool ue_cap_info_present; HANDLE_CODE(bref.unpack(ue_cap_info_present, 1)); + bool candidate_cell_info_list_mn_present; HANDLE_CODE(bref.unpack(candidate_cell_info_list_mn_present, 1)); + bool candidate_cell_info_list_sn_present; HANDLE_CODE(bref.unpack(candidate_cell_info_list_sn_present, 1)); + bool meas_result_cell_list_sftd_nr_present; HANDLE_CODE(bref.unpack(meas_result_cell_list_sftd_nr_present, 1)); HANDLE_CODE(bref.unpack(scg_fail_info_present, 1)); HANDLE_CODE(bref.unpack(cfg_restrict_info_present, 1)); HANDLE_CODE(bref.unpack(drx_info_mcg_present, 1)); HANDLE_CODE(bref.unpack(meas_cfg_mn_present, 1)); + bool source_cfg_scg_present; HANDLE_CODE(bref.unpack(source_cfg_scg_present, 1)); + bool scg_rb_cfg_present; HANDLE_CODE(bref.unpack(scg_rb_cfg_present, 1)); + bool mcg_rb_cfg_present; HANDLE_CODE(bref.unpack(mcg_rb_cfg_present, 1)); HANDLE_CODE(bref.unpack(mrdc_assist_info_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -58011,20 +58272,20 @@ SRSASN_CODE cg_cfg_info_ies_s::unpack(cbit_ref& bref) void cg_cfg_info_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (ue_cap_info_present) { + if (ue_cap_info.size() > 0) { j.write_str("ue-CapabilityInfo", ue_cap_info.to_string()); } - if (candidate_cell_info_list_mn_present) { + if (candidate_cell_info_list_mn.size() > 0) { j.start_array("candidateCellInfoListMN"); for (const auto& e1 : candidate_cell_info_list_mn) { e1.to_json(j); } j.end_array(); } - if (candidate_cell_info_list_sn_present) { + if (candidate_cell_info_list_sn.size() > 0) { j.write_str("candidateCellInfoListSN", candidate_cell_info_list_sn.to_string()); } - if (meas_result_cell_list_sftd_nr_present) { + if (meas_result_cell_list_sftd_nr.size() > 0) { j.start_array("measResultCellListSFTD-NR"); for (const auto& e1 : meas_result_cell_list_sftd_nr) { e1.to_json(j); @@ -58050,13 +58311,13 @@ void cg_cfg_info_ies_s::to_json(json_writer& j) const j.write_fieldname("measConfigMN"); meas_cfg_mn.to_json(j); } - if (source_cfg_scg_present) { + if (source_cfg_scg.size() > 0) { j.write_str("sourceConfigSCG", source_cfg_scg.to_string()); } - if (scg_rb_cfg_present) { + if (scg_rb_cfg.size() > 0) { j.write_str("scg-RB-Config", scg_rb_cfg.to_string()); } - if (mcg_rb_cfg_present) { + if (mcg_rb_cfg.size() > 0) { j.write_str("mcg-RB-Config", mcg_rb_cfg.to_string()); } if (mrdc_assist_info_present) { @@ -58596,12 +58857,12 @@ SRSASN_CODE rrm_cfg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ue_inactive_time_present, 1)); - HANDLE_CODE(bref.pack(candidate_cell_info_list_present, 1)); + HANDLE_CODE(bref.pack(candidate_cell_info_list.size() > 0, 1)); if (ue_inactive_time_present) { HANDLE_CODE(ue_inactive_time.pack(bref)); } - if (candidate_cell_info_list_present) { + if (candidate_cell_info_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, candidate_cell_info_list, 1, 8)); } @@ -58625,6 +58886,7 @@ SRSASN_CODE rrm_cfg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ue_inactive_time_present, 1)); + bool candidate_cell_info_list_present; HANDLE_CODE(bref.unpack(candidate_cell_info_list_present, 1)); if (ue_inactive_time_present) { @@ -58657,7 +58919,7 @@ void rrm_cfg_s::to_json(json_writer& j) const if (ue_inactive_time_present) { j.write_str("ue-InactiveTime", ue_inactive_time.to_string()); } - if (candidate_cell_info_list_present) { + if (candidate_cell_info_list.size() > 0) { j.start_array("candidateCellInfoList"); for (const auto& e1 : candidate_cell_info_list) { e1.to_json(j); @@ -59074,10 +59336,10 @@ void meas_timing_cfg_v1550_ies_s::to_json(json_writer& j) const // MeasurementTimingConfiguration-IEs ::= SEQUENCE SRSASN_CODE meas_timing_cfg_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(meas_timing_present, 1)); + HANDLE_CODE(bref.pack(meas_timing.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (meas_timing_present) { + if (meas_timing.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_timing, 1, 32)); } if (non_crit_ext_present) { @@ -59088,6 +59350,7 @@ SRSASN_CODE meas_timing_cfg_ies_s::pack(bit_ref& bref) const } SRSASN_CODE meas_timing_cfg_ies_s::unpack(cbit_ref& bref) { + bool meas_timing_present; HANDLE_CODE(bref.unpack(meas_timing_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -59103,7 +59366,7 @@ SRSASN_CODE meas_timing_cfg_ies_s::unpack(cbit_ref& bref) void meas_timing_cfg_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (meas_timing_present) { + if (meas_timing.size() > 0) { j.start_array("measTiming"); for (const auto& e1 : meas_timing) { e1.to_json(j); @@ -59550,10 +59813,10 @@ uint8_t ue_radio_access_cap_info_s::crit_exts_c_::types_opts::to_number() const // UERadioPagingInformation-IEs ::= SEQUENCE SRSASN_CODE ue_radio_paging_info_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(supported_band_list_nr_for_paging_present, 1)); + HANDLE_CODE(bref.pack(supported_band_list_nr_for_paging.size() > 0, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (supported_band_list_nr_for_paging_present) { + if (supported_band_list_nr_for_paging.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_nr_for_paging, 1, 1024, integer_packer(1, 1024))); } @@ -59561,6 +59824,7 @@ SRSASN_CODE ue_radio_paging_info_ies_s::pack(bit_ref& bref) const } SRSASN_CODE ue_radio_paging_info_ies_s::unpack(cbit_ref& bref) { + bool supported_band_list_nr_for_paging_present; HANDLE_CODE(bref.unpack(supported_band_list_nr_for_paging_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -59573,7 +59837,7 @@ SRSASN_CODE ue_radio_paging_info_ies_s::unpack(cbit_ref& bref) void ue_radio_paging_info_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (supported_band_list_nr_for_paging_present) { + if (supported_band_list_nr_for_paging.size() > 0) { j.start_array("supportedBandListNRForPaging"); for (const auto& e1 : supported_band_list_nr_for_paging) { j.write_int(e1); @@ -59812,19 +60076,19 @@ uint8_t ue_radio_paging_info_s::crit_exts_c_::types_opts::to_number() const // 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_obj_list_present, 1)); - HANDLE_CODE(bref.pack(report_cfg_list_present, 1)); + HANDLE_CODE(bref.pack(meas_id_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(meas_obj_list.size() > 0, 1)); + HANDLE_CODE(bref.pack(report_cfg_list.size() > 0, 1)); HANDLE_CODE(bref.pack(quant_cfg_present, 1)); HANDLE_CODE(bref.pack(s_measure_cfg_present, 1)); - if (meas_id_list_present) { + if (meas_id_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_id_list, 1, 64)); } - if (meas_obj_list_present) { + if (meas_obj_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, meas_obj_list, 1, 64)); } - if (report_cfg_list_present) { + if (report_cfg_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, report_cfg_list, 1, 64)); } if (quant_cfg_present) { @@ -59838,8 +60102,11 @@ SRSASN_CODE var_meas_cfg_s::pack(bit_ref& bref) const } SRSASN_CODE var_meas_cfg_s::unpack(cbit_ref& bref) { + bool meas_id_list_present; HANDLE_CODE(bref.unpack(meas_id_list_present, 1)); + bool meas_obj_list_present; HANDLE_CODE(bref.unpack(meas_obj_list_present, 1)); + bool report_cfg_list_present; HANDLE_CODE(bref.unpack(report_cfg_list_present, 1)); HANDLE_CODE(bref.unpack(quant_cfg_present, 1)); HANDLE_CODE(bref.unpack(s_measure_cfg_present, 1)); @@ -59865,21 +60132,21 @@ SRSASN_CODE var_meas_cfg_s::unpack(cbit_ref& bref) void var_meas_cfg_s::to_json(json_writer& j) const { j.start_obj(); - if (meas_id_list_present) { + if (meas_id_list.size() > 0) { j.start_array("measIdList"); for (const auto& e1 : meas_id_list) { e1.to_json(j); } j.end_array(); } - if (meas_obj_list_present) { + if (meas_obj_list.size() > 0) { j.start_array("measObjectList"); for (const auto& e1 : meas_obj_list) { e1.to_json(j); } j.end_array(); } - if (report_cfg_list_present) { + if (report_cfg_list.size() > 0) { j.start_array("reportConfigList"); for (const auto& e1 : report_cfg_list) { e1.to_json(j); @@ -60010,10 +60277,10 @@ const char* var_meas_cfg_s::s_measure_cfg_c_::types_opts::to_string() const // VarMeasReport ::= SEQUENCE SRSASN_CODE var_meas_report_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(cells_triggered_list_present, 1)); + HANDLE_CODE(bref.pack(cells_triggered_list.size() > 0, 1)); HANDLE_CODE(pack_integer(bref, meas_id, (uint8_t)1u, (uint8_t)64u)); - if (cells_triggered_list_present) { + if (cells_triggered_list.size() > 0) { HANDLE_CODE(pack_dyn_seq_of(bref, cells_triggered_list, 1, 32)); } HANDLE_CODE(pack_unconstrained_integer(bref, nof_reports_sent)); @@ -60022,6 +60289,7 @@ SRSASN_CODE var_meas_report_s::pack(bit_ref& bref) const } SRSASN_CODE var_meas_report_s::unpack(cbit_ref& bref) { + bool cells_triggered_list_present; HANDLE_CODE(bref.unpack(cells_triggered_list_present, 1)); HANDLE_CODE(unpack_integer(meas_id, bref, (uint8_t)1u, (uint8_t)64u)); @@ -60036,7 +60304,7 @@ void var_meas_report_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("measId", meas_id); - if (cells_triggered_list_present) { + if (cells_triggered_list.size() > 0) { j.start_array("cellsTriggeredList"); for (const auto& e1 : cells_triggered_list) { e1.to_json(j); diff --git a/lib/src/asn1/rrc_nr_utils.cc b/lib/src/asn1/rrc_nr_utils.cc index 00abac0ad..41591cea4 100644 --- a/lib/src/asn1/rrc_nr_utils.cc +++ b/lib/src/asn1/rrc_nr_utils.cc @@ -1534,17 +1534,15 @@ bool make_pdsch_cfg_from_serv_cell(const asn1::rrc_nr::serving_cell_cfg_s& serv_ auto& setup = serv_cell.csi_meas_cfg.setup(); // Configure NZP-CSI - if (setup.nzp_csi_rs_res_set_to_add_mod_list_present) { - for (auto& nzp_set : setup.nzp_csi_rs_res_set_to_add_mod_list) { - auto& uecfg_set = sch_hl->nzp_csi_rs_sets[nzp_set.nzp_csi_res_set_id]; - uecfg_set.trs_info = nzp_set.trs_info_present; - uecfg_set.count = nzp_set.nzp_csi_rs_res.size(); - uint32_t count = 0; - for (uint8_t nzp_rs_idx : nzp_set.nzp_csi_rs_res) { - auto& res = uecfg_set.data[count++]; - if (not srsran::make_phy_nzp_csi_rs_resource(setup.nzp_csi_rs_res_to_add_mod_list[nzp_rs_idx], &res)) { - return false; - } + for (auto& nzp_set : setup.nzp_csi_rs_res_set_to_add_mod_list) { + auto& uecfg_set = sch_hl->nzp_csi_rs_sets[nzp_set.nzp_csi_res_set_id]; + uecfg_set.trs_info = nzp_set.trs_info_present; + uecfg_set.count = nzp_set.nzp_csi_rs_res.size(); + uint32_t count = 0; + for (uint8_t nzp_rs_idx : nzp_set.nzp_csi_rs_res) { + auto& res = uecfg_set.data[count++]; + if (not srsran::make_phy_nzp_csi_rs_resource(setup.nzp_csi_rs_res_to_add_mod_list[nzp_rs_idx], &res)) { + return false; } } } @@ -1574,12 +1572,10 @@ bool make_csi_cfg_from_serv_cell(const asn1::rrc_nr::serving_cell_cfg_s& serv_ce auto& setup = serv_cell.csi_meas_cfg.setup(); // Configure CSI-Report - if (setup.csi_report_cfg_to_add_mod_list_present) { - for (uint32_t i = 0; i < setup.csi_report_cfg_to_add_mod_list.size(); ++i) { - const auto& csi_rep = setup.csi_report_cfg_to_add_mod_list[i]; - if (not make_phy_csi_report(csi_rep, &csi_hl->reports[i])) { - return false; - } + for (uint32_t i = 0; i < setup.csi_report_cfg_to_add_mod_list.size(); ++i) { + const auto& csi_rep = setup.csi_report_cfg_to_add_mod_list[i]; + if (not make_phy_csi_report(csi_rep, &csi_hl->reports[i])) { + return false; } } } @@ -1601,18 +1597,14 @@ bool make_duplex_cfg_from_serv_cell(const asn1::rrc_nr::serving_cell_cfg_common_ bool fill_phy_pdcch_cfg(const asn1::rrc_nr::pdcch_cfg_s& pdcch_cfg, srsran_pdcch_cfg_nr_t* pdcch) { - if (pdcch_cfg.ctrl_res_set_to_add_mod_list_present) { - for (const ctrl_res_set_s& coreset : pdcch_cfg.ctrl_res_set_to_add_mod_list) { - pdcch->coreset_present[coreset.ctrl_res_set_id] = true; - make_phy_coreset_cfg(coreset, &pdcch->coreset[coreset.ctrl_res_set_id]); - } + for (const ctrl_res_set_s& coreset : pdcch_cfg.ctrl_res_set_to_add_mod_list) { + pdcch->coreset_present[coreset.ctrl_res_set_id] = true; + make_phy_coreset_cfg(coreset, &pdcch->coreset[coreset.ctrl_res_set_id]); } - if (pdcch_cfg.search_spaces_to_add_mod_list_present) { - for (const search_space_s& ss : pdcch_cfg.search_spaces_to_add_mod_list) { - pdcch->search_space_present[ss.search_space_id] = true; - make_phy_search_space_cfg(ss, &pdcch->search_space[ss.search_space_id]); - } + for (const search_space_s& ss : pdcch_cfg.search_spaces_to_add_mod_list) { + pdcch->search_space_present[ss.search_space_id] = true; + make_phy_search_space_cfg(ss, &pdcch->search_space[ss.search_space_id]); } return true; } @@ -1623,14 +1615,12 @@ void fill_phy_pdcch_cfg_common(const asn1::rrc_nr::pdcch_cfg_common_s& pdcch_cfg pdcch->coreset_present[pdcch_cfg.common_ctrl_res_set.ctrl_res_set_id] = true; make_phy_coreset_cfg(pdcch_cfg.common_ctrl_res_set, &pdcch->coreset[pdcch_cfg.common_ctrl_res_set.ctrl_res_set_id]); } - if (pdcch_cfg.common_search_space_list_present) { - for (const search_space_s& ss : pdcch_cfg.common_search_space_list) { - pdcch->search_space_present[ss.search_space_id] = true; - make_phy_search_space_cfg(ss, &pdcch->search_space[ss.search_space_id]); - if (pdcch_cfg.ra_search_space_present and pdcch_cfg.ra_search_space == ss.search_space_id) { - pdcch->ra_search_space_present = true; - pdcch->ra_search_space = pdcch->search_space[ss.search_space_id]; - } + for (const search_space_s& ss : pdcch_cfg.common_search_space_list) { + pdcch->search_space_present[ss.search_space_id] = true; + make_phy_search_space_cfg(ss, &pdcch->search_space[ss.search_space_id]); + if (pdcch_cfg.ra_search_space_present and pdcch_cfg.ra_search_space == ss.search_space_id) { + pdcch->ra_search_space_present = true; + pdcch->ra_search_space = pdcch->search_space[ss.search_space_id]; } } } diff --git a/lib/test/asn1/rrc_nr_utils_test.cc b/lib/test/asn1/rrc_nr_utils_test.cc index cac860662..8404ad019 100644 --- a/lib/test/asn1/rrc_nr_utils_test.cc +++ b/lib/test/asn1/rrc_nr_utils_test.cc @@ -678,8 +678,7 @@ int fill_phy_pdsch_cfg_common_test() // "startSymbolAndLength": 40 // ] - asn1::rrc_nr::pdsch_cfg_common_s pdsch_cfg = {}; - pdsch_cfg.pdsch_time_domain_alloc_list_present = true; + asn1::rrc_nr::pdsch_cfg_common_s pdsch_cfg = {}; pdsch_cfg.pdsch_time_domain_alloc_list.resize(1); pdsch_cfg.pdsch_time_domain_alloc_list[0].map_type = asn1::rrc_nr::pdsch_time_domain_res_alloc_s::map_type_opts::options::type_a; @@ -734,8 +733,7 @@ int fill_phy_pusch_cfg_common_test() // ], // "p0-NominalWithGrant": -76 - asn1::rrc_nr::pusch_cfg_common_s pusch_cfg = {}; - pusch_cfg.pusch_time_domain_alloc_list_present = true; + asn1::rrc_nr::pusch_cfg_common_s pusch_cfg = {}; pusch_cfg.pusch_time_domain_alloc_list.resize(1); pusch_cfg.pusch_time_domain_alloc_list[0].map_type = asn1::rrc_nr::pusch_time_domain_res_alloc_s::map_type_opts::options::type_a; @@ -794,7 +792,6 @@ int fill_phy_carrier_cfg_test() asn1::rrc_nr::subcarrier_spacing_opts::options::khz15; serv_cell_cfg.dl_cfg_common.freq_info_dl.scs_specific_carrier_list[0].carrier_bw = 52; - serv_cell_cfg.ul_cfg_common.freq_info_ul.freq_band_list_present = true; serv_cell_cfg.ul_cfg_common.freq_info_ul.freq_band_list.resize(1); serv_cell_cfg.ul_cfg_common.freq_info_ul.freq_band_list[0].freq_band_ind_nr_present = true; serv_cell_cfg.ul_cfg_common.freq_info_ul.freq_band_list[0].freq_band_ind_nr = 3; diff --git a/lib/test/asn1/srsran_asn1_rrc_nr_test.cc b/lib/test/asn1/srsran_asn1_rrc_nr_test.cc index 99e148606..ac7c635b5 100644 --- a/lib/test/asn1/srsran_asn1_rrc_nr_test.cc +++ b/lib/test/asn1/srsran_asn1_rrc_nr_test.cc @@ -66,7 +66,6 @@ int test_eutra_nr_capabilities() band_combination.band_list.push_back(band_param_nr); mrdc_cap.rf_params_mrdc.supported_band_combination_list.push_back(band_combination); - mrdc_cap.rf_params_mrdc.supported_band_combination_list_present = true; mrdc_cap.rf_params_mrdc.ext = true; @@ -83,8 +82,6 @@ int test_eutra_nr_capabilities() band_info_nr.band_info_nr().band_nr = 78; mrdc_cap.rf_params_mrdc.applied_freq_band_list_filt.push_back(band_info_nr); - mrdc_cap.rf_params_mrdc.applied_freq_band_list_filt_present = true; - // rf_params_mrdc supported band combination list v1540 band_combination_list_v1540_l* band_combination_list_v1450 = new band_combination_list_v1540_l(); @@ -137,8 +134,6 @@ int test_eutra_nr_capabilities() mrdc_cap.feature_set_combinations.push_back(feature_set_combination); - mrdc_cap.feature_set_combinations_present = true; - // Pack mrdc_cap uint8_t buffer[1024]; asn1::bit_ref bref(buffer, sizeof(buffer)); @@ -209,7 +204,7 @@ int test_ue_rrc_reconfiguration() #endif TESTASSERT(rrc_recfg.crit_exts.type() == asn1::rrc_nr::rrc_recfg_s::crit_exts_c_::types::rrc_recfg); - TESTASSERT(rrc_recfg.crit_exts.rrc_recfg().secondary_cell_group_present == true); + TESTASSERT(rrc_recfg.crit_exts.rrc_recfg().secondary_cell_group.size() > 0); cell_group_cfg_s cell_group_cfg; cbit_ref bref0(rrc_recfg.crit_exts.rrc_recfg().secondary_cell_group.data(), @@ -221,7 +216,6 @@ int test_ue_rrc_reconfiguration() srslog::fetch_basic_logger("RRC").info("RRC Secondary Cell Group: \n %s", jw1.to_string().c_str()); #endif TESTASSERT(cell_group_cfg.cell_group_id == 1); - TESTASSERT(cell_group_cfg.rlc_bearer_to_add_mod_list_present == true); TESTASSERT(cell_group_cfg.rlc_bearer_to_add_mod_list.size() == 1); TESTASSERT(cell_group_cfg.mac_cell_group_cfg_present == true); TESTASSERT(cell_group_cfg.phys_cell_group_cfg_present == true); @@ -240,7 +234,6 @@ int test_radio_bearer_config() radio_bearer_cfg.to_json(jw); srslog::fetch_basic_logger("RRC").info("RRC Bearer CFG Message: \n %s", jw.to_string().c_str()); #endif - TESTASSERT(radio_bearer_cfg.drb_to_add_mod_list_present == true); TESTASSERT(radio_bearer_cfg.drb_to_add_mod_list.size() == 1); TESTASSERT(radio_bearer_cfg.security_cfg_present == true); TESTASSERT(radio_bearer_cfg.security_cfg.security_algorithm_cfg_present == true); @@ -251,8 +244,7 @@ int test_radio_bearer_config() reconfig.rrc_transaction_id = 0; rrc_recfg_ies_s& recfg_ies = reconfig.crit_exts.set_rrc_recfg(); - recfg_ies.radio_bearer_cfg_present = true; - recfg_ies.radio_bearer_cfg.drb_to_add_mod_list_present = true; + recfg_ies.radio_bearer_cfg_present = true; recfg_ies.radio_bearer_cfg.drb_to_add_mod_list.resize(1); auto& drb_item = recfg_ies.radio_bearer_cfg.drb_to_add_mod_list[0]; @@ -389,7 +381,6 @@ int test_cell_group_config_tdd() cell_group_cfg_s cell_group_cfg_pack; // RLC for DRB1 - cell_group_cfg_pack.rlc_bearer_to_add_mod_list_present = true; cell_group_cfg_pack.rlc_bearer_to_add_mod_list.resize(1); auto& rlc = cell_group_cfg_pack.rlc_bearer_to_add_mod_list[0]; rlc.lc_ch_id = 1; @@ -418,10 +409,9 @@ int test_cell_group_config_tdd() rlc.mac_lc_ch_cfg.ul_specific_params.sched_request_id = 0; // mac-CellGroup-Config - cell_group_cfg_pack.mac_cell_group_cfg_present = true; - auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; - mac_cell_group.sched_request_cfg_present = true; - mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list_present = true; + cell_group_cfg_pack.mac_cell_group_cfg_present = true; + auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; + mac_cell_group.sched_request_cfg_present = true; mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list.resize(1); mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sched_request_id = 0; mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max = @@ -442,7 +432,6 @@ int test_cell_group_config_tdd() cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.init_dl_bwp.pdcch_cfg_present = true; auto& pdcch_cfg_dedicated = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.init_dl_bwp.pdcch_cfg; pdcch_cfg_dedicated.set_setup(); - pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list_present = true; pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list.resize(1); pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list[0].ctrl_res_set_id = 2; pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list[0].freq_domain_res.from_number( @@ -453,7 +442,6 @@ int test_cell_group_config_tdd() asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle; // search spaces - pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list_present = true; pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list.resize(1); pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list[0].search_space_id = 2; pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list[0].ctrl_res_set_id_present = true; @@ -488,7 +476,6 @@ int test_cell_group_config_tdd() pdsch_cfg_dedicated.setup().dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position_present = true; pdsch_cfg_dedicated.setup().dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position = asn1::rrc_nr::dmrs_dl_cfg_s::dmrs_add_position_opts::pos1; - pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list_present = true; pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list.resize(1); pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list[0].tci_state_id = 0; pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list[0].qcl_type1.ref_sig.set_ssb(); @@ -503,7 +490,6 @@ int test_cell_group_config_tdd() asn1::rrc_nr::pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts::wideband; // ZP-CSI - pdsch_cfg_dedicated.setup().zp_csi_rs_res_to_add_mod_list_present = true; pdsch_cfg_dedicated.setup().zp_csi_rs_res_to_add_mod_list.resize(1); pdsch_cfg_dedicated.setup().zp_csi_rs_res_to_add_mod_list[0].zp_csi_rs_res_id = 0; pdsch_cfg_dedicated.setup().zp_csi_rs_res_to_add_mod_list[0].res_map.freq_domain_alloc.set_row4(); @@ -542,7 +528,6 @@ int test_cell_group_config_tdd() ul_config.init_ul_bwp.pucch_cfg.setup().format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25; // SR resources - ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list_present = true; ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list.resize(1); auto& sr_res1 = ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list[0]; sr_res1.sched_request_res_id = 1; @@ -554,7 +539,6 @@ int test_cell_group_config_tdd() sr_res1.res = 0; // only PUCCH resource we have defined so far // DL data - ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack_present = true; ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack.resize(5); ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[0] = 8; ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[1] = 7; @@ -563,7 +547,6 @@ int test_cell_group_config_tdd() ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[4] = 4; // PUCCH resources (only one format1 for the moment) - ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list_present = true; ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list.resize(1); auto& pucch_res1 = ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list[0]; pucch_res1.pucch_res_id = 0; @@ -625,7 +608,6 @@ int test_cell_group_config_tdd() cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.set_setup(); // nzp-CSI-RS Resource - cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_to_add_mod_list_present = true; cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_to_add_mod_list.resize(1); auto& nzp_csi_res = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_to_add_mod_list[0]; @@ -649,8 +631,6 @@ int test_cell_group_config_tdd() nzp_csi_res.qcl_info_periodic_csi_rs = 0; // nzp-CSI-RS ResourceSet - cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_set_to_add_mod_list_present = - true; cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_set_to_add_mod_list.resize(1); auto& nzp_csi_res_set = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_set_to_add_mod_list[0]; @@ -660,7 +640,6 @@ int test_cell_group_config_tdd() // Skip TRS info // CSI report config - cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().csi_report_cfg_to_add_mod_list_present = true; cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().csi_report_cfg_to_add_mod_list.resize(1); auto& csi_report = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().csi_report_cfg_to_add_mod_list[0]; @@ -743,7 +722,6 @@ int test_cell_group_config_tdd() asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle; // common search space list - pdcch_cfg_common.setup().common_search_space_list_present = true; pdcch_cfg_common.setup().common_search_space_list.resize(1); pdcch_cfg_common.setup().common_search_space_list[0].search_space_id = 1; pdcch_cfg_common.setup().common_search_space_list[0].ctrl_res_set_id_present = true; @@ -779,7 +757,6 @@ int test_cell_group_config_tdd() .set_setup(); auto& pdsch_cfg_common = cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.dl_cfg_common.init_dl_bwp .pdsch_cfg_common.setup(); - pdsch_cfg_common.pdsch_time_domain_alloc_list_present = true; pdsch_cfg_common.pdsch_time_domain_alloc_list.resize(1); pdsch_cfg_common.pdsch_time_domain_alloc_list[0].map_type = pdsch_time_domain_res_alloc_s::map_type_opts::type_a; pdsch_cfg_common.pdsch_time_domain_alloc_list[0].start_symbol_and_len = 40; @@ -833,7 +810,6 @@ int test_cell_group_config_tdd() auto& pusch_cfg_common_pack = cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.ul_cfg_common.init_ul_bwp.pusch_cfg_common; pusch_cfg_common_pack.set_setup(); - pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list_present = true; pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list.resize(2); pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2_present = true; pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2 = 4; @@ -1006,7 +982,6 @@ int test_cell_group_config_fdd() cell_group_cfg_s cell_group_cfg_pack; // RLC for DRB1 - cell_group_cfg_pack.rlc_bearer_to_add_mod_list_present = true; cell_group_cfg_pack.rlc_bearer_to_add_mod_list.resize(1); auto& rlc = cell_group_cfg_pack.rlc_bearer_to_add_mod_list[0]; rlc.lc_ch_id = 4; @@ -1035,10 +1010,9 @@ int test_cell_group_config_fdd() rlc.mac_lc_ch_cfg.ul_specific_params.sched_request_id = 0; // mac-CellGroup-Config - cell_group_cfg_pack.mac_cell_group_cfg_present = true; - auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; - mac_cell_group.sched_request_cfg_present = true; - mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list_present = true; + cell_group_cfg_pack.mac_cell_group_cfg_present = true; + auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; + mac_cell_group.sched_request_cfg_present = true; mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list.resize(1); mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sched_request_id = 0; mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max = @@ -1059,7 +1033,6 @@ int test_cell_group_config_fdd() cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.init_dl_bwp.pdcch_cfg_present = true; auto& pdcch_cfg_dedicated = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.init_dl_bwp.pdcch_cfg; pdcch_cfg_dedicated.set_setup(); - pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list_present = true; pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list.resize(1); pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list[0].ctrl_res_set_id = 2; pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list[0].freq_domain_res.from_number( @@ -1070,7 +1043,6 @@ int test_cell_group_config_fdd() asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle; // search spaces - pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list_present = true; pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list.resize(1); pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list[0].search_space_id = 2; pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list[0].ctrl_res_set_id_present = true; @@ -1105,7 +1077,6 @@ int test_cell_group_config_fdd() pdsch_cfg_dedicated.setup().dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position_present = true; pdsch_cfg_dedicated.setup().dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position = asn1::rrc_nr::dmrs_dl_cfg_s::dmrs_add_position_opts::pos1; - pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list_present = true; pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list.resize(1); pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list[0].tci_state_id = 0; pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list[0].qcl_type1.ref_sig.set_ssb(); @@ -1120,7 +1091,6 @@ int test_cell_group_config_fdd() asn1::rrc_nr::pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts::wideband; // ZP-CSI - pdsch_cfg_dedicated.setup().zp_csi_rs_res_to_add_mod_list_present = true; pdsch_cfg_dedicated.setup().zp_csi_rs_res_to_add_mod_list.resize(1); pdsch_cfg_dedicated.setup().zp_csi_rs_res_to_add_mod_list[0].zp_csi_rs_res_id = 0; pdsch_cfg_dedicated.setup().zp_csi_rs_res_to_add_mod_list[0].res_map.freq_domain_alloc.set_row4(); @@ -1159,7 +1129,6 @@ int test_cell_group_config_fdd() ul_config.init_ul_bwp.pucch_cfg.setup().format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25; // SR resources - ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list_present = true; ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list.resize(1); auto& sr_res1 = ul_config.init_ul_bwp.pucch_cfg.setup().sched_request_res_to_add_mod_list[0]; sr_res1.sched_request_res_id = 1; @@ -1171,13 +1140,11 @@ int test_cell_group_config_fdd() sr_res1.res = 16; // DL data - ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack_present = true; ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack.resize(1); ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[0] = 4; // TODO? // PUCCH resources (only one format1 for the moment) - ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list_present = true; ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list.resize(1); auto& pucch_res1 = ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list[0]; pucch_res1.pucch_res_id = 0; @@ -1239,7 +1206,6 @@ int test_cell_group_config_fdd() cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.set_setup(); // nzp-CSI-RS Resource - cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_to_add_mod_list_present = true; cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_to_add_mod_list.resize(5); auto& nzp_csi_res = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup(); // item 0 @@ -1349,8 +1315,6 @@ int test_cell_group_config_fdd() nzp_csi_res.nzp_csi_rs_res_to_add_mod_list[4].qcl_info_periodic_csi_rs = 0; // nzp-CSI-RS ResourceSet - cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_set_to_add_mod_list_present = - true; cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().nzp_csi_rs_res_set_to_add_mod_list.resize(2); auto& nzp_csi_res_set = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup(); // item 0 @@ -1373,7 +1337,6 @@ int test_cell_group_config_fdd() // TODO: add csi resource config // CSI report config - cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().csi_report_cfg_to_add_mod_list_present = true; cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().csi_report_cfg_to_add_mod_list.resize(1); auto& csi_report = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup().csi_report_cfg_to_add_mod_list[0]; @@ -1456,7 +1419,6 @@ int test_cell_group_config_fdd() asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle; // common search space list - pdcch_cfg_common.setup().common_search_space_list_present = true; pdcch_cfg_common.setup().common_search_space_list.resize(1); pdcch_cfg_common.setup().common_search_space_list[0].search_space_id = 1; pdcch_cfg_common.setup().common_search_space_list[0].ctrl_res_set_id_present = true; @@ -1492,7 +1454,6 @@ int test_cell_group_config_fdd() .set_setup(); auto& pdsch_cfg_common = cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.dl_cfg_common.init_dl_bwp .pdsch_cfg_common.setup(); - pdsch_cfg_common.pdsch_time_domain_alloc_list_present = true; pdsch_cfg_common.pdsch_time_domain_alloc_list.resize(1); pdsch_cfg_common.pdsch_time_domain_alloc_list[0].map_type = pdsch_time_domain_res_alloc_s::map_type_opts::type_a; pdsch_cfg_common.pdsch_time_domain_alloc_list[0].start_symbol_and_len = 40; @@ -1550,7 +1511,6 @@ int test_cell_group_config_fdd() auto& pusch_cfg_common_pack = cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.ul_cfg_common.init_ul_bwp.pusch_cfg_common; pusch_cfg_common_pack.set_setup(); - pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list_present = true; pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list.resize(2); pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2_present = true; pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2 = 4; diff --git a/srsgnb/src/stack/ngap/ngap_ue_proc.cc b/srsgnb/src/stack/ngap/ngap_ue_proc.cc index 43c8adf45..12e94a260 100644 --- a/srsgnb/src/stack/ngap/ngap_ue_proc.cc +++ b/srsgnb/src/stack/ngap/ngap_ue_proc.cc @@ -166,7 +166,7 @@ proc_outcome_t ngap_ue_pdu_session_res_setup_proc::init(const asn1::ngap::pdu_se addr_in.to_string()); // QoS parameter mapping in config in LTE enb - if (su_req.pdu_session_nas_pdu_present) { + if (su_req.pdu_session_nas_pdu.size() > 0) { if (rrc->establish_rrc_bearer(ue_ctxt->rnti, su_req.pdu_session_id, su_req.pdu_session_nas_pdu, lcid) == SRSRAN_SUCCESS) { parent->send_pdu_session_resource_setup_response(su_req.pdu_session_id, teid_in, addr_in); diff --git a/srsgnb/src/stack/rrc/cell_asn1_config.cc b/srsgnb/src/stack/rrc/cell_asn1_config.cc index 9088dee5c..294c8021a 100644 --- a/srsgnb/src/stack/rrc/cell_asn1_config.cc +++ b/srsgnb/src/stack/rrc/cell_asn1_config.cc @@ -126,7 +126,6 @@ void set_rach_cfg_common(const srsran_prach_cfg_t& prach_cfg, asn1::rrc_nr::rach int fill_csi_report_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_meas_cfg) { if (cfg.is_standalone) { - csi_meas_cfg.csi_report_cfg_to_add_mod_list_present = true; csi_meas_cfg.csi_report_cfg_to_add_mod_list.resize(1); auto& csi_report = csi_meas_cfg.csi_report_cfg_to_add_mod_list[0]; @@ -171,7 +170,6 @@ int fill_csi_report_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_me csi_report.report_cfg_type.periodic().report_slot_cfg.slots80() = 7; } } else { - csi_meas_cfg.csi_report_cfg_to_add_mod_list_present = true; csi_meas_cfg.csi_report_cfg_to_add_mod_list.resize(1); auto& csi_report = csi_meas_cfg.csi_report_cfg_to_add_mod_list[0]; @@ -212,7 +210,6 @@ int fill_csi_report_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_me void fill_nzp_csi_rs_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_meas_cfg) { if (cfg.is_standalone) { - csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list_present = true; if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list.resize(5); auto& nzp_csi_res = csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list; @@ -284,7 +281,6 @@ void fill_nzp_csi_rs_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_m } // Fill NZP-CSI Resource Sets - csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list_present = true; if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list.resize(2); auto& nzp_csi_res_set = csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list; @@ -310,7 +306,6 @@ void fill_nzp_csi_rs_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_m // Skip TRS info } } else { - csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list_present = true; if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list.resize(5); auto& nzp_csi_res = csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list; @@ -382,7 +377,6 @@ void fill_nzp_csi_rs_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_m } // Fill NZP-CSI Resource Sets - csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list_present = true; if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list.resize(2); auto& nzp_csi_res_set = csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list; @@ -413,12 +407,10 @@ void fill_nzp_csi_rs_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_m void fill_csi_resource_cfg_to_add(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_meas_cfg) { if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { - csi_meas_cfg.csi_res_cfg_to_add_mod_list_present = true; csi_meas_cfg.csi_res_cfg_to_add_mod_list.resize(3); csi_meas_cfg.csi_res_cfg_to_add_mod_list[0].csi_res_cfg_id = 0; auto& nzp = csi_meas_cfg.csi_res_cfg_to_add_mod_list[0].csi_rs_res_set_list.set_nzp_csi_rs_ssb(); - nzp.nzp_csi_rs_res_set_list_present = true; nzp.nzp_csi_rs_res_set_list.push_back(0); csi_meas_cfg.csi_res_cfg_to_add_mod_list[0].bwp_id = 0; csi_meas_cfg.csi_res_cfg_to_add_mod_list[0].res_type.value = csi_res_cfg_s::res_type_opts::periodic; @@ -431,7 +423,6 @@ void fill_csi_resource_cfg_to_add(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_m csi_meas_cfg.csi_res_cfg_to_add_mod_list[2].csi_res_cfg_id = 2; auto& nzp2 = csi_meas_cfg.csi_res_cfg_to_add_mod_list[2].csi_rs_res_set_list.set_nzp_csi_rs_ssb(); - nzp2.nzp_csi_rs_res_set_list_present = true; nzp2.nzp_csi_rs_res_set_list.push_back(1); csi_meas_cfg.csi_res_cfg_to_add_mod_list[2].bwp_id = 0; csi_meas_cfg.csi_res_cfg_to_add_mod_list[2].res_type.value = csi_res_cfg_s::res_type_opts::periodic; @@ -442,7 +433,6 @@ void fill_csi_im_resource_cfg_to_add(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& cs { if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { // csi-IM-ResourceToAddModList - csi_meas_cfg.csi_im_res_to_add_mod_list_present = true; csi_meas_cfg.csi_im_res_to_add_mod_list.resize(1); auto& csi_im_res = csi_meas_cfg.csi_im_res_to_add_mod_list[0]; @@ -463,7 +453,6 @@ void fill_csi_im_resource_cfg_to_add(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& cs csi_im_res.periodicity_and_offset.slots80() = 1; // csi-IM-ResourceSetToAddModList - csi_meas_cfg.csi_im_res_set_to_add_mod_list_present = true; csi_meas_cfg.csi_im_res_set_to_add_mod_list.resize(1); auto& csi_im_res_set = csi_meas_cfg.csi_im_res_set_to_add_mod_list[0]; @@ -511,14 +500,12 @@ int fill_pdcch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pdcch_cfg_ } // Add UE-specific SearchSpace - pdcch_cfg.search_spaces_to_add_mod_list_present = true; pdcch_cfg.search_spaces_to_add_mod_list.push_back({}); set_search_space_from_phy_cfg(search_space_cfg, pdcch_cfg.search_spaces_to_add_mod_list.back()); // Add CORESET associated with SearchSpace - uint32_t coreset_id = search_space_cfg.coreset_id; - auto& coreset_cfg = cell_cfg.phy_cell.pdcch.coreset[coreset_id]; - pdcch_cfg.ctrl_res_set_to_add_mod_list_present = true; + uint32_t coreset_id = search_space_cfg.coreset_id; + auto& coreset_cfg = cell_cfg.phy_cell.pdcch.coreset[coreset_id]; pdcch_cfg.ctrl_res_set_to_add_mod_list.push_back({}); set_coreset_from_phy_cfg(coreset_cfg, pdcch_cfg.ctrl_res_set_to_add_mod_list.back()); } @@ -533,7 +520,6 @@ void fill_pdsch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pdsch_cfg out.dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position_present = true; out.dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position = dmrs_dl_cfg_s::dmrs_add_position_opts::pos1; - out.tci_states_to_add_mod_list_present = true; out.tci_states_to_add_mod_list.resize(1); out.tci_states_to_add_mod_list[0].tci_state_id = 0; out.tci_states_to_add_mod_list[0].qcl_type1.ref_sig.set_ssb(); @@ -548,7 +534,6 @@ void fill_pdsch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pdsch_cfg pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts::wideband; // ZP-CSI - out.zp_csi_rs_res_to_add_mod_list_present = false; // TEMP out.zp_csi_rs_res_to_add_mod_list.resize(1); out.zp_csi_rs_res_to_add_mod_list[0].zp_csi_rs_res_id = 0; out.zp_csi_rs_res_to_add_mod_list[0].res_map.freq_domain_alloc.set_row4(); @@ -588,7 +573,6 @@ int fill_init_dl_bwp_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, bwp_dl_d void fill_pucch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pucch_cfg_s& out) { // Make 2 PUCCH resource sets - out.res_set_to_add_mod_list_present = true; out.res_set_to_add_mod_list.resize(2); // Make PUCCH resource set for 1-2 bit @@ -606,7 +590,6 @@ void fill_pucch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pucch_cfg } // Make 3 possible resources - out.res_to_add_mod_list_present = true; out.res_to_add_mod_list.resize(18); uint32_t j = 0, j2 = 0; for (uint32_t i = 0; i < out.res_to_add_mod_list.size(); ++i) { @@ -647,7 +630,6 @@ void fill_pucch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pucch_cfg out.format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25; // SR resources - out.sched_request_res_to_add_mod_list_present = true; out.sched_request_res_to_add_mod_list.resize(1); auto& sr_res1 = out.sched_request_res_to_add_mod_list[0]; sr_res1.sched_request_res_id = 1; @@ -658,7 +640,6 @@ void fill_pucch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pucch_cfg sr_res1.res = 2; // DL data - out.dl_data_to_ul_ack_present = true; if (cfg.cell_list[cc].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { out.dl_data_to_ul_ack.resize(1); out.dl_data_to_ul_ack[0] = 4; @@ -753,7 +734,6 @@ int fill_pdcch_cfg_common_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pdc pdcch_cfg_common.common_ctrl_res_set_present = true; set_coreset_from_phy_cfg(cfg.cell_list[cc].phy_cell.pdcch.coreset[1], pdcch_cfg_common.common_ctrl_res_set); - pdcch_cfg_common.common_search_space_list_present = true; pdcch_cfg_common.common_search_space_list.push_back({}); set_search_space_from_phy_cfg(cfg.cell_list[cc].phy_cell.pdcch.search_space[1], pdcch_cfg_common.common_search_space_list.back()); @@ -822,7 +802,6 @@ int fill_freq_info_ul_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, freq_in { auto& cell_cfg = cfg.cell_list.at(cc); - freq_info_ul.freq_band_list_present = true; freq_info_ul.freq_band_list.push_back(cell_cfg.band); freq_info_ul.absolute_freq_point_a_present = true; freq_info_ul.absolute_freq_point_a = cell_cfg.ul_absolute_freq_point_a; @@ -1027,24 +1006,21 @@ void fill_drb(const rrc_nr_cfg_t& cfg, uint32_t lcid, srsran::nr_drb drb_id, asn /// Fill MasterCellConfig with gNB config int fill_master_cell_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, asn1::rrc_nr::cell_group_cfg_s& out) { - out.cell_group_id = 0; - out.rlc_bearer_to_add_mod_list_present = true; + out.cell_group_id = 0; out.rlc_bearer_to_add_mod_list.resize(1); fill_srb(cfg, srsran::nr_srb::srb1, out.rlc_bearer_to_add_mod_list[0]); // mac-CellGroupConfig -- Need M - out.mac_cell_group_cfg_present = true; - out.mac_cell_group_cfg.sched_request_cfg_present = true; - out.mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list_present = true; + out.mac_cell_group_cfg_present = true; + out.mac_cell_group_cfg.sched_request_cfg_present = true; out.mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list.resize(1); out.mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list[0].sched_request_id = 0; out.mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max.value = sched_request_to_add_mod_s::sr_trans_max_opts::n64; - out.mac_cell_group_cfg.bsr_cfg_present = true; - out.mac_cell_group_cfg.bsr_cfg.periodic_bsr_timer.value = bsr_cfg_s::periodic_bsr_timer_opts::sf20; - out.mac_cell_group_cfg.bsr_cfg.retx_bsr_timer.value = bsr_cfg_s::retx_bsr_timer_opts::sf320; - out.mac_cell_group_cfg.tag_cfg_present = true; - out.mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list_present = true; + out.mac_cell_group_cfg.bsr_cfg_present = true; + out.mac_cell_group_cfg.bsr_cfg.periodic_bsr_timer.value = bsr_cfg_s::periodic_bsr_timer_opts::sf20; + out.mac_cell_group_cfg.bsr_cfg.retx_bsr_timer.value = bsr_cfg_s::retx_bsr_timer_opts::sf320; + out.mac_cell_group_cfg.tag_cfg_present = true; out.mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list.resize(1); out.mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list[0].tag_id = 0; out.mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list[0].time_align_timer.value = time_align_timer_opts::infinity; @@ -1114,7 +1090,6 @@ void fill_pdcch_cfg_common(const rrc_cell_cfg_nr_t& cell_cfg, pdcch_cfg_common_s cfg.search_space_zero_present = true; cfg.search_space_zero = 0; - cfg.common_search_space_list_present = true; cfg.common_search_space_list.resize(1); set_search_space_from_phy_cfg(cell_cfg.phy_cell.pdcch.search_space[1], cfg.common_search_space_list[0]); @@ -1130,7 +1105,6 @@ void fill_pdcch_cfg_common(const rrc_cell_cfg_nr_t& cell_cfg, pdcch_cfg_common_s void fill_pdsch_cfg_common(const rrc_cell_cfg_nr_t& cell_cfg, pdsch_cfg_common_s& cfg) { - cfg.pdsch_time_domain_alloc_list_present = true; cfg.pdsch_time_domain_alloc_list.resize(1); cfg.pdsch_time_domain_alloc_list[0].map_type.value = pdsch_time_domain_res_alloc_s::map_type_opts::type_a; cfg.pdsch_time_domain_alloc_list[0].start_symbol_and_len = 40; @@ -1182,7 +1156,6 @@ void fill_ul_cfg_common_sib(const rrc_cell_cfg_nr_t& cell_cfg, ul_cfg_common_sib { srsran::srsran_band_helper band_helper; - cfg.freq_info_ul.freq_band_list_present = true; cfg.freq_info_ul.freq_band_list.resize(1); cfg.freq_info_ul.freq_band_list[0].freq_band_ind_nr_present = true; cfg.freq_info_ul.freq_band_list[0].freq_band_ind_nr = cell_cfg.band; @@ -1207,9 +1180,8 @@ void fill_ul_cfg_common_sib(const rrc_cell_cfg_nr_t& cell_cfg, ul_cfg_common_sib cfg.init_ul_bwp.rach_cfg_common_present = true; set_rach_cfg_common(cell_cfg.phy_cell.prach, cfg.init_ul_bwp.rach_cfg_common.set_setup()); - cfg.init_ul_bwp.pusch_cfg_common_present = true; - pusch_cfg_common_s& pusch = cfg.init_ul_bwp.pusch_cfg_common.set_setup(); - pusch.pusch_time_domain_alloc_list_present = true; + cfg.init_ul_bwp.pusch_cfg_common_present = true; + pusch_cfg_common_s& pusch = cfg.init_ul_bwp.pusch_cfg_common.set_setup(); pusch.pusch_time_domain_alloc_list.resize(1); pusch.pusch_time_domain_alloc_list[0].k2_present = true; pusch.pusch_time_domain_alloc_list[0].k2 = 4; @@ -1310,17 +1282,15 @@ bool compute_diff_radio_bearer_cfg(const rrc_nr_cfg_t& cfg, std::vector srbs_to_rem; srsran::compute_cfg_diff( prev_bearers.srb_to_add_mod_list, next_bearers.srb_to_add_mod_list, diff.srb_to_add_mod_list, srbs_to_rem); - diff.srb_to_add_mod_list_present = diff.srb_to_add_mod_list.size() > 0; // Compute DRB differences srsran::compute_cfg_diff(prev_bearers.drb_to_add_mod_list, next_bearers.drb_to_add_mod_list, diff.drb_to_add_mod_list, diff.drb_to_release_list); - diff.drb_to_add_mod_list_present = diff.drb_to_add_mod_list.size() > 0; - diff.drb_to_release_list_present = diff.drb_to_release_list.size() > 0; - return diff.srb_to_add_mod_list_present or diff.drb_to_release_list_present or diff.drb_to_add_mod_list_present; + return diff.srb_to_add_mod_list.size() > 0 or diff.drb_to_release_list.size() > 0 or + diff.drb_to_add_mod_list.size() > 0; } void fill_cellgroup_with_radio_bearer_cfg(const rrc_nr_cfg_t& cfg, @@ -1341,13 +1311,11 @@ void fill_cellgroup_with_radio_bearer_cfg(const rrc_nr_cfg_t& uint32_t lcid = drb.drb_id + (int)srsran::nr_srb::count - 1; fill_drb(cfg, lcid, (srsran::nr_drb)drb.drb_id, out.rlc_bearer_to_add_mod_list.back()); } - out.rlc_bearer_to_add_mod_list_present = out.rlc_bearer_to_add_mod_list.size() > 0; // Release DRBs for (uint8_t drb_id : bearers.drb_to_release_list) { out.rlc_bearer_to_release_list.push_back(drb_id); } - out.rlc_bearer_to_release_list_present = out.rlc_bearer_to_release_list.size() > 0; } } // namespace srsenb diff --git a/srsgnb/src/stack/rrc/rrc_nr_ue.cc b/srsgnb/src/stack/rrc/rrc_nr_ue.cc index b6c0716a8..384d0474e 100644 --- a/srsgnb/src/stack/rrc/rrc_nr_ue.cc +++ b/srsgnb/src/stack/rrc/rrc_nr_ue.cc @@ -157,7 +157,6 @@ int rrc_nr::ue::send_dl_dcch(srsran::nr_srb srb, const asn1::rrc_nr::dl_dcch_msg int rrc_nr::ue::pack_secondary_cell_group_rlc_cfg(asn1::rrc_nr::cell_group_cfg_s& cell_group_cfg_pack) { // RLC for DRB1 (with fixed LCID) - cell_group_cfg_pack.rlc_bearer_to_add_mod_list_present = true; cell_group_cfg_pack.rlc_bearer_to_add_mod_list.resize(1); auto& rlc_bearer = cell_group_cfg_pack.rlc_bearer_to_add_mod_list[0]; rlc_bearer.lc_ch_id = drb1_lcid; @@ -207,10 +206,9 @@ int rrc_nr::ue::pack_secondary_cell_group_rlc_cfg(asn1::rrc_nr::cell_group_cfg_s int rrc_nr::ue::pack_secondary_cell_group_mac_cfg(asn1::rrc_nr::cell_group_cfg_s& cell_group_cfg_pack) { // mac-CellGroup-Config for BSR and SR - cell_group_cfg_pack.mac_cell_group_cfg_present = true; - auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; - mac_cell_group.sched_request_cfg_present = true; - mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list_present = true; + cell_group_cfg_pack.mac_cell_group_cfg_present = true; + auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; + mac_cell_group.sched_request_cfg_present = true; mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list.resize(1); mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sched_request_id = 0; mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max = @@ -220,8 +218,7 @@ int rrc_nr::ue::pack_secondary_cell_group_mac_cfg(asn1::rrc_nr::cell_group_cfg_s mac_cell_group.bsr_cfg.retx_bsr_timer = asn1::rrc_nr::bsr_cfg_s::retx_bsr_timer_opts::sf320; // Skip TAG and PHR config - mac_cell_group.tag_cfg_present = false; - mac_cell_group.tag_cfg.tag_to_add_mod_list_present = true; + mac_cell_group.tag_cfg_present = false; mac_cell_group.tag_cfg.tag_to_add_mod_list.resize(1); mac_cell_group.tag_cfg.tag_to_add_mod_list[0].tag_id = 0; mac_cell_group.tag_cfg.tag_to_add_mod_list[0].time_align_timer = time_align_timer_opts::infinity; @@ -253,7 +250,6 @@ int rrc_nr::ue::pack_sp_cell_cfg_ded_init_dl_bwp_radio_link_monitoring( { cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.init_dl_bwp.radio_link_monitoring_cfg_present = true; auto& radio_link_monitoring = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.init_dl_bwp.radio_link_monitoring_cfg; - radio_link_monitoring.set_setup().fail_detection_res_to_add_mod_list_present = true; // add resource to detect RLF radio_link_monitoring.set_setup().fail_detection_res_to_add_mod_list.resize(1); @@ -278,7 +274,6 @@ int rrc_nr::ue::pack_sp_cell_cfg_ded_ul_cfg_init_ul_bwp_pucch_cfg(asn1::rrc_nr:: pucch_cfg.setup().format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25; // SR resources - pucch_cfg.setup().sched_request_res_to_add_mod_list_present = true; pucch_cfg.setup().sched_request_res_to_add_mod_list.resize(1); auto& sr_res1 = pucch_cfg.setup().sched_request_res_to_add_mod_list[0]; sr_res1.sched_request_res_id = 1; @@ -289,8 +284,6 @@ int rrc_nr::ue::pack_sp_cell_cfg_ded_ul_cfg_init_ul_bwp_pucch_cfg(asn1::rrc_nr:: sr_res1.res = 2; // PUCCH resource for SR // DL data - pucch_cfg.setup().dl_data_to_ul_ack_present = true; - if (parent->cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { pucch_cfg.setup().dl_data_to_ul_ack.resize(1); pucch_cfg.setup().dl_data_to_ul_ack[0] = 4; @@ -331,7 +324,6 @@ int rrc_nr::ue::pack_sp_cell_cfg_ded_ul_cfg_init_ul_bwp_pucch_cfg(asn1::rrc_nr:: resource_sr.time_domain_occ = 0; // Make 3 possible resources - pucch_cfg.setup().res_to_add_mod_list_present = true; pucch_cfg.setup().res_to_add_mod_list.resize(3); if (not srsran::make_phy_res_config(resource_small, pucch_cfg.setup().res_to_add_mod_list[0], 0)) { logger.warning("Failed to create 1-2 bit NR PUCCH resource"); @@ -344,7 +336,6 @@ int rrc_nr::ue::pack_sp_cell_cfg_ded_ul_cfg_init_ul_bwp_pucch_cfg(asn1::rrc_nr:: } // Make 2 PUCCH resource sets - pucch_cfg.setup().res_set_to_add_mod_list_present = true; pucch_cfg.setup().res_set_to_add_mod_list.resize(2); // Make PUCCH resource set for 1-2 bit @@ -481,7 +472,6 @@ int rrc_nr::ue::pack_recfg_with_sync_sp_cell_cfg_common_dl_cfg_init_dl_bwp_pdsch auto& pdsch_cfg_common = cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.dl_cfg_common.init_dl_bwp .pdsch_cfg_common.setup(); - pdsch_cfg_common.pdsch_time_domain_alloc_list_present = true; pdsch_cfg_common.pdsch_time_domain_alloc_list.resize(1); pdsch_cfg_common.pdsch_time_domain_alloc_list[0].map_type = pdsch_time_domain_res_alloc_s::map_type_opts::type_a; pdsch_cfg_common.pdsch_time_domain_alloc_list[0].start_symbol_and_len = 40; @@ -524,7 +514,6 @@ int rrc_nr::ue::pack_recfg_with_sync_sp_cell_cfg_common_ul_cfg_common_init_ul_bw auto& pusch_cfg_common_pack = cell_group_cfg_pack.sp_cell_cfg.recfg_with_sync.sp_cell_cfg_common.ul_cfg_common.init_ul_bwp.pusch_cfg_common; pusch_cfg_common_pack.set_setup(); - pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list_present = true; pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list.resize(2); pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2_present = true; pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2 = 4; @@ -652,8 +641,6 @@ int rrc_nr::ue::pack_rrc_reconfiguration(asn1::dyn_octstring& packed_rrc_reconfi rrc_recfg_ies_s& recfg_ies = reconfig.crit_exts.set_rrc_recfg(); // add secondary cell group config - recfg_ies.secondary_cell_group_present = true; - if (pack_secondary_cell_group_cfg(recfg_ies.secondary_cell_group) == SRSRAN_ERROR) { logger.error("Failed to pack secondary cell group"); return SRSRAN_ERROR; @@ -780,7 +767,6 @@ int rrc_nr::ue::add_drb() // RLC for DRB1 (with fixed LCID) inside cell_group_cfg auto& cell_group_cfg_pack = cell_group_cfg; - cell_group_cfg_pack.rlc_bearer_to_add_mod_list_present = true; cell_group_cfg_pack.rlc_bearer_to_add_mod_list.resize(1); auto& rlc_bearer = cell_group_cfg_pack.rlc_bearer_to_add_mod_list[0]; rlc_bearer.lc_ch_id = drb1_lcid; @@ -830,8 +816,7 @@ int rrc_nr::ue::add_drb() // TODO: add LC config to MAC // PDCP config goes into radio_bearer_cfg - auto& radio_bearer_cfg_pack = radio_bearer_cfg; - radio_bearer_cfg_pack.drb_to_add_mod_list_present = true; + auto& radio_bearer_cfg_pack = radio_bearer_cfg; radio_bearer_cfg_pack.drb_to_add_mod_list.resize(1); // configure fixed DRB1 @@ -923,7 +908,6 @@ void rrc_nr::ue::send_rrc_setup() // Add SRB1 to UE context // Note: See 5.3.5.6.3 - SRB addition/modification - next_radio_bearer_cfg.srb_to_add_mod_list_present = true; next_radio_bearer_cfg.srb_to_add_mod_list.resize(1); srb_to_add_mod_s& srb1 = next_radio_bearer_cfg.srb_to_add_mod_list[0]; srb1.srb_id = 1; @@ -1051,8 +1035,6 @@ void rrc_nr::ue::send_rrc_reconfiguration() // Set ies.non_crit_ext_present (a few lines below) only if // master_cell_group_present == true or ies.non_crit_ext.ded_nas_msg_list_present == true if (ies.radio_bearer_cfg_present) { - ies.non_crit_ext.master_cell_group_present = true; - // Fill masterCellGroup cell_group_cfg_s master_cell_group; master_cell_group.cell_group_id = 0; @@ -1085,7 +1067,6 @@ void rrc_nr::ue::send_rrc_reconfiguration() if (nas_pdu_queue.size() > 0) { // Pass stored NAS PDUs - ies.non_crit_ext.ded_nas_msg_list_present = true; ies.non_crit_ext.ded_nas_msg_list.resize(nas_pdu_queue.size()); for (uint32_t i = 0; i < nas_pdu_queue.size(); ++i) { ies.non_crit_ext.ded_nas_msg_list[i].resize(nas_pdu_queue[i]->size()); @@ -1094,7 +1075,8 @@ void rrc_nr::ue::send_rrc_reconfiguration() nas_pdu_queue.clear(); } - ies.non_crit_ext_present = ies.non_crit_ext.master_cell_group_present or ies.non_crit_ext.ded_nas_msg_list_present; + ies.non_crit_ext_present = + ies.non_crit_ext.master_cell_group.size() > 0 or ies.non_crit_ext.ded_nas_msg_list.size() > 0; if (send_dl_dcch(srsran::nr_srb::srb1, dl_dcch_msg) != SRSRAN_SUCCESS) { parent->ngap->user_release_request(rnti, asn1::ngap::cause_radio_network_opts::radio_res_not_available); @@ -1135,7 +1117,6 @@ void rrc_nr::ue::send_dl_information_transfer(srsran::unique_byte_buffer_t sdu) dl_dcch_msg.msg.set_c1().set_dl_info_transfer().rrc_transaction_id = (uint8_t)((transaction_id++) % 4); dl_info_transfer_ies_s& ies = dl_dcch_msg.msg.c1().dl_info_transfer().crit_exts.set_dl_info_transfer(); - ies.ded_nas_msg_present = true; ies.ded_nas_msg.resize(sdu->N_bytes); memcpy(ies.ded_nas_msg.data(), sdu->data(), ies.ded_nas_msg.size()); @@ -1164,18 +1145,16 @@ void rrc_nr::ue::establish_eps_bearer(uint32_t pdu_session_id, srsran::const_byt // Add SRB2, if not yet added if (radio_bearer_cfg.srb_to_add_mod_list.size() <= 1) { - next_radio_bearer_cfg.srb_to_add_mod_list_present = true; next_radio_bearer_cfg.srb_to_add_mod_list.push_back(srb_to_add_mod_s{}); next_radio_bearer_cfg.srb_to_add_mod_list.back().srb_id = 2; } drb_to_add_mod_s drb; - drb.cn_assoc_present = true; - drb.cn_assoc.set_sdap_cfg().pdu_session = 1; - drb.cn_assoc.sdap_cfg().sdap_hdr_dl.value = asn1::rrc_nr::sdap_cfg_s::sdap_hdr_dl_opts::absent; - drb.cn_assoc.sdap_cfg().sdap_hdr_ul.value = asn1::rrc_nr::sdap_cfg_s::sdap_hdr_ul_opts::absent; - drb.cn_assoc.sdap_cfg().default_drb = true; - drb.cn_assoc.sdap_cfg().mapped_qos_flows_to_add_present = true; + drb.cn_assoc_present = true; + drb.cn_assoc.set_sdap_cfg().pdu_session = 1; + drb.cn_assoc.sdap_cfg().sdap_hdr_dl.value = asn1::rrc_nr::sdap_cfg_s::sdap_hdr_dl_opts::absent; + drb.cn_assoc.sdap_cfg().sdap_hdr_ul.value = asn1::rrc_nr::sdap_cfg_s::sdap_hdr_ul_opts::absent; + drb.cn_assoc.sdap_cfg().default_drb = true; drb.cn_assoc.sdap_cfg().mapped_qos_flows_to_add.resize(1); drb.cn_assoc.sdap_cfg().mapped_qos_flows_to_add[0] = 1; @@ -1192,7 +1171,6 @@ void rrc_nr::ue::establish_eps_bearer(uint32_t pdu_session_id, srsran::const_byt drb.pdcp_cfg.t_reordering_present = true; drb.pdcp_cfg.t_reordering.value = asn1::rrc_nr::pdcp_cfg_s::t_reordering_opts::ms0; - next_radio_bearer_cfg.drb_to_add_mod_list_present = true; next_radio_bearer_cfg.drb_to_add_mod_list.push_back(drb); parent->bearer_mapper->add_eps_bearer( diff --git a/srsgnb/src/stack/rrc/test/rrc_nr_core_test.cc b/srsgnb/src/stack/rrc/test/rrc_nr_core_test.cc index 18c464a04..14d0f2bd0 100644 --- a/srsgnb/src/stack/rrc/test/rrc_nr_core_test.cc +++ b/srsgnb/src/stack/rrc/test/rrc_nr_core_test.cc @@ -180,7 +180,6 @@ void test_rrc_sa_ngap_integration(ngap_args_t ngap_args) ul_dcch_msg_s ul_dcch_msg_auth_resp; ul_dcch_msg_auth_resp.msg.set_c1().set_ul_info_transfer().crit_exts.set_ul_info_transfer(); - ul_dcch_msg_auth_resp.msg.c1().ul_info_transfer().crit_exts.ul_info_transfer().ded_nas_msg_present = true; ul_dcch_msg_auth_resp.msg.c1().ul_info_transfer().crit_exts.ul_info_transfer().ded_nas_msg.from_string( "7e00572d10db165fffdb7b74c326e3fc3f154117fe"); @@ -195,7 +194,6 @@ void test_rrc_sa_ngap_integration(ngap_args_t ngap_args) asn1::bit_ref bref_smc{sec_complete_pdu->data(), sec_complete_pdu->get_tailroom()}; ul_dcch_msg_s ul_dcch_msg_smc; ul_dcch_msg_smc.msg.set_c1().set_ul_info_transfer().crit_exts.set_ul_info_transfer(); - ul_dcch_msg_smc.msg.c1().ul_info_transfer().crit_exts.ul_info_transfer().ded_nas_msg_present = true; ul_dcch_msg_smc.msg.c1().ul_info_transfer().crit_exts.ul_info_transfer().ded_nas_msg.from_string( "7e046b3737af017e005e7700093535940096783351f37100237e004179000d0100f11000000000103254760810030000002e02e0602f0201" "01530100"); diff --git a/srsgnb/src/stack/rrc/test/rrc_nr_test_helpers.cc b/srsgnb/src/stack/rrc/test/rrc_nr_test_helpers.cc index c38297527..a4ba075ec 100644 --- a/srsgnb/src/stack/rrc/test/rrc_nr_test_helpers.cc +++ b/srsgnb/src/stack/rrc/test/rrc_nr_test_helpers.cc @@ -64,7 +64,7 @@ void test_rrc_nr_connection_establishment(srsran::task_scheduler& task_sched, dl_ccch_msg.msg.c1().rrc_setup().crit_exts.type().value); const rrc_setup_ies_s& setup_ies = dl_ccch_msg.msg.c1().rrc_setup().crit_exts.rrc_setup(); - TESTASSERT(setup_ies.radio_bearer_cfg.srb_to_add_mod_list_present); + TESTASSERT(setup_ies.radio_bearer_cfg.srb_to_add_mod_list.size() > 0); TESTASSERT_EQ(1, setup_ies.radio_bearer_cfg.srb_to_add_mod_list.size()); const srb_to_add_mod_s& srb1 = setup_ies.radio_bearer_cfg.srb_to_add_mod_list[0]; @@ -102,7 +102,7 @@ void test_rrc_nr_connection_establishment(srsran::task_scheduler& task_sched, complete_ies.guami_type.value = rrc_setup_complete_ies_s::guami_type_opts::native; std::string NAS_msg_str = "7E01280E534C337E004109000BF200F110800101347B80802E02F07071002D7E004109000BF200F11080010134" "7B80801001002E02F0702F0201015200F11000006418010174000090530101"; - auto& ded_nas_msg = complete_ies.ded_nas_msg.from_string(NAS_msg_str); + auto& ded_nas_msg = complete_ies.ded_nas_msg.from_string(NAS_msg_str); { pdu = srsran::make_byte_buffer(); @@ -169,13 +169,12 @@ void test_rrc_nr_info_transfer(srsran::task_scheduler& task_sched, dl_dcch_msg.msg.c1().dl_info_transfer().crit_exts.type().value); dl_info_transfer_ies_s& ies_DL = dl_dcch_msg.msg.c1().dl_info_transfer().crit_exts.dl_info_transfer(); - TESTASSERT(ies_DL.ded_nas_msg_present == true); + TESTASSERT(ies_DL.ded_nas_msg.size() > 0); TESTASSERT(NAS_DL_msg == ies_DL.ded_nas_msg); // STEP 2: Send ULInformationTransfer (UE -> gNB) ul_dcch_msg_s ul_dcch_msg; - auto& ies_UL = ul_dcch_msg.msg.set_c1().set_ul_info_transfer().crit_exts.set_ul_info_transfer(); - ies_UL.ded_nas_msg_present = true; + auto& ies_UL = ul_dcch_msg.msg.set_c1().set_ul_info_transfer().crit_exts.set_ul_info_transfer(); // Create an unbounded_octstring object that contains a random NAS message (we simulate a NAS message) // We reuse ies_UL below to compare the string with the message sent to and unpacked by the gNB @@ -279,7 +278,7 @@ void test_rrc_nr_reconfiguration(srsran::task_scheduler& task_sched, // The RRCreconfiguration reads the SecurityModeCommand NAS msg previously saved in the queue asn1::unbounded_octstring NAS_msg; NAS_msg.from_string(NAS_SEC_CMD_STR); - TESTASSERT_EQ(true, reconf_ies.non_crit_ext.ded_nas_msg_list_present); + TESTASSERT(reconf_ies.non_crit_ext.ded_nas_msg_list.size() > 0); // Test if NAS_msg is the same as the one sent in SecurityModeCommand TESTASSERT(NAS_msg == reconf_ies.non_crit_ext.ded_nas_msg_list[0]); @@ -338,7 +337,7 @@ void test_rrc_nr_2nd_reconfiguration(srsran::task_scheduler& task_sched, dl_dcch_msg.msg.c1().rrc_recfg().crit_exts.type().value); const rrc_recfg_ies_s& reconf_ies = dl_dcch_msg.msg.c1().rrc_recfg().crit_exts.rrc_recfg(); TESTASSERT_EQ(true, reconf_ies.radio_bearer_cfg_present); - TESTASSERT_EQ(true, reconf_ies.radio_bearer_cfg.srb_to_add_mod_list_present); + TESTASSERT(reconf_ies.radio_bearer_cfg.srb_to_add_mod_list.size() > 0); TESTASSERT_EQ(1, reconf_ies.radio_bearer_cfg.srb_to_add_mod_list.size()); TESTASSERT_EQ(2, reconf_ies.radio_bearer_cfg.srb_to_add_mod_list[0].srb_id); TESTASSERT_EQ(1, reconf_ies.radio_bearer_cfg.drb_to_add_mod_list.size()); @@ -346,7 +345,7 @@ void test_rrc_nr_2nd_reconfiguration(srsran::task_scheduler& task_sched, TESTASSERT_EQ(1, drb.drb_id); TESTASSERT_EQ(true, reconf_ies.non_crit_ext_present); - TESTASSERT_EQ(true, reconf_ies.non_crit_ext.master_cell_group_present); + TESTASSERT(reconf_ies.non_crit_ext.master_cell_group.size() > 0); auto& master_group_msg = reconf_ies.non_crit_ext.master_cell_group; cell_group_cfg_s master_cell_group; @@ -357,14 +356,14 @@ void test_rrc_nr_2nd_reconfiguration(srsran::task_scheduler& task_sched, // Test if the master_cell_group SRB and DRB IDs match those in the RadioBearerConfig TESTASSERT_EQ(0, master_cell_group.cell_group_id); - TESTASSERT_EQ(true, master_cell_group.rlc_bearer_to_add_mod_list_present); + TESTASSERT(master_cell_group.rlc_bearer_to_add_mod_list.size() > 0); auto& rlc_srb = master_cell_group.rlc_bearer_to_add_mod_list[0]; TESTASSERT_EQ(reconf_ies.radio_bearer_cfg.srb_to_add_mod_list[0].srb_id, rlc_srb.served_radio_bearer.srb_id()); auto& rlc_drb = master_cell_group.rlc_bearer_to_add_mod_list[1]; TESTASSERT_EQ(reconf_ies.radio_bearer_cfg.drb_to_add_mod_list[0].drb_id, rlc_drb.served_radio_bearer.drb_id()); // Test if NAS_msg is the same as the one sent in DLInformationTransfer - TESTASSERT_EQ(true, reconf_ies.non_crit_ext.ded_nas_msg_list_present); + TESTASSERT(reconf_ies.non_crit_ext.ded_nas_msg_list.size() > 0); TESTASSERT(NAS_msg == reconf_ies.non_crit_ext.ded_nas_msg_list[0]); // STEP 2 - Send RRCReconfiguration (UE -> gNB) diff --git a/srsue/src/stack/rrc/rrc.cc b/srsue/src/stack/rrc/rrc.cc index 400fca332..e0fc30ed5 100644 --- a/srsue/src/stack/rrc/rrc.cc +++ b/srsue/src/stack/rrc/rrc.cc @@ -800,7 +800,7 @@ bool rrc::nr_reconfiguration_proc(const rrc_conn_recfg_r8_ies_s& rx_recfg, bool* return false; } - if (secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group_present) { + if (secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group.size() > 0) { asn1::cbit_ref bref1(secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group.data(), secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group.size()); @@ -810,7 +810,6 @@ bool rrc::nr_reconfiguration_proc(const rrc_conn_recfg_r8_ies_s& rx_recfg, bool* return false; } - rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group_present = true; rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group = secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group; } diff --git a/srsue/src/stack/rrc_nr/rrc_nr.cc b/srsue/src/stack/rrc_nr/rrc_nr.cc index c49efdc5b..a2b3e3fa9 100644 --- a/srsue/src/stack/rrc_nr/rrc_nr.cc +++ b/srsue/src/stack/rrc_nr/rrc_nr.cc @@ -362,7 +362,7 @@ void rrc_nr::handle_sib1(const sib1_s& sib1) // Apply PDSCH Config Common if (sib1.serving_cell_cfg_common.dl_cfg_common.init_dl_bwp.pdsch_cfg_common.setup() - .pdsch_time_domain_alloc_list_present) { + .pdsch_time_domain_alloc_list.size() > 0) { if (not fill_phy_pdsch_cfg_common(sib1.serving_cell_cfg_common.dl_cfg_common.init_dl_bwp.pdsch_cfg_common.setup(), &phy_cfg.pdsch)) { logger.warning("Could not set PDSCH config."); @@ -623,7 +623,6 @@ void rrc_nr::send_con_setup_complete(srsran::unique_byte_buffer_t nas_msg) rrc_setup_complete->sel_plmn_id = 1; rrc_setup_complete->registered_amf_present = false; rrc_setup_complete->guami_type_present = false; - rrc_setup_complete->s_nssai_list_present = false; rrc_setup_complete->ng_minus5_g_s_tmsi_value_present = false; rrc_setup_complete->ded_nas_msg.resize(nas_msg->N_bytes); @@ -663,7 +662,6 @@ int rrc_nr::get_eutra_nr_capabilities(srsran::byte_buffer_t* eutra_nr_caps_pdu) } mrdc_cap.rf_params_mrdc.supported_band_combination_list.push_back(band_combination); - mrdc_cap.rf_params_mrdc.supported_band_combination_list_present = true; mrdc_cap.rf_params_mrdc.ext = true; @@ -684,8 +682,6 @@ int rrc_nr::get_eutra_nr_capabilities(srsran::byte_buffer_t* eutra_nr_caps_pdu) mrdc_cap.rf_params_mrdc.applied_freq_band_list_filt.push_back(band_info_nr); } - mrdc_cap.rf_params_mrdc.applied_freq_band_list_filt_present = true; - // rf_params_mrdc supported band combination list v1540 band_combination_list_v1540_l* band_combination_list_v1450 = new band_combination_list_v1540_l(); @@ -739,8 +735,6 @@ int rrc_nr::get_eutra_nr_capabilities(srsran::byte_buffer_t* eutra_nr_caps_pdu) mrdc_cap.feature_set_combinations.push_back(feature_set_combination); - mrdc_cap.feature_set_combinations_present = true; - // Pack mrdc_cap asn1::bit_ref bref(eutra_nr_caps_pdu->msg, eutra_nr_caps_pdu->get_tailroom()); mrdc_cap.pack(bref); @@ -911,7 +905,7 @@ bool rrc_nr::apply_rlc_add_mod(const rlc_bearer_cfg_s& rlc_bearer_cfg) bool rrc_nr::apply_mac_cell_group(const mac_cell_group_cfg_s& mac_cell_group_cfg) { if (mac_cell_group_cfg.sched_request_cfg_present) { - if (mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list_present) { + if (mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list.size() > 0) { if (mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list.size() == 1) { const sched_request_to_add_mod_s& asn1_cfg = mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list[0]; @@ -933,7 +927,7 @@ bool rrc_nr::apply_mac_cell_group(const mac_cell_group_cfg_s& mac_cell_group_cfg } } - if (mac_cell_group_cfg.sched_request_cfg.sched_request_to_release_list_present) { + if (mac_cell_group_cfg.sched_request_cfg.sched_request_to_release_list.size() > 0) { logger.warning("Not handling sched request to release list"); return false; } @@ -951,7 +945,7 @@ bool rrc_nr::apply_mac_cell_group(const mac_cell_group_cfg_s& mac_cell_group_cfg } if (mac_cell_group_cfg.tag_cfg_present) { - if (mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list_present) { + if (mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list.size(); i++) { tag_cfg_nr_t tag_cfg_nr = {}; tag_cfg_nr.tag_id = mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list[i].tag_id; @@ -962,7 +956,7 @@ bool rrc_nr::apply_mac_cell_group(const mac_cell_group_cfg_s& mac_cell_group_cfg } } } - if (mac_cell_group_cfg.tag_cfg.tag_to_release_list_present) { + if (mac_cell_group_cfg.tag_cfg.tag_to_release_list.size() > 0) { for (uint32_t i = 0; i < mac_cell_group_cfg.tag_cfg.tag_to_release_list.size(); i++) { uint32_t tag_id = mac_cell_group_cfg.tag_cfg.tag_to_release_list[i]; if (mac->remove_tag_config(tag_id) != SRSRAN_SUCCESS) { @@ -995,7 +989,7 @@ bool rrc_nr::apply_mac_cell_group(const mac_cell_group_cfg_s& mac_cell_group_cfg bool rrc_nr::apply_sp_cell_init_dl_pdcch(const asn1::rrc_nr::pdcch_cfg_s& pdcch_cfg) { - if (pdcch_cfg.search_spaces_to_add_mod_list_present) { + if (pdcch_cfg.search_spaces_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < pdcch_cfg.search_spaces_to_add_mod_list.size(); i++) { srsran_search_space_t search_space; if (make_phy_search_space_cfg(pdcch_cfg.search_spaces_to_add_mod_list[i], &search_space) == true) { @@ -1010,7 +1004,7 @@ bool rrc_nr::apply_sp_cell_init_dl_pdcch(const asn1::rrc_nr::pdcch_cfg_s& pdcch_ logger.warning("Option search_spaces_to_add_mod_list not present"); return false; } - if (pdcch_cfg.ctrl_res_set_to_add_mod_list_present) { + if (pdcch_cfg.ctrl_res_set_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < pdcch_cfg.ctrl_res_set_to_add_mod_list.size(); i++) { srsran_coreset_t coreset; if (make_phy_coreset_cfg(pdcch_cfg.ctrl_res_set_to_add_mod_list[i], &coreset) == true) { @@ -1071,7 +1065,7 @@ bool rrc_nr::apply_sp_cell_init_dl_pdsch(const asn1::rrc_nr::pdsch_cfg_s& pdsch_ phy_cfg.pdsch.alloc = resource_alloc; } - if (pdsch_cfg.zp_csi_rs_res_to_add_mod_list_present) { + if (pdsch_cfg.zp_csi_rs_res_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < pdsch_cfg.zp_csi_rs_res_to_add_mod_list.size(); i++) { srsran_csi_rs_zp_resource_t zp_csi_rs_resource; if (make_phy_zp_csi_rs_resource(pdsch_cfg.zp_csi_rs_res_to_add_mod_list[i], &zp_csi_rs_resource) == true) { @@ -1086,7 +1080,7 @@ bool rrc_nr::apply_sp_cell_init_dl_pdsch(const asn1::rrc_nr::pdsch_cfg_s& pdsch_ if (pdsch_cfg.p_zp_csi_rs_res_set_present) { // check if resources have been processed - if (not pdsch_cfg.zp_csi_rs_res_to_add_mod_list_present) { + if (pdsch_cfg.zp_csi_rs_res_to_add_mod_list.size() == 0) { logger.warning("Can't build ZP-CSI config, option zp_csi_rs_res_to_add_mod_list not present"); return false; } @@ -1140,43 +1134,37 @@ bool rrc_nr::apply_res_csi_report_cfg(const asn1::rrc_nr::csi_report_cfg_s& csi_ bool rrc_nr::apply_csi_meas_cfg(const asn1::rrc_nr::csi_meas_cfg_s& csi_meas_cfg) { - if (csi_meas_cfg.csi_report_cfg_to_add_mod_list_present) { - for (uint32_t i = 0; i < csi_meas_cfg.csi_report_cfg_to_add_mod_list.size(); i++) { - if (apply_res_csi_report_cfg(csi_meas_cfg.csi_report_cfg_to_add_mod_list[i]) == false) { - return false; - } + for (uint32_t i = 0; i < csi_meas_cfg.csi_report_cfg_to_add_mod_list.size(); i++) { + if (apply_res_csi_report_cfg(csi_meas_cfg.csi_report_cfg_to_add_mod_list[i]) == false) { + return false; } } - if (csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list_present) { - for (uint32_t i = 0; i < csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list.size(); i++) { - srsran_csi_rs_nzp_resource_t csi_rs_nzp_resource; - if (make_phy_nzp_csi_rs_resource(csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list[i], &csi_rs_nzp_resource) == true) { - // temporally store csi_rs_zp_res - csi_rs_nzp_res[csi_rs_nzp_resource.id] = csi_rs_nzp_resource; - } else { - logger.warning("Warning while building phy_nzp_csi_rs resource"); - return false; - } + for (uint32_t i = 0; i < csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list.size(); i++) { + srsran_csi_rs_nzp_resource_t csi_rs_nzp_resource; + if (make_phy_nzp_csi_rs_resource(csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list[i], &csi_rs_nzp_resource) == true) { + // temporally store csi_rs_zp_res + csi_rs_nzp_res[csi_rs_nzp_resource.id] = csi_rs_nzp_resource; + } else { + logger.warning("Warning while building phy_nzp_csi_rs resource"); + return false; } } - if (csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list_present) { - for (uint32_t i = 0; i < csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list.size(); i++) { - uint8_t set_id = csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list[i].nzp_csi_res_set_id; - for (uint32_t j = 0; j < csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list[i].nzp_csi_rs_res.size(); j++) { - uint8_t res = csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list[i].nzp_csi_rs_res[j]; - // use temporally stored values to assign - if (csi_rs_nzp_res.find(res) == csi_rs_nzp_res.end()) { - logger.warning("Can not find nzp_csi_rs_res in temporally stored csi_rs_nzp_res"); - return false; - } - phy_cfg.pdsch.nzp_csi_rs_sets[set_id].data[j] = csi_rs_nzp_res[res]; - phy_cfg.pdsch.nzp_csi_rs_sets[set_id].count += 1; - } - if (csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list[i].trs_info_present) { - phy_cfg.pdsch.nzp_csi_rs_sets[set_id].trs_info = true; + for (uint32_t i = 0; i < csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list.size(); i++) { + uint8_t set_id = csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list[i].nzp_csi_res_set_id; + for (uint32_t j = 0; j < csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list[i].nzp_csi_rs_res.size(); j++) { + uint8_t res = csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list[i].nzp_csi_rs_res[j]; + // use temporally stored values to assign + if (csi_rs_nzp_res.find(res) == csi_rs_nzp_res.end()) { + logger.warning("Can not find nzp_csi_rs_res in temporally stored csi_rs_nzp_res"); + return false; } + phy_cfg.pdsch.nzp_csi_rs_sets[set_id].data[j] = csi_rs_nzp_res[res]; + phy_cfg.pdsch.nzp_csi_rs_sets[set_id].count += 1; + } + if (csi_meas_cfg.nzp_csi_rs_res_set_to_add_mod_list[i].trs_info_present) { + phy_cfg.pdsch.nzp_csi_rs_sets[set_id].trs_info = true; } } @@ -1248,7 +1236,7 @@ bool rrc_nr::apply_dl_common_cfg(const asn1::rrc_nr::dl_cfg_common_s& dl_cfg_com logger.warning("Option common_ctrl_res_set not present"); return false; } - if (pdcch_cfg_common.common_search_space_list_present) { + if (pdcch_cfg_common.common_search_space_list.size() > 0) { for (uint32_t i = 0; i < pdcch_cfg_common.common_search_space_list.size(); i++) { srsran_search_space_t search_space; if (make_phy_search_space_cfg(pdcch_cfg_common.common_search_space_list[i], &search_space) == true) { @@ -1288,7 +1276,7 @@ bool rrc_nr::apply_dl_common_cfg(const asn1::rrc_nr::dl_cfg_common_s& dl_cfg_com if (dl_cfg_common.init_dl_bwp.pdsch_cfg_common_present) { if (dl_cfg_common.init_dl_bwp.pdsch_cfg_common.type() == setup_release_c::types::setup) { pdsch_cfg_common_s pdsch_cfg_common = dl_cfg_common.init_dl_bwp.pdsch_cfg_common.setup(); - if (pdsch_cfg_common.pdsch_time_domain_alloc_list_present) { + if (pdsch_cfg_common.pdsch_time_domain_alloc_list.size() > 0) { for (uint32_t i = 0; i < pdsch_cfg_common.pdsch_time_domain_alloc_list.size(); i++) { srsran_sch_time_ra_t common_time_ra; if (make_phy_common_time_ra(pdsch_cfg_common.pdsch_time_domain_alloc_list[i], &common_time_ra) == true) { @@ -1350,7 +1338,7 @@ bool rrc_nr::apply_ul_common_cfg(const asn1::rrc_nr::ul_cfg_common_s& ul_cfg_com } if (ul_cfg_common.init_ul_bwp.pusch_cfg_common_present) { if (ul_cfg_common.init_ul_bwp.pusch_cfg_common.type() == setup_release_c::types_opts::setup) { - if (ul_cfg_common.init_ul_bwp.pusch_cfg_common.setup().pusch_time_domain_alloc_list_present) { + if (ul_cfg_common.init_ul_bwp.pusch_cfg_common.setup().pusch_time_domain_alloc_list.size() > 0) { for (uint32_t i = 0; i < ul_cfg_common.init_ul_bwp.pusch_cfg_common.setup().pusch_time_domain_alloc_list.size(); i++) { @@ -1410,7 +1398,7 @@ bool rrc_nr::apply_sp_cell_ded_ul_pucch(const asn1::rrc_nr::pucch_cfg_s& pucch_c } // now look up resource and assign into internal struct - if (pucch_cfg.res_to_add_mod_list_present) { + if (pucch_cfg.res_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < pucch_cfg.res_to_add_mod_list.size(); i++) { uint32_t res_id = pucch_cfg.res_to_add_mod_list[i].pucch_res_id; pucch_res_list.insert(res_id, {}); @@ -1426,7 +1414,7 @@ bool rrc_nr::apply_sp_cell_ded_ul_pucch(const asn1::rrc_nr::pucch_cfg_s& pucch_c // Check first all resource lists and phy_cfg.pucch.enabled = true; - if (pucch_cfg.res_set_to_add_mod_list_present) { + if (pucch_cfg.res_set_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < pucch_cfg.res_set_to_add_mod_list.size(); i++) { uint32_t set_id = pucch_cfg.res_set_to_add_mod_list[i].pucch_res_set_id; phy_cfg.pucch.sets[set_id].nof_resources = pucch_cfg.res_set_to_add_mod_list[i].res_list.size(); @@ -1442,7 +1430,7 @@ bool rrc_nr::apply_sp_cell_ded_ul_pucch(const asn1::rrc_nr::pucch_cfg_s& pucch_c } } - if (pucch_cfg.sched_request_res_to_add_mod_list_present) { + if (pucch_cfg.sched_request_res_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < pucch_cfg.sched_request_res_to_add_mod_list.size(); i++) { uint32_t sr_res_id = pucch_cfg.sched_request_res_to_add_mod_list[i].sched_request_res_id; srsran_pucch_nr_sr_resource_t srsran_pucch_nr_sr_resource; @@ -1476,7 +1464,7 @@ bool rrc_nr::apply_sp_cell_ded_ul_pucch(const asn1::rrc_nr::pucch_cfg_s& pucch_c return false; } - if (pucch_cfg.dl_data_to_ul_ack_present) { + if (pucch_cfg.dl_data_to_ul_ack.size() > 0) { for (uint32_t i = 0; i < pucch_cfg.dl_data_to_ul_ack.size(); i++) { phy_cfg.harq_ack.dl_data_to_ul_ack[i] = pucch_cfg.dl_data_to_ul_ack[i]; } @@ -1774,7 +1762,7 @@ bool rrc_nr::apply_cell_group_cfg(const cell_group_cfg_s& cell_group_cfg) bool rrc_nr::update_cell_group_cfg(const cell_group_cfg_s& cell_group_cfg) { - if (cell_group_cfg.rlc_bearer_to_add_mod_list_present) { + if (cell_group_cfg.rlc_bearer_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < cell_group_cfg.rlc_bearer_to_add_mod_list.size(); i++) { if (apply_rlc_add_mod(cell_group_cfg.rlc_bearer_to_add_mod_list[i]) == false) { return false; @@ -1912,14 +1900,14 @@ bool rrc_nr::apply_security_cfg(const security_cfg_s& security_cfg) bool rrc_nr::apply_radio_bearer_cfg(const radio_bearer_cfg_s& radio_bearer_cfg) { - if (radio_bearer_cfg.drb_to_add_mod_list_present) { + if (radio_bearer_cfg.drb_to_add_mod_list.size() > 0) { for (uint32_t i = 0; i < radio_bearer_cfg.drb_to_add_mod_list.size(); i++) { if (apply_drb_add_mod(radio_bearer_cfg.drb_to_add_mod_list[i]) == false) { return false; } } } - if (radio_bearer_cfg.drb_to_release_list_present) { + if (radio_bearer_cfg.drb_to_release_list.size() > 0) { for (uint32_t i = 0; i < radio_bearer_cfg.drb_to_release_list.size(); i++) { if (apply_drb_release(radio_bearer_cfg.drb_to_release_list[i]) == false) { return false; diff --git a/srsue/src/stack/rrc_nr/rrc_nr_procedures.cc b/srsue/src/stack/rrc_nr/rrc_nr_procedures.cc index 4780d2508..5b87f0636 100644 --- a/srsue/src/stack/rrc_nr/rrc_nr_procedures.cc +++ b/srsue/src/stack/rrc_nr/rrc_nr_procedures.cc @@ -38,7 +38,7 @@ proc_outcome_t rrc_nr::connection_reconf_no_ho_proc::init(const reconf_initiator rrc_nr_reconf.to_json(js); Debug("RRC NR Reconfiguration: %s", js.to_string().c_str()); - if (rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group_present) { + if (rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group.size() > 0) { if (rrc_nr_reconf.crit_exts.type() != asn1::rrc_nr::rrc_recfg_s::crit_exts_c_::types::rrc_recfg) { Error("Reconfiguration does not contain Secondary Cell Group Config."); return proc_outcome_t::error; @@ -71,7 +71,7 @@ proc_outcome_t rrc_nr::connection_reconf_no_ho_proc::init(const reconf_initiator } } - if (rrc_nr_reconf.crit_exts.rrc_recfg().non_crit_ext.master_cell_group_present) { + if (rrc_nr_reconf.crit_exts.rrc_recfg().non_crit_ext.master_cell_group.size() > 0) { cbit_ref bref1(rrc_nr_reconf.crit_exts.rrc_recfg().non_crit_ext.master_cell_group.data(), rrc_nr_reconf.crit_exts.rrc_recfg().non_crit_ext.master_cell_group.size()); @@ -91,7 +91,7 @@ proc_outcome_t rrc_nr::connection_reconf_no_ho_proc::init(const reconf_initiator } } - if (rrc_nr_reconf.crit_exts.rrc_recfg().non_crit_ext.ded_nas_msg_list_present) { + if (rrc_nr_reconf.crit_exts.rrc_recfg().non_crit_ext.ded_nas_msg_list.size() > 0) { srsran::unique_byte_buffer_t nas_sdu; for (uint32_t i = 0; i < rrc_nr_reconf.crit_exts.rrc_recfg().non_crit_ext.ded_nas_msg_list.size(); ++i) { nas_sdu = srsran::make_byte_buffer(); diff --git a/srsue/src/stack/rrc_nr/test/ue_rrc_nr_test.cc b/srsue/src/stack/rrc_nr/test/ue_rrc_nr_test.cc index 328d0ae90..91df50309 100644 --- a/srsue/src/stack/rrc_nr/test/ue_rrc_nr_test.cc +++ b/srsue/src/stack/rrc_nr/test/ue_rrc_nr_test.cc @@ -231,9 +231,8 @@ int rrc_nsa_reconfig_tdd_test() asn1::rrc_nr::rrc_recfg_s secondary_cell_group_r15; TESTASSERT(secondary_cell_group_r15.unpack(bref0) == asn1::SRSASN_SUCCESS); - TESTASSERT(secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group_present); + TESTASSERT(secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group.size() > 0); - rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group_present = true; rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group = secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group; @@ -331,9 +330,8 @@ int rrc_nsa_reconfig_fdd_test() asn1::rrc_nr::rrc_recfg_s secondary_cell_group_r15; TESTASSERT(secondary_cell_group_r15.unpack(bref0) == asn1::SRSASN_SUCCESS); - TESTASSERT(secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group_present); + TESTASSERT(secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group.size() > 0); - rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group_present = true; rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group = secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group;