aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/bts.cpp2
-rw-r--r--src/bts.h6
-rw-r--r--src/tbf.cpp3
3 files changed, 11 insertions, 0 deletions
diff --git a/src/bts.cpp b/src/bts.cpp
index 39737f4e..122ff202 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -62,7 +62,9 @@ static const struct rate_ctr_desc bts_ctr_description[] = {
{ "rlc.stalled", "RLC Stalled "},
{ "rlc.nacked", "RLC Nacked "},
{ "rlc.ass.timedout", "RLC Assign Timeout "},
+ { "rlc.ass.failed", "RLC Assign Failed "},
{ "rlc.ack.timedout", "RLC Ack Timeout "},
+ { "rlc.ack.failed", "RLC Ack Failed "},
{ "rlc.rel.timedout", "RLC Release Timeout "},
{ "rlc.late-block", "RLC Late Block "},
{ "decode.errors", "Decode Errors "},
diff --git a/src/bts.h b/src/bts.h
index eee62a71..41294831 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -218,7 +218,9 @@ public:
CTR_RLC_STALLED,
CTR_RLC_NACKED,
CTR_RLC_ASS_TIMEDOUT,
+ CTR_RLC_ASS_FAILED,
CTR_RLC_ACK_TIMEDOUT,
+ CTR_RLC_ACK_FAILED,
CTR_RLC_REL_TIMEDOUT,
CTR_RLC_LATE_BLOCK,
CTR_DECODE_ERRORS,
@@ -285,7 +287,9 @@ public:
void rlc_stalled();
void rlc_nacked();
void rlc_ass_timedout();
+ void rlc_ass_failed();
void rlc_ack_timedout();
+ void rlc_ack_failed();
void rlc_rel_timedout();
void rlc_late_block();
void decode_error();
@@ -393,7 +397,9 @@ CREATE_COUNT_INLINE(rlc_restarted, CTR_RLC_RESTARTED)
CREATE_COUNT_INLINE(rlc_stalled, CTR_RLC_STALLED)
CREATE_COUNT_INLINE(rlc_nacked, CTR_RLC_NACKED)
CREATE_COUNT_INLINE(rlc_ass_timedout, CTR_RLC_ASS_TIMEDOUT);
+CREATE_COUNT_INLINE(rlc_ass_failed, CTR_RLC_ASS_FAILED);
CREATE_COUNT_INLINE(rlc_ack_timedout, CTR_RLC_ACK_TIMEDOUT);
+CREATE_COUNT_INLINE(rlc_ack_failed, CTR_RLC_ACK_FAILED);
CREATE_COUNT_INLINE(rlc_rel_timedout, CTR_RLC_REL_TIMEDOUT);
CREATE_COUNT_INLINE(rlc_late_block, CTR_RLC_LATE_BLOCK);
CREATE_COUNT_INLINE(decode_error, CTR_DECODE_ERRORS)
diff --git a/src/tbf.cpp b/src/tbf.cpp
index b604c683..6c1320fc 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -473,6 +473,7 @@ void gprs_rlcmac_tbf::poll_timeout()
LOGP(DRLCMAC, LOGL_NOTICE, "- N3105 exceeded\n");
set_state(GPRS_RLCMAC_RELEASING);
tbf_timer_start(this, 3195, bts_data()->t3195, 0);
+ bts->rlc_ass_failed();
return;
}
/* reschedule UL assignment */
@@ -492,6 +493,7 @@ void gprs_rlcmac_tbf::poll_timeout()
LOGP(DRLCMAC, LOGL_NOTICE, "- N3105 exceeded\n");
set_state(GPRS_RLCMAC_RELEASING);
tbf_timer_start(this, 3195, bts_data()->t3195, 0);
+ bts->rlc_ass_failed();
return;
}
/* reschedule DL assignment */
@@ -514,6 +516,7 @@ void gprs_rlcmac_tbf::poll_timeout()
LOGP(DRLCMAC, LOGL_NOTICE, "- N3105 exceeded\n");
dl_tbf->set_state(GPRS_RLCMAC_RELEASING);
tbf_timer_start(dl_tbf, 3195, dl_tbf->bts_data()->t3195, 0);
+ bts->rlc_ack_failed();
return;
}
/* resend IMM.ASS on CCCH on timeout */