aboutsummaryrefslogtreecommitdiffstats
path: root/src/tbf_ul.cpp
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-03-24 14:45:43 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2021-03-24 17:16:29 +0100
commit0b998b15da4bb4e4c6ce35316218c47daa190004 (patch)
treef09c3629d92da385d342375c3087b9c5fc9edd06 /src/tbf_ul.cpp
parentc1f38c7f0b72c7cf701cb8d9a0a0ed996538d1f6 (diff)
Properly implement N3101
N3101 is incremented by unanswered USF requests, not from unanswered POLLs. Related: OS#5033 Change-Id: I1a55bdd39db8843976915b9f74fadb0942298413
Diffstat (limited to 'src/tbf_ul.cpp')
-rw-r--r--src/tbf_ul.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp
index f226b290..ba491f6d 100644
--- a/src/tbf_ul.cpp
+++ b/src/tbf_ul.cpp
@@ -772,6 +772,15 @@ gprs_rlc_window *gprs_rlcmac_ul_tbf::window()
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 @@ struct gprs_rlcmac_ul_tbf *as_ul_tbf(struct gprs_rlcmac_tbf *tbf)
else
return NULL;
}
+
+void tbf_usf_timeout(struct gprs_rlcmac_ul_tbf *tbf)
+{
+ tbf->usf_timeout();
+}