mirror of https://github.com/PentHertz/srsLTE.git
log warnings when the sched ue cfg is not valid
This commit is contained in:
parent
fac6d40a45
commit
852c31c0bc
|
@ -246,6 +246,7 @@ public:
|
||||||
bool pucch_sr_collision(uint32_t tti, uint32_t n_cce);
|
bool pucch_sr_collision(uint32_t tti, uint32_t n_cce);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void check_ue_cfg_correctness() const;
|
||||||
bool is_sr_triggered();
|
bool is_sr_triggered();
|
||||||
|
|
||||||
uint32_t allocate_mac_sdus(sched_interface::dl_sched_data_t* data, uint32_t total_tbs, uint32_t tbidx);
|
uint32_t allocate_mac_sdus(sched_interface::dl_sched_data_t* data, uint32_t total_tbs, uint32_t tbidx);
|
||||||
|
|
|
@ -154,6 +154,8 @@ void sched_ue::set_cfg(const sched_interface::ue_cfg_t& cfg_)
|
||||||
pending_ces.emplace_back(srslte::dl_sch_lcid::SCELL_ACTIVATION);
|
pending_ces.emplace_back(srslte::dl_sch_lcid::SCELL_ACTIVATION);
|
||||||
log_h->info("SCHED: Enqueueing SCell Activation CMD for rnti=0x%x\n", rnti);
|
log_h->info("SCHED: Enqueueing SCell Activation CMD for rnti=0x%x\n", rnti);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_ue_cfg_correctness();
|
||||||
}
|
}
|
||||||
|
|
||||||
void sched_ue::reset()
|
void sched_ue::reset()
|
||||||
|
@ -179,6 +181,35 @@ void sched_ue::new_tti(srslte::tti_point new_tti)
|
||||||
lch_handler.new_tti();
|
lch_handler.new_tti();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// sanity check the UE CC configuration
|
||||||
|
void sched_ue::check_ue_cfg_correctness() const
|
||||||
|
{
|
||||||
|
using cc_t = sched::ue_cfg_t::cc_cfg_t;
|
||||||
|
const auto& cc_list = cfg.supported_cc_list;
|
||||||
|
bool has_scells = std::count_if(cc_list.begin(), cc_list.end(), [](const cc_t& c) { return c.active; }) > 1;
|
||||||
|
|
||||||
|
if (has_scells) {
|
||||||
|
// In case of CA, CQI configs must exist and cannot collide in the PUCCH
|
||||||
|
for (uint32_t i = 0; i < cc_list.size(); ++i) {
|
||||||
|
const auto& cc1 = cc_list[i];
|
||||||
|
if (not cc1.active) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (not cc1.dl_cfg.cqi_report.periodic_configured and not cc1.dl_cfg.cqi_report.aperiodic_configured) {
|
||||||
|
log_h->warning("SCHED: No CQI configuration was provided for UE scell index=%d \n", i);
|
||||||
|
} else if (cc1.dl_cfg.cqi_report.periodic_configured) {
|
||||||
|
for (uint32_t j = i + 1; j < cc_list.size(); ++j) {
|
||||||
|
if (cc_list[j].active and cc_list[j].dl_cfg.cqi_report.periodic_configured and
|
||||||
|
cc_list[j].dl_cfg.cqi_report.pmi_idx == cc1.dl_cfg.cqi_report.pmi_idx) {
|
||||||
|
log_h->warning(
|
||||||
|
"SCHED: The provided CQI configurations for UE scells %d and %d collide in the PUCCH\n", i, j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*******************************************************
|
/*******************************************************
|
||||||
*
|
*
|
||||||
* FAPI-like main scheduler interface.
|
* FAPI-like main scheduler interface.
|
||||||
|
|
Loading…
Reference in New Issue