aboutsummaryrefslogtreecommitdiffstats
path: root/src/bts.h
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-08-24 14:35:14 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-08-28 12:23:07 +0200
commit60f77033ad15da909cdbc0682c781151a23c170c (patch)
tree09aacd91770c3cae04e159f89a7388d77bbf91b0 /src/bts.h
parente77d49f2a2c20202dbdc5386c7dfeed4e773a077 (diff)
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
Diffstat (limited to 'src/bts.h')
-rw-r--r--src/bts.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/bts.h b/src/bts.h
index e0f09b98..3dfe3f37 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -244,6 +244,7 @@ public:
/** TODO: change the number to unsigned */
void set_current_frame_number(int frame_number);
+ void set_current_block_frame_number(int frame_number);
int current_frame_number() const;
/** add paging to paging queue(s) */
@@ -301,6 +302,7 @@ public:
private:
int m_cur_fn;
+ int m_cur_blk_fn;
struct gprs_rlcmac_bts m_bts;
PollController m_pollController;
SBAController m_sba;