@@ -74,6 +74,10 @@ e2sm_kpm_du_meas_provider_impl::e2sm_kpm_du_meas_provider_impl(srs_du::f1ap_ue_i
7474 e2sm_kpm_supported_metric_t {
7575 NO_LABEL, ALL_LEVELS, true , &e2sm_kpm_du_meas_provider_impl::get_drb_rlc_sdu_transmitted_volume_ul});
7676
77+ supported_metrics.emplace (
78+ " DRB.AirIfDelayUl" ,
79+ e2sm_kpm_supported_metric_t {NO_LABEL, ALL_LEVELS, true , &e2sm_kpm_du_meas_provider_impl::get_delay_ul});
80+
7781 // Check if the supported metrics are matching e2sm_kpm metrics definitions.
7882 check_e2sm_kpm_metrics_definitions (get_e2sm_kpm_28_552_metrics ());
7983 check_e2sm_kpm_metrics_definitions (get_e2sm_kpm_oran_metrics ());
@@ -337,6 +341,7 @@ bool e2sm_kpm_du_meas_provider_impl::get_rsrq(const asn1::e2sm::label_info_list_
337341
338342 return meas_collected;
339343}
344+
340345bool e2sm_kpm_du_meas_provider_impl::get_prb_avail_dl (const asn1::e2sm::label_info_list_l label_info_list,
341346 const std::vector<asn1::e2sm::ue_id_c>& ues,
342347 const std::optional<asn1::e2sm::cgi_c> cell_global_id,
@@ -428,6 +433,24 @@ bool e2sm_kpm_du_meas_provider_impl::get_prb_use_perc_ul(const asn1::e2sm::label
428433
429434 return meas_collected;
430435}
436+ bool e2sm_kpm_du_meas_provider_impl::get_delay_ul (const asn1::e2sm::label_info_list_l label_info_list,
437+ const std::vector<asn1::e2sm::ue_id_c>& ues,
438+ const std::optional<asn1::e2sm::cgi_c> cell_global_id,
439+ std::vector<asn1::e2sm::meas_record_item_c>& items)
440+ {
441+ bool meas_collected = false ;
442+ scheduler_ue_metrics ue_metrics = last_ue_metrics[0 ];
443+ if ((label_info_list.size () > 1 or
444+ (label_info_list.size () == 1 and not label_info_list[0 ].meas_label .no_label_present ))) {
445+ logger.debug (" Metric: DRB.AirIfDelayUl supports only NO_LABEL label." );
446+ return meas_collected;
447+ }
448+ meas_record_item_c meas_record_item;
449+ meas_record_item.set_real ().value = ue_metrics.ul_delay_ms ;
450+ items.push_back (meas_record_item);
451+ meas_collected = true ;
452+ return meas_collected;
453+ }
431454
432455float e2sm_kpm_du_meas_provider_impl::bytes_to_kbits (float value)
433456{
0 commit comments