Minor NR RRC fixes

This commit is contained in:
Xavier Arteaga 2021-04-19 20:45:43 +02:00 committed by Andre Puschmann
parent d2aa25d451
commit 47523935f6
2 changed files with 16 additions and 12 deletions

View File

@ -233,7 +233,6 @@ bool make_phy_rach_cfg(const rach_cfg_common_s& asn1_type, srsran_prach_cfg_t* p
asn1::log_error("PRACH freq offset must be at least one"); asn1::log_error("PRACH freq offset must be at least one");
return false; return false;
} }
prach_cfg->freq_offset--;
switch (prach_cfg->root_seq_idx = asn1_type.prach_root_seq_idx.type()) { switch (prach_cfg->root_seq_idx = asn1_type.prach_root_seq_idx.type()) {
case rach_cfg_common_s::prach_root_seq_idx_c_::types_opts::l839: case rach_cfg_common_s::prach_root_seq_idx_c_::types_opts::l839:
@ -1178,41 +1177,45 @@ bool make_phy_nzp_csi_rs_resource(const asn1::rrc_nr::nzp_csi_rs_res_s& asn1_nz
bool make_phy_carrier_cfg(const freq_info_dl_s& asn1_freq_info_dl, srsran_carrier_nr_t* out_carrier_nr) bool make_phy_carrier_cfg(const freq_info_dl_s& asn1_freq_info_dl, srsran_carrier_nr_t* out_carrier_nr)
{ {
srsran_carrier_nr_t carrier_nr = {}; uint32_t absolute_frequency_ssb = 0;
if (asn1_freq_info_dl.absolute_freq_ssb_present) { if (asn1_freq_info_dl.absolute_freq_ssb_present) {
carrier_nr.absolute_frequency_ssb = asn1_freq_info_dl.absolute_freq_ssb_present; absolute_frequency_ssb = asn1_freq_info_dl.absolute_freq_ssb_present;
} else { } else {
asn1::log_warning("Option absolute_freq_ssb not present"); asn1::log_warning("Option absolute_freq_ssb not present");
return false; return false;
} }
carrier_nr.absolute_frequency_point_a = asn1_freq_info_dl.absolute_freq_point_a; uint32_t absolute_frequency_point_a = asn1_freq_info_dl.absolute_freq_point_a;
if (asn1_freq_info_dl.scs_specific_carrier_list.size() != 1) { if (asn1_freq_info_dl.scs_specific_carrier_list.size() != 1) {
asn1::log_warning("Option absolute_freq_ssb not present"); asn1::log_warning("Option absolute_freq_ssb not present");
return false; return false;
} }
carrier_nr.nof_prb = asn1_freq_info_dl.scs_specific_carrier_list[0].carrier_bw; uint32_t nof_prb = asn1_freq_info_dl.scs_specific_carrier_list[0].carrier_bw;
srsran_subcarrier_spacing_t scs = srsran_subcarrier_spacing_15kHz;
switch (asn1_freq_info_dl.scs_specific_carrier_list[0].subcarrier_spacing) { switch (asn1_freq_info_dl.scs_specific_carrier_list[0].subcarrier_spacing) {
case subcarrier_spacing_opts::options::khz15: case subcarrier_spacing_opts::options::khz15:
carrier_nr.scs = srsran_subcarrier_spacing_15kHz; scs = srsran_subcarrier_spacing_15kHz;
break; break;
case subcarrier_spacing_opts::options::khz30: case subcarrier_spacing_opts::options::khz30:
carrier_nr.scs = srsran_subcarrier_spacing_30kHz; scs = srsran_subcarrier_spacing_30kHz;
break; break;
case subcarrier_spacing_opts::options::khz60: case subcarrier_spacing_opts::options::khz60:
carrier_nr.scs = srsran_subcarrier_spacing_60kHz; scs = srsran_subcarrier_spacing_60kHz;
break; break;
case subcarrier_spacing_opts::options::khz120: case subcarrier_spacing_opts::options::khz120:
carrier_nr.scs = srsran_subcarrier_spacing_120kHz; scs = srsran_subcarrier_spacing_120kHz;
break; break;
case subcarrier_spacing_opts::options::khz240: case subcarrier_spacing_opts::options::khz240:
carrier_nr.scs = srsran_subcarrier_spacing_240kHz; scs = srsran_subcarrier_spacing_240kHz;
break; break;
default: default:
asn1::log_warning("Not supported subcarrier spacing "); asn1::log_warning("Not supported subcarrier spacing ");
} }
*out_carrier_nr = carrier_nr; // As the carrier structure requires parameters from different objects, set fields separately
out_carrier_nr->absolute_frequency_ssb = absolute_frequency_ssb;
out_carrier_nr->absolute_frequency_point_a = absolute_frequency_point_a;
out_carrier_nr->nof_prb = nof_prb;
out_carrier_nr->scs = scs;
return true; return true;
} }
} // namespace srsran } // namespace srsran

View File

@ -1052,6 +1052,7 @@ bool rrc_nr::apply_sp_cell_cfg(const sp_cell_cfg_s& sp_cell_cfg)
if (recfg_with_sync.sp_cell_cfg_common_present) { if (recfg_with_sync.sp_cell_cfg_common_present) {
if (recfg_with_sync.sp_cell_cfg_common.pci_present) { if (recfg_with_sync.sp_cell_cfg_common.pci_present) {
phy_cfg.carrier.pci = recfg_with_sync.sp_cell_cfg_common.pci; phy_cfg.carrier.pci = recfg_with_sync.sp_cell_cfg_common.pci;
phy_cfg.carrier.max_mimo_layers = 1; // TODO: flatten
} else { } else {
logger.warning("Option PCI not present"); logger.warning("Option PCI not present");
return false; return false;