diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-03-29 18:15:30 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-03-31 17:39:50 +0200 |
commit | 86580e1966b7272cad75c845607e45b8347cf758 (patch) | |
tree | 3b65144d5888c3c1eed7fbb5de9ee2c86bdfdcda /src/pdch.cpp | |
parent | b5ae0811d1667e792fc3a4e550384791f4bca4c9 (diff) |
pdch_ulc: Store TBF poll reason
This allows easily checking the initial reason to trigger the poll when
either it is received or times out.
Later on this reason can be transformed into an FSM event and sent to
the related FSM.
Related: OS#5020
Change-Id: Ie8fefd1f47ad674ce597a8065b15284088956bde
Diffstat (limited to 'src/pdch.cpp')
-rw-r--r-- | src/pdch.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/pdch.cpp b/src/pdch.cpp index 45c7c984..22bac0bd 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -306,6 +306,7 @@ void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet, uint32_t tlli = packet->TLLI; GprsMs *ms = bts_ms_by_tlli(bts(), tlli, GSM_RESERVED_TMSI); gprs_rlcmac_ul_tbf *ul_tbf; + enum pdch_ulc_tbf_poll_reason reason; struct pdch_ulc_node *poll; poll = pdch_ulc_get_node(ulc, fn); @@ -325,6 +326,7 @@ void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet, return; } tbf = poll->tbf_poll.poll_tbf; + reason = poll->tbf_poll.reason; /* Reset N3101 counter: */ tbf->n_reset(N3101); @@ -337,7 +339,7 @@ void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet, /* check if this control ack belongs to packet uplink ack */ ul_tbf = as_ul_tbf(tbf); - if (ul_tbf && ul_tbf->handle_ctrl_ack()) { + if (ul_tbf && ul_tbf->handle_ctrl_ack(reason)) { LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] END\n"); if (ul_tbf->ctrl_ack_to_toggle()) LOGPTBF(tbf, LOGL_NOTICE, "Recovered uplink ack for UL\n"); |