diff options
-rw-r--r-- | src/bts.cpp | 1 | ||||
-rw-r--r-- | src/bts.h | 3 | ||||
-rw-r--r-- | src/tbf.cpp | 4 |
3 files changed, 7 insertions, 1 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index b261ea45..818530b0 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -56,6 +56,7 @@ static const struct rate_ctr_desc bts_ctr_description[] = { { "tbf.reused", "TBF Reused "}, { "rlc.sent", "RLC Sent "}, { "rlc.resent", "RLC Resent "}, + { "rlc.stalled", "RLC Stalled "}, { "decode.errors", "Decode Errors "}, { "sba.allocated", "SBA Allocated "}, { "sba.freed", "SBA Freed "}, @@ -160,6 +160,7 @@ public: CTR_TBF_REUSED, CTR_RLC_SENT, CTR_RLC_RESENT, + CTR_RLC_STALLED, CTR_DECODE_ERRORS, CTR_SBA_ALLOCATED, CTR_SBA_FREED, @@ -208,6 +209,7 @@ public: void tbf_reused(); void rlc_sent(); void rlc_resent(); + void rlc_stalled(); void decode_error(); void sba_allocated(); void sba_freed(); @@ -273,6 +275,7 @@ CREATE_COUNT_INLINE(tbf_ul_freed, CTR_TBF_UL_FREED) CREATE_COUNT_INLINE(tbf_reused, CTR_TBF_REUSED) CREATE_COUNT_INLINE(rlc_sent, CTR_RLC_SENT) CREATE_COUNT_INLINE(rlc_resent, CTR_RLC_RESENT) +CREATE_COUNT_INLINE(rlc_stalled, CTR_RLC_STALLED) CREATE_COUNT_INLINE(decode_error, CTR_DECODE_ERRORS) CREATE_COUNT_INLINE(sba_allocated, CTR_SBA_ALLOCATED) CREATE_COUNT_INLINE(sba_freed, CTR_SBA_FREED) diff --git a/src/tbf.cpp b/src/tbf.cpp index 14e6e2ae..5c6c15f6 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -918,10 +918,12 @@ do_resend: LOGP(DRLCMACDL, LOGL_DEBUG, "- Restarting at BSN %d, " "because all blocks have been transmitted.\n", dir.dl.v_a); - else + else { LOGP(DRLCMACDL, LOGL_NOTICE, "- Restarting at BSN %d, " "because all window is stalled.\n", dir.dl.v_a); + bts->rlc_stalled(); + } /* If V(S) == V(A) and finished state, we would have received * acknowledgement of all transmitted block. In this case we * would have transmitted the final block, and received ack |