fix RRC measurement reporting when reportInterval is set to infinity

This commit is contained in:
Andre Puschmann 2020-01-30 20:58:15 +01:00
parent bbacc35e24
commit ca54f02b87
1 changed files with 7 additions and 5 deletions

View File

@ -277,8 +277,10 @@ void rrc::rrc_meas::var_meas_report_list::generate_report(const uint32_t measId)
}
// if the numberOfReportsSent as defined within the VarMeasReportList for this measId is less than the
// reportAmount as defined within the corresponding reportConfig for this measId
if (var_meas.nof_reports_sent < var_meas.report_cfg.report_amount.to_number()) {
// reportAmount as defined within the corresponding reportConfig for this measId (also includes case where amount is
// infinity)
if (var_meas.nof_reports_sent < var_meas.report_cfg.report_amount.to_number() ||
var_meas.report_cfg.report_amount.to_number() == -1) {
// start the periodical reporting timer with the value of reportInterval as defined within the corresponding
// reportConfig for this measId
if (var_meas.periodic_timer.is_valid()) {
@ -333,9 +335,9 @@ void rrc::rrc_meas::var_meas_report_list::set_measId(const uint32_t m
}
// The ReportInterval is applicable if the UE performs periodical reporting (i.e. when reportAmount exceeds 1), for
// triggerType event as well as for triggerType
// periodical
if (!varMeasReportList.at(measId).periodic_timer.is_valid() && report_cfg.report_amount.to_number() > 1) {
// triggerType event as well as for triggerType periodical
if (!varMeasReportList.at(measId).periodic_timer.is_valid() &&
(report_cfg.report_amount.to_number() > 1 || report_cfg.report_amount.to_number() == -1)) {
varMeasReportList.at(measId).periodic_timer = timers->get_unique_timer();
varMeasReportList.at(measId).periodic_timer.set(report_cfg.report_interv.to_number());
}