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();
+}