@@ -284,8 +284,11 @@ bool e2sm_kpm_du_meas_provider_impl::get_cqi(const asn1::e2sm::label_info_list_l
284284 const std::optional<asn1::e2sm::cgi_c> cell_global_id,
285285 std::vector<asn1::e2sm::meas_record_item_c>& items)
286286{
287- bool meas_collected = false ;
288- scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
287+ bool meas_collected = false ;
288+ if (last_ue_metrics.size () == 0 ) {
289+ return meas_collected;
290+ }
291+ scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
289292
290293 meas_record_item_c meas_record_item;
291294 meas_record_item.set_integer () = ue_metrics.cqi_stats .get_nof_observations () > 0
@@ -302,8 +305,11 @@ bool e2sm_kpm_du_meas_provider_impl::get_rsrp(const asn1::e2sm::label_info_list_
302305 const std::optional<asn1::e2sm::cgi_c> cell_global_id,
303306 std::vector<asn1::e2sm::meas_record_item_c>& items)
304307{
305- bool meas_collected = false ;
306- scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
308+ bool meas_collected = false ;
309+ if (last_ue_metrics.size () == 0 ) {
310+ return meas_collected;
311+ }
312+ scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
307313
308314 meas_record_item_c meas_record_item;
309315 meas_record_item.set_integer () = (int )ue_metrics.pusch_snr_db ;
@@ -318,8 +324,11 @@ bool e2sm_kpm_du_meas_provider_impl::get_rsrq(const asn1::e2sm::label_info_list_
318324 const std::optional<asn1::e2sm::cgi_c> cell_global_id,
319325 std::vector<asn1::e2sm::meas_record_item_c>& items)
320326{
321- bool meas_collected = false ;
322- scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
327+ bool meas_collected = false ;
328+ if (last_ue_metrics.size () == 0 ) {
329+ return meas_collected;
330+ }
331+ scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
323332
324333 meas_record_item_c meas_record_item;
325334 meas_record_item.set_integer () = (int )ue_metrics.pusch_snr_db ;
@@ -333,8 +342,11 @@ bool e2sm_kpm_du_meas_provider_impl::get_prb_avail_dl(const asn1::e2sm::label_in
333342 const std::optional<asn1::e2sm::cgi_c> cell_global_id,
334343 std::vector<asn1::e2sm::meas_record_item_c>& items)
335344{
336- bool meas_collected = false ;
337- scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
345+ bool meas_collected = false ;
346+ if (last_ue_metrics.size () == 0 ) {
347+ return meas_collected;
348+ }
349+ scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
338350 if ((label_info_list.size () > 1 or
339351 (label_info_list.size () == 1 and not label_info_list[0 ].meas_label .no_label_present ))) {
340352 logger.debug (" Metric: DRB.RlcPacketDropRateDl supports only NO_LABEL label." );
@@ -353,8 +365,11 @@ bool e2sm_kpm_du_meas_provider_impl::get_prb_avail_ul(const asn1::e2sm::label_in
353365 const std::optional<asn1::e2sm::cgi_c> cell_global_id,
354366 std::vector<asn1::e2sm::meas_record_item_c>& items)
355367{
356- bool meas_collected = false ;
357- scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
368+ bool meas_collected = false ;
369+ if (last_ue_metrics.size () == 0 ) {
370+ return meas_collected;
371+ }
372+ scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
358373 if ((label_info_list.size () > 1 or
359374 (label_info_list.size () == 1 and not label_info_list[0 ].meas_label .no_label_present ))) {
360375 logger.debug (" Metric: DRB.RlcPacketDropRateDl supports only NO_LABEL label." );
@@ -373,8 +388,11 @@ bool e2sm_kpm_du_meas_provider_impl::get_prb_use_perc_dl(const asn1::e2sm::label
373388 const std::optional<asn1::e2sm::cgi_c> cell_global_id,
374389 std::vector<asn1::e2sm::meas_record_item_c>& items)
375390{
376- bool meas_collected = false ;
377- scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
391+ bool meas_collected = false ;
392+ if (last_ue_metrics.size () == 0 ) {
393+ return meas_collected;
394+ }
395+ scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
378396 if ((label_info_list.size () > 1 or
379397 (label_info_list.size () == 1 and not label_info_list[0 ].meas_label .no_label_present ))) {
380398 logger.debug (" Metric: DRB.RlcPacketDropRateDl supports only NO_LABEL label." );
@@ -393,8 +411,11 @@ bool e2sm_kpm_du_meas_provider_impl::get_prb_use_perc_ul(const asn1::e2sm::label
393411 const std::optional<asn1::e2sm::cgi_c> cell_global_id,
394412 std::vector<asn1::e2sm::meas_record_item_c>& items)
395413{
396- bool meas_collected = false ;
397- scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
414+ bool meas_collected = false ;
415+ if (last_ue_metrics.size () == 0 ) {
416+ return meas_collected;
417+ }
418+ scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
398419 if ((label_info_list.size () > 1 or
399420 (label_info_list.size () == 1 and not label_info_list[0 ].meas_label .no_label_present ))) {
400421 logger.debug (" Metric: DRB.RlcPacketDropRateDl supports only NO_LABEL label." );
0 commit comments