Coverage Report

Created: 2026-09-14 07:15

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ocudu/lib/pdcp/pdcp_metrics_aggregator.h
Line
Count
Source
1
// SPDX-FileCopyrightText: Copyright (C) 2021-2026 Software Radio Systems Limited
2
// SPDX-License-Identifier: BSD-3-Clause-Open-MPI
3
// Portions of this file may implement 3GPP specifications, which may be subject to additional licensing requirements.
4
5
#pragma once
6
7
#include "pdcp_bearer_logger.h"
8
#include "ocudu/pdcp/pdcp_metrics.h"
9
#include "ocudu/pdcp/pdcp_rx_metrics.h"
10
#include "ocudu/pdcp/pdcp_tx_metrics.h"
11
#include "ocudu/support/executors/task_executor.h"
12
#include "ocudu/support/timers.h"
13
14
namespace ocudu {
15
class pdcp_metrics_aggregator
16
{
17
public:
18
  pdcp_metrics_aggregator(uint32_t               ue_index_,
19
                          rb_id_t                rb_id_,
20
                          timer_duration         metrics_period_,
21
                          pdcp_metrics_notifier* pdcp_metrics_notif_,
22
                          task_executor&         ue_executor_,
23
                          bool                   report_tx_rx_in_same_report_ = true);
24
25
  void push_tx_metrics(const pdcp_tx_metrics_container& m_tx_);
26
27
  void push_rx_metrics(const pdcp_rx_metrics_container& m_rx_);
28
29
0
  const timer_duration& get_metrics_period() const { return metrics_period; }
30
31
private:
32
  void push_report();
33
34
  void push_tx_metrics_impl(const pdcp_tx_metrics_container& m_tx_);
35
  void push_rx_metrics_impl(const pdcp_rx_metrics_container& m_rx_);
36
37
  const bool                report_tx_rx_in_same_report;
38
  uint32_t                  ue_index;
39
  rb_id_t                   rb_id;
40
  pdcp_rx_metrics_container m_rx;
41
  pdcp_tx_metrics_container m_tx;
42
  timer_duration            metrics_period;
43
  pdcp_metrics_notifier*    pdcp_metrics_notif;
44
  task_executor&            ue_executor;
45
  pdcp_bearer_logger        logger;
46
};
47
} // namespace ocudu