From ca54f02b87572c4203c9d1e4019cf54622756ba1 Mon Sep 17 00:00:00 2001 From: Andre Puschmann Date: Thu, 30 Jan 2020 20:58:15 +0100 Subject: [PATCH] fix RRC measurement reporting when reportInterval is set to infinity --- srsue/src/stack/rrc/rrc_meas.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/srsue/src/stack/rrc/rrc_meas.cc b/srsue/src/stack/rrc/rrc_meas.cc index b526133a5..4622bc0f0 100644 --- a/srsue/src/stack/rrc/rrc_meas.cc +++ b/srsue/src/stack/rrc/rrc_meas.cc @@ -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()); }