asn1: remove presence flag for lists and octet strings, as the size of the latter implicitly tell if the asn1 field is present

master
Francisco 3 years ago committed by Francisco Paisana
parent 65255ecb4e
commit 3c25b6cb24

@ -945,7 +945,6 @@ struct crit_diagnostics_s {
bool proc_code_present = false; bool proc_code_present = false;
bool trigger_msg_present = false; bool trigger_msg_present = false;
bool proc_crit_present = false; bool proc_crit_present = false;
bool ies_crit_diagnostics_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
uint16_t proc_code = 0; uint16_t proc_code = 0;
trigger_msg_e trigger_msg; trigger_msg_e trigger_msg;
@ -1951,9 +1950,6 @@ using area_of_interest_ext_ies_container = protocol_ext_container_empty_l;
// AreaOfInterest ::= SEQUENCE // AreaOfInterest ::= SEQUENCE
struct area_of_interest_s { struct area_of_interest_s {
bool ext = false; 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 ie_exts_present = false;
area_of_interest_tai_list_l area_of_interest_tai_list; 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_cell_list_l area_of_interest_cell_list;
@ -3185,7 +3181,6 @@ struct expected_ue_behaviour_s {
bool expected_ue_activity_behaviour_present = false; bool expected_ue_activity_behaviour_present = false;
bool expected_ho_interv_present = false; bool expected_ho_interv_present = false;
bool expected_ue_mob_present = false; bool expected_ue_mob_present = false;
bool expected_ue_moving_trajectory_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
expected_ue_activity_behaviour_s expected_ue_activity_behaviour; expected_ue_activity_behaviour_s expected_ue_activity_behaviour;
expected_ho_interv_e expected_ho_interv; expected_ho_interv_e expected_ho_interv;
@ -3699,8 +3694,6 @@ using service_area_info_item_ext_ies_container = protocol_ext_container_empty_l;
// ServiceAreaInformation-Item ::= SEQUENCE // ServiceAreaInformation-Item ::= SEQUENCE
struct service_area_info_item_s { struct service_area_info_item_s {
bool ext = false; bool ext = false;
bool allowed_tacs_present = false;
bool not_allowed_tacs_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
fixed_octstring<3, true> plmn_id; fixed_octstring<3, true> plmn_id;
allowed_tacs_l allowed_tacs; allowed_tacs_l allowed_tacs;
@ -3764,11 +3757,6 @@ using ue_aggregate_maximum_bit_rate_ext_ies_o = protocol_ext_empty_o;
// MobilityRestrictionList ::= SEQUENCE // MobilityRestrictionList ::= SEQUENCE
struct mob_restrict_list_s { struct mob_restrict_list_s {
bool ext = false; 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;
fixed_octstring<3, true> serving_plmn; fixed_octstring<3, true> serving_plmn;
equivalent_plmns_l equivalent_plmns; equivalent_plmns_l equivalent_plmns;
rat_restricts_l rat_restricts; 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 { struct xn_ext_tla_item_s {
bool ext = false; bool ext = false;
bool ipsec_tla_present = false; bool ipsec_tla_present = false;
bool gtp_tlas_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
bounded_bitstring<1, 160, true, true> ipsec_tla; bounded_bitstring<1, 160, true, true> ipsec_tla;
xn_gtp_tlas_l gtp_tlas; xn_gtp_tlas_l gtp_tlas;
@ -4006,7 +3993,6 @@ using xn_tnl_cfg_info_ext_ies_container = protocol_ext_container_empty_l;
// XnTNLConfigurationInfo ::= SEQUENCE // XnTNLConfigurationInfo ::= SEQUENCE
struct xn_tnl_cfg_info_s { struct xn_tnl_cfg_info_s {
bool ext = false; bool ext = false;
bool xn_extended_transport_layer_addresses_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
xn_tlas_l xn_transport_layer_addresses; xn_tlas_l xn_transport_layer_addresses;
xn_ext_tlas_l xn_extended_transport_layer_addresses; xn_ext_tlas_l xn_extended_transport_layer_addresses;
@ -5042,9 +5028,6 @@ using qos_flow_to_be_forwarded_list_l = dyn_array<qos_flow_to_be_forwarded_item_
struct ho_cmd_transfer_s { struct ho_cmd_transfer_s {
bool ext = false; bool ext = false;
bool dlforwarding_up_tnl_info_present = false; bool dlforwarding_up_tnl_info_present = false;
bool qos_flow_to_be_forwarded_list_present = false;
bool data_forwarding_resp_drb_list_present = false;
bool ie_exts_present = false;
up_transport_layer_info_c dlforwarding_up_tnl_info; up_transport_layer_info_c dlforwarding_up_tnl_info;
qos_flow_to_be_forwarded_list_l qos_flow_to_be_forwarded_list; qos_flow_to_be_forwarded_list_l qos_flow_to_be_forwarded_list;
data_forwarding_resp_drb_list_l data_forwarding_resp_drb_list; data_forwarding_resp_drb_list_l data_forwarding_resp_drb_list;
@ -5503,7 +5486,6 @@ using location_report_request_type_ext_ies_container = protocol_ext_container_em
// LocationReportingRequestType ::= SEQUENCE // LocationReportingRequestType ::= SEQUENCE
struct location_report_request_type_s { struct location_report_request_type_s {
bool ext = false; bool ext = false;
bool area_of_interest_list_present = false;
bool location_report_ref_id_to_be_cancelled_present = false; bool location_report_ref_id_to_be_cancelled_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
event_type_e event_type; event_type_e event_type;
@ -5991,9 +5973,6 @@ struct ho_request_ack_transfer_s {
bool ext = false; bool ext = false;
bool dlforwarding_up_tnl_info_present = false; bool dlforwarding_up_tnl_info_present = false;
bool security_result_present = false; bool security_result_present = false;
bool qos_flow_failed_to_setup_list_present = false;
bool data_forwarding_resp_drb_list_present = false;
bool ie_exts_present = false;
up_transport_layer_info_c dl_ngu_up_tnl_info; up_transport_layer_info_c dl_ngu_up_tnl_info;
up_transport_layer_info_c dlforwarding_up_tnl_info; up_transport_layer_info_c dlforwarding_up_tnl_info;
security_result_s security_result; security_result_s security_result;
@ -6425,7 +6404,6 @@ using pdu_session_res_setup_item_cxt_req_ext_ies_container = protocol_ext_contai
// PDUSessionResourceSetupItemCxtReq ::= SEQUENCE // PDUSessionResourceSetupItemCxtReq ::= SEQUENCE
struct pdu_session_res_setup_item_cxt_req_s { struct pdu_session_res_setup_item_cxt_req_s {
bool ext = false; bool ext = false;
bool nas_pdu_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
uint16_t pdu_session_id = 0; uint16_t pdu_session_id = 0;
unbounded_octstring<true> nas_pdu; unbounded_octstring<true> nas_pdu;
@ -6451,8 +6429,6 @@ using ue_radio_cap_for_paging_ext_ies_container = protocol_ext_container_empty_l
// UERadioCapabilityForPaging ::= SEQUENCE // UERadioCapabilityForPaging ::= SEQUENCE
struct ue_radio_cap_for_paging_s { struct ue_radio_cap_for_paging_s {
bool ext = false; 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 ie_exts_present = false;
unbounded_octstring<true> ueradio_cap_for_paging_of_nr; unbounded_octstring<true> ueradio_cap_for_paging_of_nr;
unbounded_octstring<true> ueradio_cap_for_paging_of_eutra; unbounded_octstring<true> ueradio_cap_for_paging_of_eutra;
@ -7271,7 +7247,6 @@ struct pdu_session_res_failed_to_setup_item_su_res_s {
// PDUSessionResourceItemCxtRelCpl ::= SEQUENCE // PDUSessionResourceItemCxtRelCpl ::= SEQUENCE
struct pdu_session_res_item_cxt_rel_cpl_s { struct pdu_session_res_item_cxt_rel_cpl_s {
bool ext = false; bool ext = false;
bool ie_exts_present = false;
uint16_t pdu_session_id = 0; uint16_t pdu_session_id = 0;
protocol_ext_container_l<pdu_session_res_item_cxt_rel_cpl_ext_ies_o> ie_exts; protocol_ext_container_l<pdu_session_res_item_cxt_rel_cpl_ext_ies_o> ie_exts;
// ... // ...
@ -7335,8 +7310,6 @@ struct pdu_session_res_modify_item_mod_ind_s {
// PDUSessionResourceModifyItemModReq ::= SEQUENCE // PDUSessionResourceModifyItemModReq ::= SEQUENCE
struct pdu_session_res_modify_item_mod_req_s { struct pdu_session_res_modify_item_mod_req_s {
bool ext = false; bool ext = false;
bool nas_pdu_present = false;
bool ie_exts_present = false;
uint16_t pdu_session_id = 0; uint16_t pdu_session_id = 0;
unbounded_octstring<true> nas_pdu; unbounded_octstring<true> nas_pdu;
unbounded_octstring<true> pdu_session_res_modify_request_transfer; unbounded_octstring<true> pdu_session_res_modify_request_transfer;
@ -7473,7 +7446,6 @@ using pdu_session_res_setup_item_su_req_ext_ies_container = protocol_ext_contain
// PDUSessionResourceSetupItemSUReq ::= SEQUENCE // PDUSessionResourceSetupItemSUReq ::= SEQUENCE
struct pdu_session_res_setup_item_su_req_s { struct pdu_session_res_setup_item_su_req_s {
bool ext = false; bool ext = false;
bool pdu_session_nas_pdu_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
uint16_t pdu_session_id = 0; uint16_t pdu_session_id = 0;
unbounded_octstring<true> pdu_session_nas_pdu; unbounded_octstring<true> pdu_session_nas_pdu;
@ -12717,7 +12689,6 @@ using pdu_session_res_info_item_ext_ies_container = protocol_ext_container_empty
// PDUSessionResourceInformationItem ::= SEQUENCE // PDUSessionResourceInformationItem ::= SEQUENCE
struct pdu_session_res_info_item_s { struct pdu_session_res_info_item_s {
bool ext = false; bool ext = false;
bool drbs_to_qos_flows_map_list_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
uint16_t pdu_session_id = 0; uint16_t pdu_session_id = 0;
qos_flow_info_list_l qos_flow_info_list; qos_flow_info_list_l qos_flow_info_list;
@ -12787,8 +12758,6 @@ using pdu_session_res_modify_confirm_transfer_ext_ies_container = protocol_ext_c
// PDUSessionResourceModifyConfirmTransfer ::= SEQUENCE // PDUSessionResourceModifyConfirmTransfer ::= SEQUENCE
struct pdu_session_res_modify_confirm_transfer_s { struct pdu_session_res_modify_confirm_transfer_s {
bool ext = false; 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 ie_exts_present = false;
qos_flow_modify_confirm_list_l qos_flow_modify_confirm_list; qos_flow_modify_confirm_list_l qos_flow_modify_confirm_list;
up_transport_layer_info_c ulngu_up_tnl_info; up_transport_layer_info_c ulngu_up_tnl_info;
@ -12897,7 +12866,6 @@ using secondary_ratusage_info_ext_ies_container = protocol_ext_container_empty_l
struct secondary_ratusage_info_s { struct secondary_ratusage_info_s {
bool ext = false; bool ext = false;
bool pdu_session_usage_report_present = false; bool pdu_session_usage_report_present = false;
bool qos_flows_usage_report_list_present = false;
bool ie_ext_present = false; bool ie_ext_present = false;
pdu_session_usage_report_s pdu_session_usage_report; pdu_session_usage_report_s pdu_session_usage_report;
qo_sflows_usage_report_list_l qos_flows_usage_report_list; qo_sflows_usage_report_list_l qos_flows_usage_report_list;
@ -12972,7 +12940,6 @@ struct pdu_session_res_modify_ind_transfer_ext_ies_container {
// PDUSessionResourceModifyIndicationTransfer ::= SEQUENCE // PDUSessionResourceModifyIndicationTransfer ::= SEQUENCE
struct pdu_session_res_modify_ind_transfer_s { struct pdu_session_res_modify_ind_transfer_s {
bool ext = false; bool ext = false;
bool add_dl_qos_flow_per_tnl_info_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
qos_flow_per_tnl_info_s dlqos_flow_per_tnl_info; 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; qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info;
@ -13337,10 +13304,6 @@ struct pdu_session_res_modify_resp_transfer_s {
bool ext = false; bool ext = false;
bool dl_ngu_up_tnl_info_present = false; bool dl_ngu_up_tnl_info_present = false;
bool ul_ngu_up_tnl_info_present = false; bool ul_ngu_up_tnl_info_present = false;
bool qos_flow_add_or_modify_resp_list_present = false;
bool add_dl_qos_flow_per_tnl_info_present = false;
bool qos_flow_failed_to_add_or_modify_list_present = false;
bool ie_exts_present = false;
up_transport_layer_info_c dl_ngu_up_tnl_info; up_transport_layer_info_c dl_ngu_up_tnl_info;
up_transport_layer_info_c ul_ngu_up_tnl_info; up_transport_layer_info_c ul_ngu_up_tnl_info;
qos_flow_add_or_modify_resp_list_l qos_flow_add_or_modify_resp_list; qos_flow_add_or_modify_resp_list_l qos_flow_add_or_modify_resp_list;
@ -13411,7 +13374,6 @@ struct pdu_session_res_notify_released_transfer_ext_ies_o {
// PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE // PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE
struct pdu_session_res_notify_released_transfer_s { struct pdu_session_res_notify_released_transfer_s {
bool ext = false; bool ext = false;
bool ie_exts_present = false;
cause_c cause; cause_c cause;
protocol_ext_container_l<pdu_session_res_notify_released_transfer_ext_ies_o> ie_exts; protocol_ext_container_l<pdu_session_res_notify_released_transfer_ext_ies_o> ie_exts;
// ... // ...
@ -13488,9 +13450,6 @@ using qos_flow_notify_list_l = dyn_array<qos_flow_notify_item_s>;
// PDUSessionResourceNotifyTransfer ::= SEQUENCE // PDUSessionResourceNotifyTransfer ::= SEQUENCE
struct pdu_session_res_notify_transfer_s { struct pdu_session_res_notify_transfer_s {
bool ext = false; bool ext = false;
bool qos_flow_notify_list_present = false;
bool qos_flow_released_list_present = false;
bool ie_exts_present = false;
qos_flow_notify_list_l qos_flow_notify_list; qos_flow_notify_list_l qos_flow_notify_list;
qos_flow_list_with_cause_l qos_flow_released_list; qos_flow_list_with_cause_l qos_flow_released_list;
protocol_ext_container_l<pdu_session_res_notify_transfer_ext_ies_o> ie_exts; protocol_ext_container_l<pdu_session_res_notify_transfer_ext_ies_o> ie_exts;
@ -13556,7 +13515,6 @@ struct pdu_session_res_release_resp_transfer_ext_ies_o {
// PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE // PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE
struct pdu_session_res_release_resp_transfer_s { struct pdu_session_res_release_resp_transfer_s {
bool ext = false; bool ext = false;
bool ie_exts_present = false;
protocol_ext_container_l<pdu_session_res_release_resp_transfer_ext_ies_o> ie_exts; protocol_ext_container_l<pdu_session_res_release_resp_transfer_ext_ies_o> ie_exts;
// ... // ...
@ -13669,7 +13627,6 @@ using qos_flow_setup_request_list_l = dyn_array<qos_flow_setup_request_item_s>;
struct security_ind_s { struct security_ind_s {
bool ext = false; bool ext = false;
bool maximum_integrity_protected_data_rate_ul_present = false; bool maximum_integrity_protected_data_rate_ul_present = false;
bool ie_exts_present = false;
integrity_protection_ind_e integrity_protection_ind; integrity_protection_ind_e integrity_protection_ind;
confidentiality_protection_ind_e confidentiality_protection_ind; confidentiality_protection_ind_e confidentiality_protection_ind;
maximum_integrity_protected_data_rate_e maximum_integrity_protected_data_rate_ul; maximum_integrity_protected_data_rate_e maximum_integrity_protected_data_rate_ul;
@ -13791,9 +13748,7 @@ using pdu_session_res_setup_resp_transfer_ext_ies_container = protocol_ext_conta
// PDUSessionResourceSetupResponseTransfer ::= SEQUENCE // PDUSessionResourceSetupResponseTransfer ::= SEQUENCE
struct pdu_session_res_setup_resp_transfer_s { struct pdu_session_res_setup_resp_transfer_s {
bool ext = false; bool ext = false;
bool add_dl_qos_flow_per_tnl_info_present = false;
bool security_result_present = false; bool security_result_present = false;
bool qos_flow_failed_to_setup_list_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
qos_flow_per_tnl_info_s dlqos_flow_per_tnl_info; 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; qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info;
@ -13866,7 +13821,6 @@ struct path_switch_request_ack_transfer_s {
bool ext = false; bool ext = false;
bool ul_ngu_up_tnl_info_present = false; bool ul_ngu_up_tnl_info_present = false;
bool security_ind_present = false; bool security_ind_present = false;
bool ie_exts_present = false;
up_transport_layer_info_c ul_ngu_up_tnl_info; up_transport_layer_info_c ul_ngu_up_tnl_info;
security_ind_s security_ind; security_ind_s security_ind;
protocol_ext_container_l<path_switch_request_ack_transfer_ext_ies_o> ie_exts; protocol_ext_container_l<path_switch_request_ack_transfer_ext_ies_o> ie_exts;
@ -13984,7 +13938,6 @@ struct path_switch_request_transfer_s {
bool ext = false; bool ext = false;
bool dl_ngu_tnl_info_reused_present = false; bool dl_ngu_tnl_info_reused_present = false;
bool user_plane_security_info_present = false; bool user_plane_security_info_present = false;
bool ie_exts_present = false;
up_transport_layer_info_c dl_ngu_up_tnl_info; up_transport_layer_info_c dl_ngu_up_tnl_info;
dl_ngu_tnl_info_reused_e dl_ngu_tnl_info_reused; dl_ngu_tnl_info_reused_e dl_ngu_tnl_info_reused;
user_plane_security_info_s user_plane_security_info; user_plane_security_info_s user_plane_security_info;
@ -14089,8 +14042,6 @@ using source_ngran_node_to_target_ngran_node_transparent_container_ext_ies_conta
// SourceNGRANNode-ToTargetNGRANNode-TransparentContainer ::= SEQUENCE // SourceNGRANNode-ToTargetNGRANNode-TransparentContainer ::= SEQUENCE
struct source_ngran_node_to_target_ngran_node_transparent_container_s { struct source_ngran_node_to_target_ngran_node_transparent_container_s {
bool ext = false; bool ext = false;
bool pdu_session_res_info_list_present = false;
bool erab_info_list_present = false;
bool idx_to_rfsp_present = false; bool idx_to_rfsp_present = false;
bool ie_exts_present = false; bool ie_exts_present = false;
unbounded_octstring<true> rrc_container; unbounded_octstring<true> rrc_container;

@ -169,7 +169,7 @@ struct bcch_dl_sch_msg_mbms_s {
}; };
// ThresholdEUTRA-v1250 ::= INTEGER (0..97) // ThresholdEUTRA-v1250 ::= INTEGER (0..97)
using thres_eutra_v1250 = uint8_t; using thres_eutra_v1250 = integer<uint8_t, 0, 97>;
// MBMS-SessionInfo-r9 ::= SEQUENCE // MBMS-SessionInfo-r9 ::= SEQUENCE
struct mbms_session_info_r9_s { struct mbms_session_info_r9_s {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1534,7 +1534,6 @@ bool make_pdsch_cfg_from_serv_cell(const asn1::rrc_nr::serving_cell_cfg_s& serv_
auto& setup = serv_cell.csi_meas_cfg.setup(); auto& setup = serv_cell.csi_meas_cfg.setup();
// Configure NZP-CSI // 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) { 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]; 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.trs_info = nzp_set.trs_info_present;
@ -1548,7 +1547,6 @@ bool make_pdsch_cfg_from_serv_cell(const asn1::rrc_nr::serving_cell_cfg_s& serv_
} }
} }
} }
}
if (serv_cell.init_dl_bwp.pdsch_cfg_present and serv_cell.init_dl_bwp.pdsch_cfg.is_setup()) { if (serv_cell.init_dl_bwp.pdsch_cfg_present and serv_cell.init_dl_bwp.pdsch_cfg.is_setup()) {
const auto& setup = serv_cell.init_dl_bwp.pdsch_cfg.setup(); const auto& setup = serv_cell.init_dl_bwp.pdsch_cfg.setup();
@ -1574,7 +1572,6 @@ 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(); auto& setup = serv_cell.csi_meas_cfg.setup();
// Configure CSI-Report // 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) { 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]; 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])) { if (not make_phy_csi_report(csi_rep, &csi_hl->reports[i])) {
@ -1582,7 +1579,6 @@ bool make_csi_cfg_from_serv_cell(const asn1::rrc_nr::serving_cell_cfg_s& serv_ce
} }
} }
} }
}
return true; return true;
} }
@ -1601,19 +1597,15 @@ 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) 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) { 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; pdcch->coreset_present[coreset.ctrl_res_set_id] = true;
make_phy_coreset_cfg(coreset, &pdcch->coreset[coreset.ctrl_res_set_id]); 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) { for (const search_space_s& ss : pdcch_cfg.search_spaces_to_add_mod_list) {
pdcch->search_space_present[ss.search_space_id] = true; pdcch->search_space_present[ss.search_space_id] = true;
make_phy_search_space_cfg(ss, &pdcch->search_space[ss.search_space_id]); make_phy_search_space_cfg(ss, &pdcch->search_space[ss.search_space_id]);
} }
}
return true; return true;
} }
@ -1623,7 +1615,6 @@ 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; 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]); 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) { for (const search_space_s& ss : pdcch_cfg.common_search_space_list) {
pdcch->search_space_present[ss.search_space_id] = true; pdcch->search_space_present[ss.search_space_id] = true;
make_phy_search_space_cfg(ss, &pdcch->search_space[ss.search_space_id]); make_phy_search_space_cfg(ss, &pdcch->search_space[ss.search_space_id]);
@ -1632,7 +1623,6 @@ void fill_phy_pdcch_cfg_common(const asn1::rrc_nr::pdcch_cfg_common_s& pdcch_cfg
pdcch->ra_search_space = pdcch->search_space[ss.search_space_id]; pdcch->ra_search_space = pdcch->search_space[ss.search_space_id];
} }
} }
}
} }
void fill_phy_pucch_cfg_common(const asn1::rrc_nr::pucch_cfg_common_s& pucch_cfg, srsran_pucch_nr_common_cfg_t* pucch) void fill_phy_pucch_cfg_common(const asn1::rrc_nr::pucch_cfg_common_s& pucch_cfg, srsran_pucch_nr_common_cfg_t* pucch)

@ -679,7 +679,6 @@ int fill_phy_pdsch_cfg_common_test()
// ] // ]
asn1::rrc_nr::pdsch_cfg_common_s pdsch_cfg = {}; asn1::rrc_nr::pdsch_cfg_common_s pdsch_cfg = {};
pdsch_cfg.pdsch_time_domain_alloc_list_present = true;
pdsch_cfg.pdsch_time_domain_alloc_list.resize(1); pdsch_cfg.pdsch_time_domain_alloc_list.resize(1);
pdsch_cfg.pdsch_time_domain_alloc_list[0].map_type = 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; asn1::rrc_nr::pdsch_time_domain_res_alloc_s::map_type_opts::options::type_a;
@ -735,7 +734,6 @@ int fill_phy_pusch_cfg_common_test()
// "p0-NominalWithGrant": -76 // "p0-NominalWithGrant": -76
asn1::rrc_nr::pusch_cfg_common_s pusch_cfg = {}; asn1::rrc_nr::pusch_cfg_common_s pusch_cfg = {};
pusch_cfg.pusch_time_domain_alloc_list_present = true;
pusch_cfg.pusch_time_domain_alloc_list.resize(1); pusch_cfg.pusch_time_domain_alloc_list.resize(1);
pusch_cfg.pusch_time_domain_alloc_list[0].map_type = 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; 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; 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.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.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_present = true;
serv_cell_cfg.ul_cfg_common.freq_info_ul.freq_band_list[0].freq_band_ind_nr = 3; serv_cell_cfg.ul_cfg_common.freq_info_ul.freq_band_list[0].freq_band_ind_nr = 3;

@ -66,7 +66,6 @@ int test_eutra_nr_capabilities()
band_combination.band_list.push_back(band_param_nr); 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.push_back(band_combination);
mrdc_cap.rf_params_mrdc.supported_band_combination_list_present = true;
mrdc_cap.rf_params_mrdc.ext = 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; 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.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 // rf_params_mrdc supported band combination list v1540
band_combination_list_v1540_l* band_combination_list_v1450 = new band_combination_list_v1540_l(); 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.push_back(feature_set_combination);
mrdc_cap.feature_set_combinations_present = true;
// Pack mrdc_cap // Pack mrdc_cap
uint8_t buffer[1024]; uint8_t buffer[1024];
asn1::bit_ref bref(buffer, sizeof(buffer)); asn1::bit_ref bref(buffer, sizeof(buffer));
@ -209,7 +204,7 @@ int test_ue_rrc_reconfiguration()
#endif #endif
TESTASSERT(rrc_recfg.crit_exts.type() == asn1::rrc_nr::rrc_recfg_s::crit_exts_c_::types::rrc_recfg); 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; cell_group_cfg_s cell_group_cfg;
cbit_ref bref0(rrc_recfg.crit_exts.rrc_recfg().secondary_cell_group.data(), 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()); srslog::fetch_basic_logger("RRC").info("RRC Secondary Cell Group: \n %s", jw1.to_string().c_str());
#endif #endif
TESTASSERT(cell_group_cfg.cell_group_id == 1); 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.rlc_bearer_to_add_mod_list.size() == 1);
TESTASSERT(cell_group_cfg.mac_cell_group_cfg_present == true); TESTASSERT(cell_group_cfg.mac_cell_group_cfg_present == true);
TESTASSERT(cell_group_cfg.phys_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); radio_bearer_cfg.to_json(jw);
srslog::fetch_basic_logger("RRC").info("RRC Bearer CFG Message: \n %s", jw.to_string().c_str()); srslog::fetch_basic_logger("RRC").info("RRC Bearer CFG Message: \n %s", jw.to_string().c_str());
#endif #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.drb_to_add_mod_list.size() == 1);
TESTASSERT(radio_bearer_cfg.security_cfg_present == true); TESTASSERT(radio_bearer_cfg.security_cfg_present == true);
TESTASSERT(radio_bearer_cfg.security_cfg.security_algorithm_cfg_present == true); TESTASSERT(radio_bearer_cfg.security_cfg.security_algorithm_cfg_present == true);
@ -252,7 +245,6 @@ int test_radio_bearer_config()
rrc_recfg_ies_s& recfg_ies = reconfig.crit_exts.set_rrc_recfg(); rrc_recfg_ies_s& recfg_ies = reconfig.crit_exts.set_rrc_recfg();
recfg_ies.radio_bearer_cfg_present = true; recfg_ies.radio_bearer_cfg_present = true;
recfg_ies.radio_bearer_cfg.drb_to_add_mod_list_present = true;
recfg_ies.radio_bearer_cfg.drb_to_add_mod_list.resize(1); 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]; 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; cell_group_cfg_s cell_group_cfg_pack;
// RLC for DRB1 // 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); 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]; auto& rlc = cell_group_cfg_pack.rlc_bearer_to_add_mod_list[0];
rlc.lc_ch_id = 1; rlc.lc_ch_id = 1;
@ -421,7 +412,6 @@ int test_cell_group_config_tdd()
cell_group_cfg_pack.mac_cell_group_cfg_present = true; cell_group_cfg_pack.mac_cell_group_cfg_present = true;
auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; 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_present = true;
mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list_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.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].sched_request_id = 0;
mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max = 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; 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; 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.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.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].ctrl_res_set_id = 2;
pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list[0].freq_domain_res.from_number( 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; asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle;
// search spaces // 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.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].search_space_id = 2;
pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list[0].ctrl_res_set_id_present = true; 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_present = true;
pdsch_cfg_dedicated.setup().dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position = 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; 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.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].tci_state_id = 0;
pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list[0].qcl_type1.ref_sig.set_ssb(); 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; asn1::rrc_nr::pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts::wideband;
// ZP-CSI // 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.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].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(); 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; ul_config.init_ul_bwp.pucch_cfg.setup().format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25;
// SR resources // 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); 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]; 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; 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 sr_res1.res = 0; // only PUCCH resource we have defined so far
// DL data // 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.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[0] = 8;
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[1] = 7; 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; ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[4] = 4;
// PUCCH resources (only one format1 for the moment) // 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); 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]; auto& pucch_res1 = ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list[0];
pucch_res1.pucch_res_id = 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(); cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.set_setup();
// nzp-CSI-RS Resource // 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); 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 = 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]; 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_res.qcl_info_periodic_csi_rs = 0;
// nzp-CSI-RS ResourceSet // 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); 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 = 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]; 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 // Skip TRS info
// CSI report 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); 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 = 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]; 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; asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle;
// common search space list // 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.resize(1);
pdcch_cfg_common.setup().common_search_space_list[0].search_space_id = 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; 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(); .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 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.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.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].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; 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 = 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; 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.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.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_present = true;
pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2 = 4; 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; cell_group_cfg_s cell_group_cfg_pack;
// RLC for DRB1 // 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); 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]; auto& rlc = cell_group_cfg_pack.rlc_bearer_to_add_mod_list[0];
rlc.lc_ch_id = 4; rlc.lc_ch_id = 4;
@ -1038,7 +1013,6 @@ int test_cell_group_config_fdd()
cell_group_cfg_pack.mac_cell_group_cfg_present = true; cell_group_cfg_pack.mac_cell_group_cfg_present = true;
auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; 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_present = true;
mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list_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.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].sched_request_id = 0;
mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max = 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; 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; 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.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.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].ctrl_res_set_id = 2;
pdcch_cfg_dedicated.setup().ctrl_res_set_to_add_mod_list[0].freq_domain_res.from_number( 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; asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle;
// search spaces // 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.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].search_space_id = 2;
pdcch_cfg_dedicated.setup().search_spaces_to_add_mod_list[0].ctrl_res_set_id_present = true; 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_present = true;
pdsch_cfg_dedicated.setup().dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position = 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; 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.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].tci_state_id = 0;
pdsch_cfg_dedicated.setup().tci_states_to_add_mod_list[0].qcl_type1.ref_sig.set_ssb(); 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; asn1::rrc_nr::pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts::wideband;
// ZP-CSI // 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.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].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(); 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; ul_config.init_ul_bwp.pucch_cfg.setup().format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25;
// SR resources // 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); 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]; 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; sr_res1.sched_request_res_id = 1;
@ -1171,13 +1140,11 @@ int test_cell_group_config_fdd()
sr_res1.res = 16; sr_res1.res = 16;
// DL data // 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.resize(1);
ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[0] = 4; ul_config.init_ul_bwp.pucch_cfg.setup().dl_data_to_ul_ack[0] = 4;
// TODO? // TODO?
// PUCCH resources (only one format1 for the moment) // 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); 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]; auto& pucch_res1 = ul_config.init_ul_bwp.pucch_cfg.setup().res_to_add_mod_list[0];
pucch_res1.pucch_res_id = 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(); cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.set_setup();
// nzp-CSI-RS Resource // 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); 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(); auto& nzp_csi_res = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup();
// item 0 // 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_res.nzp_csi_rs_res_to_add_mod_list[4].qcl_info_periodic_csi_rs = 0;
// nzp-CSI-RS ResourceSet // 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); 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(); auto& nzp_csi_res_set = cell_group_cfg_pack.sp_cell_cfg.sp_cell_cfg_ded.csi_meas_cfg.setup();
// item 0 // item 0
@ -1373,7 +1337,6 @@ int test_cell_group_config_fdd()
// TODO: add csi resource config // TODO: add csi resource config
// CSI report 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); 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 = 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]; 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; asn1::rrc_nr::ctrl_res_set_s::precoder_granularity_opts::same_as_reg_bundle;
// common search space list // 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.resize(1);
pdcch_cfg_common.setup().common_search_space_list[0].search_space_id = 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; 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(); .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 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.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.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].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; 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 = 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; 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.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.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_present = true;
pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2 = 4; pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2 = 4;

@ -166,7 +166,7 @@ proc_outcome_t ngap_ue_pdu_session_res_setup_proc::init(const asn1::ngap::pdu_se
addr_in.to_string()); addr_in.to_string());
// QoS parameter mapping in config in LTE enb // 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) == if (rrc->establish_rrc_bearer(ue_ctxt->rnti, su_req.pdu_session_id, su_req.pdu_session_nas_pdu, lcid) ==
SRSRAN_SUCCESS) { SRSRAN_SUCCESS) {
parent->send_pdu_session_resource_setup_response(su_req.pdu_session_id, teid_in, addr_in); parent->send_pdu_session_resource_setup_response(su_req.pdu_session_id, teid_in, addr_in);

@ -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) int fill_csi_report_from_enb_cfg(const rrc_nr_cfg_t& cfg, csi_meas_cfg_s& csi_meas_cfg)
{ {
if (cfg.is_standalone) { 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); 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]; 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; csi_report.report_cfg_type.periodic().report_slot_cfg.slots80() = 7;
} }
} else { } 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); 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]; 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) 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) { 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) { if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) {
csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list.resize(5); 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; 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 // 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) { 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); 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; 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 // Skip TRS info
} }
} else { } 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) { if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) {
csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list.resize(5); 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; 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 // 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) { 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); 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; 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) 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) { 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.resize(3);
csi_meas_cfg.csi_res_cfg_to_add_mod_list[0].csi_res_cfg_id = 0; 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(); 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); 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].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; 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; 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(); 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); 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].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; 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) { if (cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) {
// csi-IM-ResourceToAddModList // 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); 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]; 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_res.periodicity_and_offset.slots80() = 1;
// csi-IM-ResourceSetToAddModList // 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); 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]; 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 // Add UE-specific SearchSpace
pdcch_cfg.search_spaces_to_add_mod_list_present = true;
pdcch_cfg.search_spaces_to_add_mod_list.push_back({}); 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()); set_search_space_from_phy_cfg(search_space_cfg, pdcch_cfg.search_spaces_to_add_mod_list.back());
// Add CORESET associated with SearchSpace // Add CORESET associated with SearchSpace
uint32_t coreset_id = search_space_cfg.coreset_id; uint32_t coreset_id = search_space_cfg.coreset_id;
auto& coreset_cfg = cell_cfg.phy_cell.pdcch.coreset[coreset_id]; auto& coreset_cfg = cell_cfg.phy_cell.pdcch.coreset[coreset_id];
pdcch_cfg.ctrl_res_set_to_add_mod_list_present = true;
pdcch_cfg.ctrl_res_set_to_add_mod_list.push_back({}); 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()); 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_present = true;
out.dmrs_dl_for_pdsch_map_type_a.setup().dmrs_add_position = dmrs_dl_cfg_s::dmrs_add_position_opts::pos1; 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.resize(1);
out.tci_states_to_add_mod_list[0].tci_state_id = 0; 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(); 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; pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts::wideband;
// ZP-CSI // 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.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].zp_csi_rs_res_id = 0;
out.zp_csi_rs_res_to_add_mod_list[0].res_map.freq_domain_alloc.set_row4(); 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) 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 // Make 2 PUCCH resource sets
out.res_set_to_add_mod_list_present = true;
out.res_set_to_add_mod_list.resize(2); out.res_set_to_add_mod_list.resize(2);
// Make PUCCH resource set for 1-2 bit // 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 // Make 3 possible resources
out.res_to_add_mod_list_present = true;
out.res_to_add_mod_list.resize(18); out.res_to_add_mod_list.resize(18);
uint32_t j = 0, j2 = 0; uint32_t j = 0, j2 = 0;
for (uint32_t i = 0; i < out.res_to_add_mod_list.size(); ++i) { 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; out.format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25;
// SR resources // SR resources
out.sched_request_res_to_add_mod_list_present = true;
out.sched_request_res_to_add_mod_list.resize(1); out.sched_request_res_to_add_mod_list.resize(1);
auto& sr_res1 = out.sched_request_res_to_add_mod_list[0]; auto& sr_res1 = out.sched_request_res_to_add_mod_list[0];
sr_res1.sched_request_res_id = 1; 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; sr_res1.res = 2;
// DL data // DL data
out.dl_data_to_ul_ack_present = true;
if (cfg.cell_list[cc].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { 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.resize(1);
out.dl_data_to_ul_ack[0] = 4; 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; 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); 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({}); 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], set_search_space_from_phy_cfg(cfg.cell_list[cc].phy_cell.pdcch.search_space[1],
pdcch_cfg_common.common_search_space_list.back()); 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); 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.freq_band_list.push_back(cell_cfg.band);
freq_info_ul.absolute_freq_point_a_present = true; freq_info_ul.absolute_freq_point_a_present = true;
freq_info_ul.absolute_freq_point_a = cell_cfg.ul_absolute_freq_point_a; freq_info_ul.absolute_freq_point_a = cell_cfg.ul_absolute_freq_point_a;
@ -1028,14 +1007,12 @@ void fill_drb(const rrc_nr_cfg_t& cfg, uint32_t lcid, srsran::nr_drb drb_id, asn
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) 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.cell_group_id = 0;
out.rlc_bearer_to_add_mod_list_present = true;
out.rlc_bearer_to_add_mod_list.resize(1); out.rlc_bearer_to_add_mod_list.resize(1);
fill_srb(cfg, srsran::nr_srb::srb1, out.rlc_bearer_to_add_mod_list[0]); fill_srb(cfg, srsran::nr_srb::srb1, out.rlc_bearer_to_add_mod_list[0]);
// mac-CellGroupConfig -- Need M // mac-CellGroupConfig -- Need M
out.mac_cell_group_cfg_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_present = true;
out.mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list_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.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].sched_request_id = 0;
out.mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max.value = out.mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max.value =
@ -1044,7 +1021,6 @@ int fill_master_cell_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, asn1
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.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.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_present = true;
out.mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list_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.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].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; 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_present = true;
cfg.search_space_zero = 0; cfg.search_space_zero = 0;
cfg.common_search_space_list_present = true;
cfg.common_search_space_list.resize(1); 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]); 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) 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.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].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; 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; 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.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_present = true;
cfg.freq_info_ul.freq_band_list[0].freq_band_ind_nr = cell_cfg.band; cfg.freq_info_ul.freq_band_list[0].freq_band_ind_nr = cell_cfg.band;
@ -1209,7 +1182,6 @@ void fill_ul_cfg_common_sib(const rrc_cell_cfg_nr_t& cell_cfg, ul_cfg_common_sib
cfg.init_ul_bwp.pusch_cfg_common_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_cfg_common_s& pusch = cfg.init_ul_bwp.pusch_cfg_common.set_setup();
pusch.pusch_time_domain_alloc_list_present = true;
pusch.pusch_time_domain_alloc_list.resize(1); 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_present = true;
pusch.pusch_time_domain_alloc_list[0].k2 = 4; 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<uint8_t> srbs_to_rem; std::vector<uint8_t> srbs_to_rem;
srsran::compute_cfg_diff( 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); 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 // Compute DRB differences
srsran::compute_cfg_diff(prev_bearers.drb_to_add_mod_list, srsran::compute_cfg_diff(prev_bearers.drb_to_add_mod_list,
next_bearers.drb_to_add_mod_list, next_bearers.drb_to_add_mod_list,
diff.drb_to_add_mod_list, diff.drb_to_add_mod_list,
diff.drb_to_release_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, 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; 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()); 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 // Release DRBs
for (uint8_t drb_id : bearers.drb_to_release_list) { 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.push_back(drb_id);
} }
out.rlc_bearer_to_release_list_present = out.rlc_bearer_to_release_list.size() > 0;
} }
} // namespace srsenb } // namespace srsenb

@ -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) 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) // 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); 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]; auto& rlc_bearer = cell_group_cfg_pack.rlc_bearer_to_add_mod_list[0];
rlc_bearer.lc_ch_id = drb1_lcid; rlc_bearer.lc_ch_id = drb1_lcid;
@ -210,7 +209,6 @@ int rrc_nr::ue::pack_secondary_cell_group_mac_cfg(asn1::rrc_nr::cell_group_cfg_s
cell_group_cfg_pack.mac_cell_group_cfg_present = true; cell_group_cfg_pack.mac_cell_group_cfg_present = true;
auto& mac_cell_group = cell_group_cfg_pack.mac_cell_group_cfg; 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_present = true;
mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list_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.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].sched_request_id = 0;
mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max = mac_cell_group.sched_request_cfg.sched_request_to_add_mod_list[0].sr_trans_max =
@ -221,7 +219,6 @@ int rrc_nr::ue::pack_secondary_cell_group_mac_cfg(asn1::rrc_nr::cell_group_cfg_s
// Skip TAG and PHR config // Skip TAG and PHR config
mac_cell_group.tag_cfg_present = false; mac_cell_group.tag_cfg_present = false;
mac_cell_group.tag_cfg.tag_to_add_mod_list_present = true;
mac_cell_group.tag_cfg.tag_to_add_mod_list.resize(1); 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].tag_id = 0;
mac_cell_group.tag_cfg.tag_to_add_mod_list[0].time_align_timer = time_align_timer_opts::infinity; 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; 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; 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 // add resource to detect RLF
radio_link_monitoring.set_setup().fail_detection_res_to_add_mod_list.resize(1); 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; pucch_cfg.setup().format2.setup().max_code_rate = pucch_max_code_rate_opts::zero_dot25;
// SR resources // 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); 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]; auto& sr_res1 = pucch_cfg.setup().sched_request_res_to_add_mod_list[0];
sr_res1.sched_request_res_id = 1; 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 sr_res1.res = 2; // PUCCH resource for SR
// DL data // DL data
pucch_cfg.setup().dl_data_to_ul_ack_present = true;
if (parent->cfg.cell_list[0].duplex_mode == SRSRAN_DUPLEX_MODE_FDD) { 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.resize(1);
pucch_cfg.setup().dl_data_to_ul_ack[0] = 4; 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; resource_sr.time_domain_occ = 0;
// Make 3 possible resources // Make 3 possible resources
pucch_cfg.setup().res_to_add_mod_list_present = true;
pucch_cfg.setup().res_to_add_mod_list.resize(3); 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)) { 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"); 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 // 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); pucch_cfg.setup().res_set_to_add_mod_list.resize(2);
// Make PUCCH resource set for 1-2 bit // 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 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.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.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].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; 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 = 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; 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.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.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_present = true;
pusch_cfg_common_pack.setup().pusch_time_domain_alloc_list[0].k2 = 4; 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(); rrc_recfg_ies_s& recfg_ies = reconfig.crit_exts.set_rrc_recfg();
// add secondary cell group config // 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) { if (pack_secondary_cell_group_cfg(recfg_ies.secondary_cell_group) == SRSRAN_ERROR) {
logger.error("Failed to pack secondary cell group"); logger.error("Failed to pack secondary cell group");
return SRSRAN_ERROR; return SRSRAN_ERROR;
@ -780,7 +767,6 @@ int rrc_nr::ue::add_drb()
// RLC for DRB1 (with fixed LCID) inside cell_group_cfg // RLC for DRB1 (with fixed LCID) inside cell_group_cfg
auto& cell_group_cfg_pack = 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); 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]; auto& rlc_bearer = cell_group_cfg_pack.rlc_bearer_to_add_mod_list[0];
rlc_bearer.lc_ch_id = drb1_lcid; rlc_bearer.lc_ch_id = drb1_lcid;
@ -831,7 +817,6 @@ int rrc_nr::ue::add_drb()
// PDCP config goes into radio_bearer_cfg // PDCP config goes into radio_bearer_cfg
auto& radio_bearer_cfg_pack = radio_bearer_cfg; auto& radio_bearer_cfg_pack = radio_bearer_cfg;
radio_bearer_cfg_pack.drb_to_add_mod_list_present = true;
radio_bearer_cfg_pack.drb_to_add_mod_list.resize(1); radio_bearer_cfg_pack.drb_to_add_mod_list.resize(1);
// configure fixed DRB1 // configure fixed DRB1
@ -923,7 +908,6 @@ void rrc_nr::ue::send_rrc_setup()
// Add SRB1 to UE context // Add SRB1 to UE context
// Note: See 5.3.5.6.3 - SRB addition/modification // 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); 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]; srb_to_add_mod_s& srb1 = next_radio_bearer_cfg.srb_to_add_mod_list[0];
srb1.srb_id = 1; 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 // 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 // master_cell_group_present == true or ies.non_crit_ext.ded_nas_msg_list_present == true
if (ies.radio_bearer_cfg_present) { if (ies.radio_bearer_cfg_present) {
ies.non_crit_ext.master_cell_group_present = true;
// Fill masterCellGroup // Fill masterCellGroup
cell_group_cfg_s master_cell_group; cell_group_cfg_s master_cell_group;
master_cell_group.cell_group_id = 0; master_cell_group.cell_group_id = 0;
@ -1085,7 +1067,6 @@ void rrc_nr::ue::send_rrc_reconfiguration()
if (nas_pdu_queue.size() > 0) { if (nas_pdu_queue.size() > 0) {
// Pass stored NAS PDUs // 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()); ies.non_crit_ext.ded_nas_msg_list.resize(nas_pdu_queue.size());
for (uint32_t i = 0; i < nas_pdu_queue.size(); ++i) { 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()); 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(); 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) { 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); 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_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(); 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); ies.ded_nas_msg.resize(sdu->N_bytes);
memcpy(ies.ded_nas_msg.data(), sdu->data(), ies.ded_nas_msg.size()); memcpy(ies.ded_nas_msg.data(), sdu->data(), ies.ded_nas_msg.size());
@ -1164,7 +1145,6 @@ void rrc_nr::ue::establish_eps_bearer(uint32_t pdu_session_id, srsran::const_byt
// Add SRB2, if not yet added // Add SRB2, if not yet added
if (radio_bearer_cfg.srb_to_add_mod_list.size() <= 1) { 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.push_back(srb_to_add_mod_s{});
next_radio_bearer_cfg.srb_to_add_mod_list.back().srb_id = 2; next_radio_bearer_cfg.srb_to_add_mod_list.back().srb_id = 2;
} }
@ -1175,7 +1155,6 @@ void rrc_nr::ue::establish_eps_bearer(uint32_t pdu_session_id, srsran::const_byt
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_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().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().default_drb = true;
drb.cn_assoc.sdap_cfg().mapped_qos_flows_to_add_present = true;
drb.cn_assoc.sdap_cfg().mapped_qos_flows_to_add.resize(1); drb.cn_assoc.sdap_cfg().mapped_qos_flows_to_add.resize(1);
drb.cn_assoc.sdap_cfg().mapped_qos_flows_to_add[0] = 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_present = true;
drb.pdcp_cfg.t_reordering.value = asn1::rrc_nr::pdcp_cfg_s::t_reordering_opts::ms0; 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); next_radio_bearer_cfg.drb_to_add_mod_list.push_back(drb);
parent->bearer_mapper->add_eps_bearer( parent->bearer_mapper->add_eps_bearer(

@ -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_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.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( ul_dcch_msg_auth_resp.msg.c1().ul_info_transfer().crit_exts.ul_info_transfer().ded_nas_msg.from_string(
"7e00572d10db165fffdb7b74c326e3fc3f154117fe"); "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()}; 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_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.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( ul_dcch_msg_smc.msg.c1().ul_info_transfer().crit_exts.ul_info_transfer().ded_nas_msg.from_string(
"7e046b3737af017e005e7700093535940096783351f37100237e004179000d0100f11000000000103254760810030000002e02e0602f0201" "7e046b3737af017e005e7700093535940096783351f37100237e004179000d0100f11000000000103254760810030000002e02e0602f0201"
"01530100"); "01530100");

@ -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); 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(); 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()); 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]; const srb_to_add_mod_s& srb1 = setup_ies.radio_bearer_cfg.srb_to_add_mod_list[0];
@ -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_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(); 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); TESTASSERT(NAS_DL_msg == ies_DL.ded_nas_msg);
// STEP 2: Send ULInformationTransfer (UE -> gNB) // STEP 2: Send ULInformationTransfer (UE -> gNB)
ul_dcch_msg_s ul_dcch_msg; 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(); 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;
// Create an unbounded_octstring object that contains a random NAS message (we simulate a NAS message) // 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 // 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 // The RRCreconfiguration reads the SecurityModeCommand NAS msg previously saved in the queue
asn1::unbounded_octstring<false> NAS_msg; asn1::unbounded_octstring<false> NAS_msg;
NAS_msg.from_string(NAS_SEC_CMD_STR); 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 // 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]); 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); 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(); 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_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(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(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()); 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(1, drb.drb_id);
TESTASSERT_EQ(true, reconf_ies.non_crit_ext_present); 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; auto& master_group_msg = reconf_ies.non_crit_ext.master_cell_group;
cell_group_cfg_s 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 // 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(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]; 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()); 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]; 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()); 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 // 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]); TESTASSERT(NAS_msg == reconf_ies.non_crit_ext.ded_nas_msg_list[0]);
// STEP 2 - Send RRCReconfiguration (UE -> gNB) // STEP 2 - Send RRCReconfiguration (UE -> gNB)

@ -800,7 +800,7 @@ bool rrc::nr_reconfiguration_proc(const rrc_conn_recfg_r8_ies_s& rx_recfg, bool*
return false; 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(), 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()); 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; return false;
} }
rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group_present = true;
rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group = rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group =
secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group; secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group;
} }

@ -362,7 +362,7 @@ void rrc_nr::handle_sib1(const sib1_s& sib1)
// Apply PDSCH Config Common // Apply PDSCH Config Common
if (sib1.serving_cell_cfg_common.dl_cfg_common.init_dl_bwp.pdsch_cfg_common.setup() 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(), 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)) { &phy_cfg.pdsch)) {
logger.warning("Could not set PDSCH config."); 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->sel_plmn_id = 1;
rrc_setup_complete->registered_amf_present = false; rrc_setup_complete->registered_amf_present = false;
rrc_setup_complete->guami_type_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->ng_minus5_g_s_tmsi_value_present = false;
rrc_setup_complete->ded_nas_msg.resize(nas_msg->N_bytes); 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.push_back(band_combination);
mrdc_cap.rf_params_mrdc.supported_band_combination_list_present = true;
mrdc_cap.rf_params_mrdc.ext = 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.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 // rf_params_mrdc supported band combination list v1540
band_combination_list_v1540_l* band_combination_list_v1450 = new band_combination_list_v1540_l(); 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.push_back(feature_set_combination);
mrdc_cap.feature_set_combinations_present = true;
// Pack mrdc_cap // Pack mrdc_cap
asn1::bit_ref bref(eutra_nr_caps_pdu->msg, eutra_nr_caps_pdu->get_tailroom()); asn1::bit_ref bref(eutra_nr_caps_pdu->msg, eutra_nr_caps_pdu->get_tailroom());
mrdc_cap.pack(bref); 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) 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_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) { 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 = const sched_request_to_add_mod_s& asn1_cfg =
mac_cell_group_cfg.sched_request_cfg.sched_request_to_add_mod_list[0]; 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"); logger.warning("Not handling sched request to release list");
return false; 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_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++) { 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_t tag_cfg_nr = {};
tag_cfg_nr.tag_id = mac_cell_group_cfg.tag_cfg.tag_to_add_mod_list[i].tag_id; 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++) { 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]; uint32_t tag_id = mac_cell_group_cfg.tag_cfg.tag_to_release_list[i];
if (mac->remove_tag_config(tag_id) != SRSRAN_SUCCESS) { 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) 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++) { for (uint32_t i = 0; i < pdcch_cfg.search_spaces_to_add_mod_list.size(); i++) {
srsran_search_space_t search_space; srsran_search_space_t search_space;
if (make_phy_search_space_cfg(pdcch_cfg.search_spaces_to_add_mod_list[i], &search_space) == true) { 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"); logger.warning("Option search_spaces_to_add_mod_list not present");
return false; 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++) { for (uint32_t i = 0; i < pdcch_cfg.ctrl_res_set_to_add_mod_list.size(); i++) {
srsran_coreset_t coreset; srsran_coreset_t coreset;
if (make_phy_coreset_cfg(pdcch_cfg.ctrl_res_set_to_add_mod_list[i], &coreset) == true) { 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; 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++) { 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; 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) { 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) { if (pdsch_cfg.p_zp_csi_rs_res_set_present) {
// check if resources have been processed // 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"); logger.warning("Can't build ZP-CSI config, option zp_csi_rs_res_to_add_mod_list not present");
return false; return false;
} }
@ -1140,15 +1134,12 @@ 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) 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++) { 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) { if (apply_res_csi_report_cfg(csi_meas_cfg.csi_report_cfg_to_add_mod_list[i]) == false) {
return 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++) { 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; 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) { if (make_phy_nzp_csi_rs_resource(csi_meas_cfg.nzp_csi_rs_res_to_add_mod_list[i], &csi_rs_nzp_resource) == true) {
@ -1159,9 +1150,7 @@ bool rrc_nr::apply_csi_meas_cfg(const asn1::rrc_nr::csi_meas_cfg_s& csi_meas_cfg
return false; 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++) { 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; 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++) { 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++) {
@ -1178,7 +1167,6 @@ bool rrc_nr::apply_csi_meas_cfg(const asn1::rrc_nr::csi_meas_cfg_s& csi_meas_cfg
phy_cfg.pdsch.nzp_csi_rs_sets[set_id].trs_info = true; phy_cfg.pdsch.nzp_csi_rs_sets[set_id].trs_info = true;
} }
} }
}
return true; return 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"); logger.warning("Option common_ctrl_res_set not present");
return false; 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++) { for (uint32_t i = 0; i < pdcch_cfg_common.common_search_space_list.size(); i++) {
srsran_search_space_t search_space; srsran_search_space_t search_space;
if (make_phy_search_space_cfg(pdcch_cfg_common.common_search_space_list[i], &search_space) == true) { 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_present) {
if (dl_cfg_common.init_dl_bwp.pdsch_cfg_common.type() == setup_release_c<pdsch_cfg_common_s>::types::setup) { if (dl_cfg_common.init_dl_bwp.pdsch_cfg_common.type() == setup_release_c<pdsch_cfg_common_s>::types::setup) {
pdsch_cfg_common_s pdsch_cfg_common = dl_cfg_common.init_dl_bwp.pdsch_cfg_common.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++) { for (uint32_t i = 0; i < pdsch_cfg_common.pdsch_time_domain_alloc_list.size(); i++) {
srsran_sch_time_ra_t common_time_ra; 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) { 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_present) {
if (ul_cfg_common.init_ul_bwp.pusch_cfg_common.type() == setup_release_c<pusch_cfg_common_s>::types_opts::setup) { if (ul_cfg_common.init_ul_bwp.pusch_cfg_common.type() == setup_release_c<pusch_cfg_common_s>::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; for (uint32_t i = 0;
i < ul_cfg_common.init_ul_bwp.pusch_cfg_common.setup().pusch_time_domain_alloc_list.size(); i < ul_cfg_common.init_ul_bwp.pusch_cfg_common.setup().pusch_time_domain_alloc_list.size();
i++) { 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 // 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++) { 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; uint32_t res_id = pucch_cfg.res_to_add_mod_list[i].pucch_res_id;
pucch_res_list.insert(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 // Check first all resource lists and
phy_cfg.pucch.enabled = true; 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++) { 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; 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(); 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++) { 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; 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; 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; 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++) { 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]; 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) 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++) { 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) { if (apply_rlc_add_mod(cell_group_cfg.rlc_bearer_to_add_mod_list[i]) == false) {
return 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) 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++) { 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) { if (apply_drb_add_mod(radio_bearer_cfg.drb_to_add_mod_list[i]) == false) {
return 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++) { 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) { if (apply_drb_release(radio_bearer_cfg.drb_to_release_list[i]) == false) {
return false; return false;

@ -38,7 +38,7 @@ proc_outcome_t rrc_nr::connection_reconf_no_ho_proc::init(const reconf_initiator
rrc_nr_reconf.to_json(js); rrc_nr_reconf.to_json(js);
Debug("RRC NR Reconfiguration: %s", js.to_string().c_str()); 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) { 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."); Error("Reconfiguration does not contain Secondary Cell Group Config.");
return proc_outcome_t::error; 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(), 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()); 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; 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) { 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(); nas_sdu = srsran::make_byte_buffer();

@ -231,9 +231,8 @@ int rrc_nsa_reconfig_tdd_test()
asn1::rrc_nr::rrc_recfg_s secondary_cell_group_r15; 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.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 = rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group =
secondary_cell_group_r15.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; 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.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 = rrc_nr_reconf.crit_exts.rrc_recfg().secondary_cell_group =
secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group; secondary_cell_group_r15.crit_exts.rrc_recfg().secondary_cell_group;

Loading…
Cancel
Save