Skip to content

Commit e683a34

Browse files
committed
sched: log a warning when the CSI is invalid
1 parent 9ac4585 commit e683a34

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

lib/scheduler/ue_scheduling/ue_cell.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ class ue_cell
8585
void handle_csi_report(const csi_report_data& csi_report)
8686
{
8787
set_fallback_state(false);
88-
channel_state.handle_csi_report(csi_report);
88+
if (not channel_state.handle_csi_report(csi_report)) {
89+
logger.warning("ue={} rnti={:#x}: Invalid CSI report received", ue_index, rnti());
90+
}
8991
}
9092

9193
/// \brief Get the current UE cell metrics.

lib/scheduler/ue_scheduling/ue_channel_state_manager.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ ue_channel_state_manager::ue_channel_state_manager(const serving_cell_config&
4444
}
4545
}
4646

47-
void ue_channel_state_manager::handle_csi_report(const csi_report_data& csi_report)
47+
bool ue_channel_state_manager::handle_csi_report(const csi_report_data& csi_report)
4848
{
4949
latest_csi_report = csi_report;
5050

@@ -55,12 +55,16 @@ void ue_channel_state_manager::handle_csi_report(const csi_report_data& csi_repo
5555

5656
// Update recommended number of layers based on RI.
5757
if (csi_report.ri.has_value()) {
58+
if (csi_report.ri.value() > nof_dl_ports) {
59+
return false;
60+
}
5861
recommended_dl_layers = csi_report.ri.value().to_uint();
59-
srsran_sanity_check(recommended_dl_layers <= nof_dl_ports, "Invalid RI reported");
6062
}
6163

6264
if (csi_report.pmi.has_value()) {
6365
const unsigned table_idx = nof_layers_to_index(recommended_dl_layers);
6466
recommended_prg_info[table_idx] = csi_report.pmi.value();
6567
}
68+
69+
return true;
6670
}

lib/scheduler/ue_scheduling/ue_channel_state_manager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class ue_channel_state_manager
5555
}
5656

5757
/// Update UE with the latest CSI report for a given cell.
58-
void handle_csi_report(const csi_report_data& csi_report);
58+
bool handle_csi_report(const csi_report_data& csi_report);
5959

6060
private:
6161
/// \brief Number of indexes -> nof_layers for precoding (Options: 1 layer, 2 layers, 4 layers).

0 commit comments

Comments
 (0)