aboutsummaryrefslogtreecommitdiffstats
path: root/src/bts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bts.cpp')
-rw-r--r--src/bts.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/bts.cpp b/src/bts.cpp
index 98a23ccd..65289158 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -984,17 +984,23 @@ void gprs_rlcmac_pdch::rcv_resource_request(Packet_Resource_Request_t *request,
"TLLI=0x%08x while %s still "
"exists. Killing pending UL TBF\n",
tlli, tbf_name(ul_tbf));
+ /* The MS will not use the old TBF again, so we can
+ * safely throw it away immediately */
tbf_free(ul_tbf);
ul_tbf = NULL;
}
if (dl_tbf) {
+ /* TODO: There a chance that releasing dl_tbf can be
+ * avoided if this PDCH is the control TS of dl_tbf,
+ * but this needs to be checked with the spec. If an MS
+ * losed the DL TBF because of PDCH mismatches only,
+ * this check would make sense. */
LOGP(DRLCMACUL, LOGL_NOTICE, "Got RACH from "
"TLLI=0x%08x while %s still exists. "
- "Killing pending DL TBF\n", tlli,
+ "Release pending DL TBF\n", tlli,
tbf_name(dl_tbf));
- tbf_free(dl_tbf);
- dl_tbf = NULL;
+ dl_tbf->release();
}
LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF "
"in packet resource request of single "