|
|
@ -450,7 +450,7 @@ bool make_phy_csi_report(const csi_report_cfg_s& csi_report_cfg,
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (srsran_csi_hl_report_cfg.type = SRSRAN_CSI_REPORT_TYPE_PERIODIC) {
|
|
|
|
if (srsran_csi_hl_report_cfg.type == SRSRAN_CSI_REPORT_TYPE_PERIODIC) {
|
|
|
|
srsran_csi_hl_report_cfg.periodic.period =
|
|
|
|
srsran_csi_hl_report_cfg.periodic.period =
|
|
|
|
csi_report_cfg.report_cfg_type.periodic().report_slot_cfg.type().to_number();
|
|
|
|
csi_report_cfg.report_cfg_type.periodic().report_slot_cfg.type().to_number();
|
|
|
|
switch (csi_report_cfg.report_cfg_type.periodic().report_slot_cfg.type()) {
|
|
|
|
switch (csi_report_cfg.report_cfg_type.periodic().report_slot_cfg.type()) {
|
|
|
@ -940,9 +940,8 @@ bool make_phy_zp_csi_rs_resource(const asn1::rrc_nr::zp_csi_rs_res_s& zp_csi_rs_
|
|
|
|
}
|
|
|
|
}
|
|
|
|
zp_csi_rs_resource.resource_mapping.freq_band.nof_rb = zp_csi_rs_res.res_map.freq_band.nrof_rbs;
|
|
|
|
zp_csi_rs_resource.resource_mapping.freq_band.nof_rb = zp_csi_rs_res.res_map.freq_band.nrof_rbs;
|
|
|
|
zp_csi_rs_resource.resource_mapping.freq_band.start_rb = zp_csi_rs_res.res_map.freq_band.start_rb;
|
|
|
|
zp_csi_rs_resource.resource_mapping.freq_band.start_rb = zp_csi_rs_res.res_map.freq_band.start_rb;
|
|
|
|
if(zp_csi_rs_res.periodicity_and_offset_present){
|
|
|
|
if (zp_csi_rs_res.periodicity_and_offset_present) {
|
|
|
|
switch (zp_csi_rs_res.periodicity_and_offset.type())
|
|
|
|
switch (zp_csi_rs_res.periodicity_and_offset.type()) {
|
|
|
|
{
|
|
|
|
|
|
|
|
case csi_res_periodicity_and_offset_c::types_opts::options::slots4:
|
|
|
|
case csi_res_periodicity_and_offset_c::types_opts::options::slots4:
|
|
|
|
zp_csi_rs_resource.periodicity.period = 4;
|
|
|
|
zp_csi_rs_resource.periodicity.period = 4;
|
|
|
|
zp_csi_rs_resource.periodicity.offset = zp_csi_rs_res.periodicity_and_offset.slots4();
|
|
|
|
zp_csi_rs_resource.periodicity.offset = zp_csi_rs_res.periodicity_and_offset.slots4();
|
|
|
@ -1019,24 +1018,24 @@ bool make_phy_nzp_csi_rs_resource(const asn1::rrc_nr::nzp_csi_rs_res_s& asn1_nz
|
|
|
|
csi_rs_nzp_resource.resource_mapping.row = srsran_csi_rs_resource_mapping_row_1;
|
|
|
|
csi_rs_nzp_resource.resource_mapping.row = srsran_csi_rs_resource_mapping_row_1;
|
|
|
|
for (uint32_t i = 0; i < asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row1().length(); i++) {
|
|
|
|
for (uint32_t i = 0; i < asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row1().length(); i++) {
|
|
|
|
csi_rs_nzp_resource.resource_mapping.frequency_domain_alloc[i] =
|
|
|
|
csi_rs_nzp_resource.resource_mapping.frequency_domain_alloc[i] =
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row1().get(asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row1().length() -
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row1().get(
|
|
|
|
1 - i);
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row1().length() - 1 - i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::options::row2:
|
|
|
|
case csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::options::row2:
|
|
|
|
csi_rs_nzp_resource.resource_mapping.row = srsran_csi_rs_resource_mapping_row_2;
|
|
|
|
csi_rs_nzp_resource.resource_mapping.row = srsran_csi_rs_resource_mapping_row_2;
|
|
|
|
for (uint32_t i = 0; i < asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row2().length(); i++) {
|
|
|
|
for (uint32_t i = 0; i < asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row2().length(); i++) {
|
|
|
|
csi_rs_nzp_resource.resource_mapping.frequency_domain_alloc[i] =
|
|
|
|
csi_rs_nzp_resource.resource_mapping.frequency_domain_alloc[i] =
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row2().get(asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row2().length() -
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row2().get(
|
|
|
|
1 - i);
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row2().length() - 1 - i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::options::row4:
|
|
|
|
case csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::options::row4:
|
|
|
|
csi_rs_nzp_resource.resource_mapping.row = srsran_csi_rs_resource_mapping_row_4;
|
|
|
|
csi_rs_nzp_resource.resource_mapping.row = srsran_csi_rs_resource_mapping_row_4;
|
|
|
|
for (uint32_t i = 0; i < asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row4().length(); i++) {
|
|
|
|
for (uint32_t i = 0; i < asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row4().length(); i++) {
|
|
|
|
csi_rs_nzp_resource.resource_mapping.frequency_domain_alloc[i] =
|
|
|
|
csi_rs_nzp_resource.resource_mapping.frequency_domain_alloc[i] =
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row4().get(asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row4().length() -
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row4().get(
|
|
|
|
1 - i);
|
|
|
|
asn1_nzp_csi_rs_res.res_map.freq_domain_alloc.row4().length() - 1 - i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::options::other:
|
|
|
|
case csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::options::other:
|
|
|
@ -1104,9 +1103,8 @@ bool make_phy_nzp_csi_rs_resource(const asn1::rrc_nr::nzp_csi_rs_res_s& asn1_nz
|
|
|
|
csi_rs_nzp_resource.power_control_offset_ss = asn1_nzp_csi_rs_res.pwr_ctrl_offset_ss.to_number();
|
|
|
|
csi_rs_nzp_resource.power_control_offset_ss = asn1_nzp_csi_rs_res.pwr_ctrl_offset_ss.to_number();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(asn1_nzp_csi_rs_res.periodicity_and_offset_present){
|
|
|
|
if (asn1_nzp_csi_rs_res.periodicity_and_offset_present) {
|
|
|
|
switch (asn1_nzp_csi_rs_res.periodicity_and_offset.type())
|
|
|
|
switch (asn1_nzp_csi_rs_res.periodicity_and_offset.type()) {
|
|
|
|
{
|
|
|
|
|
|
|
|
case csi_res_periodicity_and_offset_c::types_opts::options::slots4:
|
|
|
|
case csi_res_periodicity_and_offset_c::types_opts::options::slots4:
|
|
|
|
csi_rs_nzp_resource.periodicity.period = 4;
|
|
|
|
csi_rs_nzp_resource.periodicity.period = 4;
|
|
|
|
csi_rs_nzp_resource.periodicity.offset = asn1_nzp_csi_rs_res.periodicity_and_offset.slots4();
|
|
|
|
csi_rs_nzp_resource.periodicity.offset = asn1_nzp_csi_rs_res.periodicity_and_offset.slots4();
|
|
|
|