tbf: Move T3193 to tbf_state FSM
Related: OS#2709
Change-Id: Icf8249651e34132eb7ba99188a23662dec6f8653
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 65785f2..885f0d4 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -1141,8 +1141,16 @@
int gprs_rlcmac_dl_tbf::rcvd_dl_final_ack()
{
+ uint16_t received;
+
osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_FINAL_ACK_RECVD, NULL);
- release();
+
+ /* range V(A)..V(S)-1 */
+ received = m_window.count_unacked();
+ /* report all outstanding packets as received */
+ gprs_rlcmac_received_lost(this, received, 0);
+ m_tx_counter = 0;
+ m_window.reset();
/* check for LLC PDU in the LLC Queue */
if (llc_queue_size(llc_queue()) > 0)
@@ -1152,28 +1160,6 @@
return 0;
}
-int gprs_rlcmac_dl_tbf::release()
-{
- uint16_t received;
-
- /* range V(A)..V(S)-1 */
- received = m_window.count_unacked();
-
- /* report all outstanding packets as received */
- gprs_rlcmac_received_lost(this, received, 0);
-
- /* start T3193 */
- T_START(this, T3193, 3193, "release (DL-TBF)", true);
-
- /* reset rlc states */
- m_tx_counter = 0;
- m_window.reset();
-
- osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_ASSIGN_DEL_CCCH, NULL);
-
- return 0;
-}
-
int gprs_rlcmac_dl_tbf::rcvd_dl_ack(bool final_ack, unsigned first_bsn,
struct bitvec *rbb)
{