diff --git a/src/bts.cpp b/src/bts.cpp index 818530b0..43098c1f 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -57,6 +57,7 @@ static const struct rate_ctr_desc bts_ctr_description[] = { { "rlc.sent", "RLC Sent "}, { "rlc.resent", "RLC Resent "}, { "rlc.stalled", "RLC Stalled "}, + { "rlc.nacked", "RLC Nacked "}, { "decode.errors", "Decode Errors "}, { "sba.allocated", "SBA Allocated "}, { "sba.freed", "SBA Freed "}, diff --git a/src/bts.h b/src/bts.h index 178be3d8..a28d6be8 100644 --- a/src/bts.h +++ b/src/bts.h @@ -161,6 +161,7 @@ public: CTR_RLC_SENT, CTR_RLC_RESENT, CTR_RLC_STALLED, + CTR_RLC_NACKED, CTR_DECODE_ERRORS, CTR_SBA_ALLOCATED, CTR_SBA_FREED, @@ -210,6 +211,7 @@ public: void rlc_sent(); void rlc_resent(); void rlc_stalled(); + void rlc_nacked(); void decode_error(); void sba_allocated(); void sba_freed(); @@ -276,6 +278,7 @@ 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(rlc_nacked, CTR_RLC_NACKED) 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 0226691f..19a0d819 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1471,6 +1471,7 @@ int gprs_rlcmac_tbf::snd_dl_ack(uint8_t final, uint8_t ssn, uint8_t *rbb) LOGP(DRLCMACDL, LOGL_DEBUG, "- got " "NACK for BSN=%d\n", bsn); dir.dl.v_b[bsn & mod_sns_half] = 'N'; + bts->rlc_nacked(); lost++; } }