diff options
author | Max <msuraev@sysmocom.de> | 2017-05-16 16:10:45 +0200 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2017-05-26 07:55:52 +0000 |
commit | 9dabfa2c2b882bf4ce72c941f021f7a439de041a (patch) | |
tree | 6f060cdd5d071f9b156b5cbaafd1e167a4b3b71f /src/bts.cpp | |
parent | 356ac618f1f4b455e411507c4be4c9909fe927bb (diff) |
Cleanup FN scheduling
* replace magic number with defined constant
* move copy-pasted code to inline functions
* remove unused code
Change-Id: I6fee0714453d0c3c3f3f875f88daea2d9c477331
Related: OS#1524
Diffstat (limited to 'src/bts.cpp')
-rw-r--r-- | src/bts.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index 61c93214..1d27284b 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -238,6 +238,11 @@ void BTS::set_current_frame_number(int fn) m_pollController.expireTimedout(m_cur_fn, max_delay); } +static inline int delta_fn(int fn, int to) +{ + return (fn + GSM_MAX_FN * 3 / 2 - to) % GSM_MAX_FN - GSM_MAX_FN/2; +} + void BTS::set_current_block_frame_number(int fn, unsigned max_delay) { int delay = 0; @@ -248,15 +253,14 @@ void BTS::set_current_block_frame_number(int fn, unsigned max_delay) /* frame numbers in the received blocks are assumed to be strongly * monotonic. */ if (m_cur_blk_fn >= 0) { - int delta = (fn + 2715648 * 3 / 2 - m_cur_blk_fn) % 2715648 - 2715648/2; + int delta = delta_fn(fn, m_cur_blk_fn); if (delta <= 0) return; } /* Check block delay vs. the current frame number */ if (current_frame_number() != 0) - delay = (fn + 2715648 * 3 / 2 - current_frame_number()) % 2715648 - - 2715648/2; + delay = delta_fn(fn, current_frame_number()); if (delay <= -late_block_delay_thresh) { LOGP(DRLCMAC, LOGL_NOTICE, "Late RLC block, FN delta: %d FN: %d curFN: %d\n", @@ -814,7 +818,7 @@ void BTS::snd_dl_ass(gprs_rlcmac_tbf *tbf, uint8_t poll, const char *imsi) tbf->trx->trx_no, tbf->trx->arfcn, ts, tbf->ta(), poll ? tbf->poll_fn : -1); plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, 1, 125, - (tbf->pdch[ts]->last_rts_fn + 21216) % 2715648, tbf->ta(), + (tbf->pdch[ts]->last_rts_fn + 21216) % GSM_MAX_FN, tbf->ta(), tbf->trx->arfcn, ts, tbf->tsc(), 7, poll, tbf->poll_fn, m_bts.alpha, m_bts.gamma, -1); if (plen >= 0) { |