diff --git a/lib/include/srslte/upper/rlc_am_lte.h b/lib/include/srslte/upper/rlc_am_lte.h index ab351de0f..b89036f15 100644 --- a/lib/include/srslte/upper/rlc_am_lte.h +++ b/lib/include/srslte/upper/rlc_am_lte.h @@ -185,8 +185,10 @@ private: pthread_mutex_t mutex; // Metrics - uint64_t tx_byte_count = 0; + uint64_t tx_byte_count = 0; +#ifdef ENABLE_TIMESTAMP srslte::rolling_average mean_pdu_latency_us; +#endif }; // Receiver sub-class diff --git a/lib/include/srslte/upper/rlc_um_lte.h b/lib/include/srslte/upper/rlc_um_lte.h index 24e2851b1..f5f08da9d 100644 --- a/lib/include/srslte/upper/rlc_um_lte.h +++ b/lib/include/srslte/upper/rlc_um_lte.h @@ -65,9 +65,10 @@ private: uint32_t vt_us = 0; // Send state. SN to be assigned for next PDU. // Metrics - uint64_t tx_byte_count = 0; + uint64_t tx_byte_count = 0; +#ifdef ENABLE_TIMESTAMP srslte::rolling_average mean_pdu_latency_us; - +#endif void debug_state(); }; diff --git a/lib/src/upper/rlc_am_lte.cc b/lib/src/upper/rlc_am_lte.cc index 471f090fc..529047c88 100644 --- a/lib/src/upper/rlc_am_lte.cc +++ b/lib/src/upper/rlc_am_lte.cc @@ -837,12 +837,14 @@ 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(); mean_pdu_latency_us.push(latency_us); log->debug("%s Complete SDU scheduled for tx. Stack latency (last/average): %ld/%ld us\n", RB_NAME, latency_us, (long)mean_pdu_latency_us.value()); +#endif tx_sdu.reset(); } if (pdu_space > to_move) { @@ -881,12 +883,14 @@ 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(); mean_pdu_latency_us.push(latency_us); log->debug("%s Complete SDU scheduled for tx. Stack latency (last/average): %ld/%ld us\n", RB_NAME, latency_us, (long)mean_pdu_latency_us.value()); +#endif tx_sdu.reset(); } if (pdu_space > to_move) { diff --git a/lib/src/upper/rlc_um_lte.cc b/lib/src/upper/rlc_um_lte.cc index 737b66532..c74aad2fc 100644 --- a/lib/src/upper/rlc_um_lte.cc +++ b/lib/src/upper/rlc_um_lte.cc @@ -145,13 +145,14 @@ int rlc_um_lte::rlc_um_lte_tx::build_data_pdu(unique_byte_buffer_t pdu, uint8_t* 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(); mean_pdu_latency_us.push(latency_us); log->debug("%s Complete SDU scheduled for tx. Stack latency (last/average): %ld/%ld us\n", rb_name.c_str(), latency_us, (long)mean_pdu_latency_us.value()); - +#endif tx_sdu.reset(); } pdu_space -= SRSLTE_MIN(to_move, pdu->get_tailroom()); @@ -181,13 +182,14 @@ int rlc_um_lte::rlc_um_lte_tx::build_data_pdu(unique_byte_buffer_t pdu, uint8_t* 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(); mean_pdu_latency_us.push(latency_us); log->debug("%s Complete SDU scheduled for tx. Stack latency (last/average): %ld/%ld us\n", rb_name.c_str(), latency_us, (long)mean_pdu_latency_us.value()); - +#endif tx_sdu.reset(); } pdu_space -= to_move;