Added interfaces to get metrics from PDCP entities.

This commit is contained in:
Pedro Alvarez 2021-02-15 14:50:46 +00:00
parent eb2f5b978f
commit d34aba8065
5 changed files with 42 additions and 1 deletions

View File

@ -126,6 +126,10 @@ public:
uint32_t SN(uint32_t count);
uint32_t COUNT(uint32_t hfn, uint32_t sn);
// Metrics helpers
virtual pdcp_bearer_metrics_t get_metrics() = 0;
virtual void reset_metrics() = 0;
protected:
srslog::basic_logger& logger;
srslte::task_sched_handle task_sched;
@ -163,6 +167,9 @@ protected:
void write_data_header(const srslte::unique_byte_buffer_t& sdu, uint32_t count);
void extract_mac(const unique_byte_buffer_t& pdu, uint8_t* mac);
void append_mac(const unique_byte_buffer_t& sdu, uint8_t* mac);
// Metrics helpers
pdcp_bearer_metrics_t metrics = {};
};
inline uint32_t pdcp_entity_base::HFN(uint32_t count)

View File

@ -75,6 +75,10 @@ public:
// Getter for the number of discard timers. Used for debugging.
uint32_t nof_discard_timers() { return discard_timers_map.size(); }
// Metrics helpers
pdcp_bearer_metrics_t get_metrics() override;
void reset_metrics() override;
private:
srsue::rlc_interface_pdcp* rlc = nullptr;
srsue::rrc_interface_pdcp* rrc = nullptr;

View File

@ -61,6 +61,8 @@ public:
void set_bearer_state(const pdcp_lte_state_t& state) override;
void send_status_report() override {}
pdcp_bearer_metrics_t get_metrics() override;
void reset_metrics() override;
std::map<uint32_t, srslte::unique_byte_buffer_t> get_buffered_pdus() override { return {}; }

View File

@ -548,6 +548,10 @@ bool pdcp_entity_lte::store_sdu(uint32_t tx_count, const unique_byte_buffer_t& s
memcpy(sdu_copy->msg, sdu->msg, sdu->N_bytes);
sdu_copy->N_bytes = sdu->N_bytes;
// Metrics
metrics.num_tx_buffered_pdus++;
metrics.num_tx_buffered_pdus_bytes += sdu->N_bytes;
undelivered_sdus_queue.insert(std::make_pair(tx_count, std::move(sdu_copy)));
return true;
}
@ -651,4 +655,17 @@ std::map<uint32_t, srslte::unique_byte_buffer_t> pdcp_entity_lte::get_buffered_p
return cpy;
}
/****************************************************************************
* Metrics helpers
***************************************************************************/
pdcp_bearer_metrics_t pdcp_entity_lte::get_metrics()
{
return metrics;
}
void pdcp_entity_lte::reset_metrics()
{
metrics = {};
}
} // namespace srslte

View File

@ -286,4 +286,15 @@ void pdcp_entity_nr::set_bearer_state(const pdcp_lte_state_t& state)
// TODO
}
pdcp_bearer_metrics_t pdcp_entity_nr::get_metrics()
{
// TODO
return metrics;
}
void pdcp_entity_nr::reset_metrics()
{
metrics = {};
}
} // namespace srslte