From 08233d44a6cfde878d7e10bca38ae935ed1c8fd5 Mon Sep 17 00:00:00 2001 From: Mauro Date: Wed, 30 Jun 2021 07:57:22 +0000 Subject: [HICN-713] Transport Library Major Refactoring 2 Co-authored-by: Luca Muscariello Co-authored-by: Michele Papalini Co-authored-by: Olivier Roques Co-authored-by: Giulio Grassi Signed-off-by: Mauro Sardara Change-Id: I5b2c667bad66feb45abdb5effe22ed0f6c85d1c2 --- .../hicn/transport/interfaces/statistics.h | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'libtransport/includes/hicn/transport/interfaces/statistics.h') diff --git a/libtransport/includes/hicn/transport/interfaces/statistics.h b/libtransport/includes/hicn/transport/interfaces/statistics.h index 92c58da23..1ff6f3edd 100644 --- a/libtransport/includes/hicn/transport/interfaces/statistics.h +++ b/libtransport/includes/hicn/transport/interfaces/statistics.h @@ -49,11 +49,13 @@ class TransportStatistics { interest_FEC_tx_(0), bytes_FEC_received_(0), lost_data_(0), + definitely_lost_data_(0), recovered_data_(0), status_(-1), // avg_data_rtt_(0), avg_pending_pkt_(0.0), - received_nacks_(0) {} + received_nacks_(0), + received_fec_(0) {} TRANSPORT_ALWAYS_INLINE void updateRetxCount(uint64_t retx) { retx_count_ += retx; @@ -96,6 +98,10 @@ class TransportStatistics { lost_data_ += pkt; } + TRANSPORT_ALWAYS_INLINE void updateDefinitelyLostData(uint64_t pkt) { + definitely_lost_data_ += pkt; + } + TRANSPORT_ALWAYS_INLINE void updateRecoveredData(uint64_t bytes) { recovered_data_ += bytes; } @@ -110,6 +116,10 @@ class TransportStatistics { received_nacks_ += nacks; } + TRANSPORT_ALWAYS_INLINE void updateReceivedFEC(uint32_t pkt) { + received_fec_ += pkt; + } + TRANSPORT_ALWAYS_INLINE uint64_t getRetxCount() const { return retx_count_; } TRANSPORT_ALWAYS_INLINE uint64_t getBytesRecv() const { @@ -142,6 +152,10 @@ class TransportStatistics { TRANSPORT_ALWAYS_INLINE uint64_t getLostData() const { return lost_data_; } + TRANSPORT_ALWAYS_INLINE uint64_t getDefinitelyLostData() const { + return definitely_lost_data_; + } + TRANSPORT_ALWAYS_INLINE uint64_t getBytesRecoveredData() const { return recovered_data_; } @@ -156,6 +170,10 @@ class TransportStatistics { return received_nacks_; } + TRANSPORT_ALWAYS_INLINE uint32_t getReceivedFEC() const { + return received_fec_; + } + TRANSPORT_ALWAYS_INLINE void setAlpha(double val) { alpha_ = val; } TRANSPORT_ALWAYS_INLINE void reset() { @@ -168,11 +186,13 @@ class TransportStatistics { interest_FEC_tx_ = 0; bytes_FEC_received_ = 0; lost_data_ = 0; + definitely_lost_data_ = 0; recovered_data_ = 0; status_ = 0; // avg_data_rtt_ = 0; avg_pending_pkt_ = 0; received_nacks_ = 0; + received_fec_ = 0; } private: @@ -187,10 +207,12 @@ class TransportStatistics { uint64_t interest_FEC_tx_; uint64_t bytes_FEC_received_; uint64_t lost_data_; + uint64_t definitely_lost_data_; uint64_t recovered_data_; int status_; // transport status (e.g. sync status, congestion etc.) double avg_pending_pkt_; uint32_t received_nacks_; + uint32_t received_fec_; }; } // namespace interface -- cgit 1.2.3-korg