fix RRC measurement reporting when reportInterval is set to infinity

master
Andre Puschmann 5 years ago
parent bbacc35e24
commit ca54f02b87

@ -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 // 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 // reportAmount as defined within the corresponding reportConfig for this measId (also includes case where amount is
if (var_meas.nof_reports_sent < var_meas.report_cfg.report_amount.to_number()) { // 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 // start the periodical reporting timer with the value of reportInterval as defined within the corresponding
// reportConfig for this measId // reportConfig for this measId
if (var_meas.periodic_timer.is_valid()) { 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 // The ReportInterval is applicable if the UE performs periodical reporting (i.e. when reportAmount exceeds 1), for
// triggerType event as well as for triggerType // triggerType event as well as for triggerType periodical
// periodical if (!varMeasReportList.at(measId).periodic_timer.is_valid() &&
if (!varMeasReportList.at(measId).periodic_timer.is_valid() && report_cfg.report_amount.to_number() > 1) { (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 = timers->get_unique_timer();
varMeasReportList.at(measId).periodic_timer.set(report_cfg.report_interv.to_number()); varMeasReportList.at(measId).periodic_timer.set(report_cfg.report_interv.to_number());
} }

Loading…
Cancel
Save