rlc_metrics: add sdu rx latency and buffered bytes

This commit is contained in:
Andre Puschmann 2020-12-16 22:03:17 +01:00
parent 2e64fff1df
commit d54c33258b
2 changed files with 6 additions and 23 deletions

View File

@ -25,7 +25,7 @@ typedef struct {
uint64_t num_tx_sdu_bytes;
uint64_t num_rx_sdu_bytes;
uint32_t num_lost_sdus; //< Count dropped SDUs at Tx due to bearer inactivity or empty buffer
uint64_t sdu_tx_latency_us;
uint64_t rx_latency_ms; //< Average time in ms from first RLC segment to full SDU
// PDU metrics
uint32_t num_tx_pdus;
@ -33,6 +33,9 @@ typedef struct {
uint64_t num_tx_pdu_bytes;
uint64_t num_rx_pdu_bytes;
uint32_t num_lost_pdus; //< Lost PDUs registered at Rx
// misc metrics
uint32_t rx_buffered_bytes; //< sum of payload of PDUs buffered in rx_window
} rlc_bearer_metrics_t;
typedef struct {

View File

@ -837,17 +837,7 @@ int rlc_am_lte::rlc_am_lte_tx::build_data_pdu(uint8_t* payload, uint32_t nof_byt
tx_sdu->N_bytes -= to_move;
tx_sdu->msg += to_move;
if (tx_sdu->N_bytes == 0) {
#ifdef ENABLE_TIMESTAMP
long latency_us = tx_sdu->get_latency_us().count();
mean_pdu_latency_us.push(latency_us);
parent->metrics.sdu_tx_latency_us = mean_pdu_latency_us.value();
log->debug("%s Complete SDU scheduled for tx. Stack latency (last/average): %ld/%ld us\n",
RB_NAME,
latency_us,
(long)parent->metrics.sdu_tx_latency_us);
#else
log->debug("%s Complete SDU scheduled for tx.\n", rb_name.c_str());
#endif
log->debug("%s Complete SDU scheduled for tx.\n", RB_NAME);
tx_sdu.reset();
}
if (pdu_space > to_move) {
@ -886,17 +876,7 @@ int rlc_am_lte::rlc_am_lte_tx::build_data_pdu(uint8_t* payload, uint32_t nof_byt
tx_sdu->N_bytes -= to_move;
tx_sdu->msg += to_move;
if (tx_sdu->N_bytes == 0) {
#ifdef ENABLE_TIMESTAMP
long latency_us = tx_sdu->get_latency_us().count();
mean_pdu_latency_us.push(latency_us);
parent->metrics.sdu_tx_latency_us = mean_pdu_latency_us.value();
log->debug("%s Complete SDU scheduled for tx. Stack latency (last/average): %ld/%ld us\n",
RB_NAME,
latency_us,
(long)parent->metrics.sdu_tx_latency_us);
#else
log->debug("%s Complete SDU scheduled for tx.\n", rb_name.c_str());
#endif
log->debug("%s Complete SDU scheduled for tx.\n", RB_NAME);
tx_sdu.reset();
}
if (pdu_space > to_move) {