From 60f77033ad15da909cdbc0682c781151a23c170c Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Mon, 24 Aug 2015 14:35:14 +0200 Subject: poll: Use the data_ind FN as time source for current frame The FN of the data_ind taken from the DSP are monotonic, so latency does not affect the detection of poll timeouts if these FN are used. If the FN is larger than a poll_fn value, it can safely be assumed that the poll response will not arrive later on. Currently a max_delay of 60 frames is used, which has the drawback that additional ~250ms will pass until a lost ACK is detected. Using the data_ind's FN alone breaks the poll timeout detection if there are no other MS sending data blocks. This commit adds BTS::set_current_block_frame_number that is called with the FN taken from data_ind messages. The max_delay is set to 0 which removes the additional delay, when this FN is used to detect poll timeouts. So the average additional delay decreases with the number of data_ind per time. The current_frame is updated unless it seems to have been updated already (assumed if 0 < cur_fn - block_fn < 500). Thus the time_ind has still priority to update the current_frame value. Sponsored-by: On-Waves ehf --- tests/tbf/TbfTest.err | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'tests') diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index e49dd439..082b64df 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1637,6 +1637,10 @@ TX: Immediate Assignment Uplink (AGCH) Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8c f6 07 00 c0 0c 68 ab 2b 2b 2b 2b 2b 2b 2b Searching for first unallocated TFI: TRX=0 Found TFI=1. +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654292 (curr FN 2654335) +- Timeout for polling PACKET DOWNLINK ACK. +- Assignment was on PACCH +- No downlink ACK received yet +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ ------------------------- RX : Uplink Control Block ------------------------- MS requests UL TBF in packet resource request of single block, so we provide one: -- cgit v1.2.3