From fd13f6c199d22a9f8a083c0e27fc2e8377894f6d Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 7 Jul 2017 14:29:36 +0200 Subject: Encapsulate handling of UL ACK timeout Use helper methods instead checking and manipulating flag directly. Change-Id: Ia3f009c52118db95b38a077e08eecda844e7f8d1 Related: OS#1539 --- src/tbf_ul.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/tbf_ul.cpp') diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 1eee41a2..1e0898a4 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -95,6 +95,27 @@ int gprs_rlcmac_ul_tbf::assemble_forward_llc(const gprs_rlc_data *_data) return 0; } +bool gprs_rlcmac_ul_tbf::ctrl_ack_to_toggle() +{ + if ((state_flags & (1 << GPRS_RLCMAC_FLAG_TO_UL_ACK))) { + state_flags &= ~(1 << GPRS_RLCMAC_FLAG_TO_UL_ACK); + return true; /* GPRS_RLCMAC_FLAG_TO_UL_ACK was set, now cleared */ + } + + state_flags |= (1 << GPRS_RLCMAC_FLAG_TO_UL_ACK); + return false; /* GPRS_RLCMAC_FLAG_TO_UL_ACK was unset, now set */ +} + +bool gprs_rlcmac_ul_tbf::handle_ctrl_ack() +{ + /* check if this control ack belongs to packet uplink ack */ + if (ul_ack_state == GPRS_RLCMAC_UL_ACK_WAIT_ACK) { + ul_ack_state = GPRS_RLCMAC_UL_ACK_NONE; + return true; + } + + return false; +} struct msgb *gprs_rlcmac_ul_tbf::create_ul_ack(uint32_t fn, uint8_t ts) { -- cgit v1.2.3