From 73191a443f4be0a6a6ae7058625912150e07e3c7 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Fri, 30 May 2014 17:58:00 +0200 Subject: tbf/bts, encoding: Keep track of WAIT_RELEASE state for DL assignment The current code does not properly distinguish between DL assignments to reuse a tbf (after it was put in state WAIT_RELEASE) and DL assignments for an active tbf to change the allocation of the PDCH timeslots. This patch introduces a new variable was_releasing which remembers if trigger_dl_ass() was called with a tbf in state WAIT_RELEASE. In that case we have to set the CONTROL_ACK field in the download assignment. This should allow us to send DL assignments to change PDCH TS allocation of a tbf before we enter FLOW state. --- src/tbf.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/tbf.cpp') diff --git a/src/tbf.cpp b/src/tbf.cpp index b20d0fc7..dd1f0fb3 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1405,6 +1405,8 @@ int gprs_rlcmac_tbf::maybe_start_new_window() /* report all outstanding packets as received */ gprs_rlcmac_received_lost(this, received, 0); + tbf_new_state(this, GPRS_RLCMAC_WAIT_RELEASE); + /* check for LLC PDU in the LLC Queue */ msg = llc_dequeue(gprs_bssgp_pcu_current_bctx()); if (!msg) { @@ -1414,7 +1416,6 @@ int gprs_rlcmac_tbf::maybe_start_new_window() tbf_timer_start(this, 3193, bts_data()->t3193_msec / 1000, (bts_data()->t3193_msec % 1000) * 1000); - tbf_new_state(this, GPRS_RLCMAC_WAIT_RELEASE); return 0; } -- cgit v1.2.3