Properly implement N3101
N3101 is incremented by unanswered USF requests, not from unanswered
POLLs.
Related: OS#5033
Change-Id: I1a55bdd39db8843976915b9f74fadb0942298413
diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp
index f226b29..ba491f6 100644
--- a/src/tbf_ul.cpp
+++ b/src/tbf_ul.cpp
@@ -772,6 +772,15 @@
return &m_window;
}
+void gprs_rlcmac_ul_tbf::usf_timeout()
+{
+ if (n_inc(N3101)) {
+ TBF_SET_STATE(this, GPRS_RLCMAC_RELEASING);
+ T_START(this, T3169, 3169, "MAX N3101 reached", false);
+ return;
+ }
+}
+
struct gprs_rlcmac_ul_tbf *as_ul_tbf(struct gprs_rlcmac_tbf *tbf)
{
if (tbf && tbf->direction == GPRS_RLCMAC_UL_TBF)
@@ -779,3 +788,8 @@
else
return NULL;
}
+
+void tbf_usf_timeout(struct gprs_rlcmac_ul_tbf *tbf)
+{
+ tbf->usf_timeout();
+}