Add option to rr.conf to select sub-band CQI K value (#3071)

master
Ismael Gomez 4 years ago committed by GitHub
parent b79481f74b
commit 5d034b067e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -31,6 +31,8 @@ struct rrc_cfg_cqi_t {
uint32_t nof_prb; uint32_t nof_prb;
uint32_t period; uint32_t period;
uint32_t m_ri; uint32_t m_ri;
bool is_subband_enabled;
uint32_t subband_k;
bool simultaneousAckCQI; bool simultaneousAckCQI;
rrc_cfg_cqi_mode_t mode; rrc_cfg_cqi_mode_t mode;
}; };

@ -47,6 +47,7 @@ phy_cnfg =
//subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all)
nof_prb = 1; nof_prb = 1;
m_ri = 8; // RI period in CQI period m_ri = 8; // RI period in CQI period
//subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI
}; };
}; };

@ -736,6 +736,8 @@ int parse_rr(all_args_t* args_, rrc_cfg_t* rrc_cfg_)
cqi_report_cnfg.add_field(new parser::field<uint32>("period", &rrc_cfg_->cqi_cfg.period)); cqi_report_cnfg.add_field(new parser::field<uint32>("period", &rrc_cfg_->cqi_cfg.period));
cqi_report_cnfg.add_field(new parser::field<uint32>("m_ri", &rrc_cfg_->cqi_cfg.m_ri)); cqi_report_cnfg.add_field(new parser::field<uint32>("m_ri", &rrc_cfg_->cqi_cfg.m_ri));
cqi_report_cnfg.add_field(new parser::field<uint32>("nof_prb", &rrc_cfg_->cqi_cfg.nof_prb)); cqi_report_cnfg.add_field(new parser::field<uint32>("nof_prb", &rrc_cfg_->cqi_cfg.nof_prb));
cqi_report_cnfg.add_field(
new parser::field<uint32>("subband_k", &rrc_cfg_->cqi_cfg.subband_k, &rrc_cfg_->cqi_cfg.is_subband_enabled));
cqi_report_cnfg.add_field(new parser::field<bool>("simultaneousAckCQI", &rrc_cfg_->cqi_cfg.simultaneousAckCQI)); cqi_report_cnfg.add_field(new parser::field<bool>("simultaneousAckCQI", &rrc_cfg_->cqi_cfg.simultaneousAckCQI));
cqi_report_cnfg.add_field(new field_sf_mapping(rrc_cfg_->cqi_cfg.sf_mapping, &rrc_cfg_->cqi_cfg.nof_subframes, 1)); cqi_report_cnfg.add_field(new field_sf_mapping(rrc_cfg_->cqi_cfg.sf_mapping, &rrc_cfg_->cqi_cfg.nof_subframes, 1));

@ -120,8 +120,14 @@ void fill_cqi_report_enb_cfg(cqi_report_cfg_s& cqi_report_cfg, const rrc_cfg_t&
} else { } else {
cqi_report_cfg.cqi_report_periodic_present = true; cqi_report_cfg.cqi_report_periodic_present = true;
auto& cqi_setup = cqi_report_cfg.cqi_report_periodic.set_setup(); auto& cqi_setup = cqi_report_cfg.cqi_report_periodic.set_setup();
cqi_setup.cqi_format_ind_periodic.set( if (enb_cfg.cqi_cfg.subband_k == 0) {
cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::types::wideband_cqi); cqi_setup.cqi_format_ind_periodic.set(
cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::types::wideband_cqi);
} else {
cqi_setup.cqi_format_ind_periodic.set(
cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::types::subband_cqi);
cqi_setup.cqi_format_ind_periodic.subband_cqi().k = enb_cfg.cqi_cfg.subband_k;
}
cqi_setup.simul_ack_nack_and_cqi = enb_cfg.cqi_cfg.simultaneousAckCQI; cqi_setup.simul_ack_nack_and_cqi = enb_cfg.cqi_cfg.simultaneousAckCQI;
} }
cqi_report_cfg.nom_pdsch_rs_epre_offset = 0; cqi_report_cfg.nom_pdsch_rs_epre_offset = 0;

Loading…
Cancel
Save