aboutsummaryrefslogtreecommitdiffstats
path: root/src/bts.cpp
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2017-07-07 13:49:29 +0200
committerMax <msuraev@sysmocom.de>2017-07-10 09:39:53 +0000
commitaae1bfbbe0694db5df21073780fad964044dc4c1 (patch)
tree180d8903cef422c2d38956abca655a8b73df3cb8 /src/bts.cpp
parent557959546441ec1aa7667ddaf8fcfeccec23f493 (diff)
Remove TBF knowledge from rcv_control*dl_ack_nack
Do not access TBF internals directly from rcv_control*dl_ack_nack() - wrap corresponding code into TBF-DL method. Change-Id: I3d1b5782001e45617b4a960612fcfc249904b37c Related: OS#1539
Diffstat (limited to 'src/bts.cpp')
-rw-r--r--src/bts.cpp28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/bts.cpp b/src/bts.cpp
index 1d27284b..5192646f 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -1175,17 +1175,11 @@ void gprs_rlcmac_pdch::rcv_control_dl_ack_nack(Packet_Downlink_Ack_Nack_t *ack_n
"wrong TFI=%d, ignoring!\n", tfi);
return;
}
- tbf->state_flags |= (1 << GPRS_RLCMAC_FLAG_DL_ACK);
- if ((tbf->state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK))) {
- tbf->state_flags &= ~(1 << GPRS_RLCMAC_FLAG_TO_DL_ACK);
- LOGP(DRLCMAC, LOGL_NOTICE, "Recovered downlink ack "
- "for %s\n", tbf_name(tbf));
- }
- /* reset N3105 */
- tbf->n3105 = 0;
- tbf->stop_t3191();
+
+ if (tbf->handle_ack_nack())
+ LOGP(DRLCMAC, LOGL_NOTICE, "Recovered downlink ack for %s\n", tbf_name(tbf));
+
LOGP(DRLCMAC, LOGL_DEBUG, "RX: [PCU <- BTS] %s Packet Downlink Ack/Nack\n", tbf_name(tbf));
- tbf->poll_state = GPRS_RLCMAC_POLL_NONE;
bits.data = bits_data;
bits.data_len = sizeof(bits_data);
@@ -1263,19 +1257,13 @@ void gprs_rlcmac_pdch::rcv_control_egprs_dl_ack_nack(EGPRS_PD_AckNack_t *ack_nac
"wrong TFI=%d, ignoring!\n", tfi);
return;
}
- tbf->state_flags |= (1 << GPRS_RLCMAC_FLAG_DL_ACK);
- if ((tbf->state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK))) {
- tbf->state_flags &= ~(1 << GPRS_RLCMAC_FLAG_TO_DL_ACK);
- LOGP(DRLCMAC, LOGL_NOTICE, "Recovered EGPRS downlink ack "
- "for %s\n", tbf_name(tbf));
- }
- /* reset N3105 */
- tbf->n3105 = 0;
- tbf->stop_t3191();
+
+ if (tbf->handle_ack_nack())
+ LOGP(DRLCMAC, LOGL_NOTICE, "Recovered EGPRS downlink ack for %s\n", tbf_name(tbf));
+
LOGP(DRLCMAC, LOGL_DEBUG,
"RX: [PCU <- BTS] %s EGPRS Packet Downlink Ack/Nack\n",
tbf_name(tbf));
- tbf->poll_state = GPRS_RLCMAC_POLL_NONE;
LOGP(DRLCMAC, LOGL_DEBUG, "EGPRS ACK/NACK: "
"ut: %d, final: %d, bow: %d, eow: %d, ssn: %d, have_crbb: %d, "