aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/scheduler.c
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-06-17 05:08:54 +0700
committerfixeria <vyanitskiy@sysmocom.de>2020-06-25 18:02:10 +0000
commit2f18578dcc82b73ea06464dc59e215874eaf1e0b (patch)
treea4c767914900838f8e75a40a04c92c9bc26716dd /src/common/scheduler.c
parent7a7168f0a86431a082836f59288cac683c485004 (diff)
Use libosmocore's TDMA frame number API (constatns & arithmetic)
Diffstat (limited to 'src/common/scheduler.c')
-rw-r--r--src/common/scheduler.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/common/scheduler.c b/src/common/scheduler.c
index 01edc69c..62efed41 100644
--- a/src/common/scheduler.c
+++ b/src/common/scheduler.c
@@ -684,7 +684,7 @@ struct msgb *_sched_dequeue_prim(struct l1sched_trx *l1t, int8_t tn, uint32_t fn
LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong type.\n");
goto free_msg;
}
- prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME);
+ prim_fn = GSM_TDMA_FN_SUB(l1sap_fn, fn);
if (prim_fn > 100) { /* l1sap_fn < fn */
LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn,
"Prim %u is out of range (%u vs exp %u), or channel %s with "
@@ -1248,12 +1248,6 @@ no_data:
}
}
-#define TDMA_FN_SUM(a, b) \
- ((a + GSM_HYPERFRAME + b) % GSM_HYPERFRAME)
-
-#define TDMA_FN_SUB(a, b) \
- ((a + GSM_HYPERFRAME - b) % GSM_HYPERFRAME)
-
static int trx_sched_calc_frame_loss(struct l1sched_trx *l1t,
struct l1sched_chan_state *l1cs, uint8_t tn, uint32_t fn)
{
@@ -1291,7 +1285,7 @@ static int trx_sched_calc_frame_loss(struct l1sched_trx *l1t,
}
/* How many frames elapsed since the last one? */
- elapsed_fs = TDMA_FN_SUB(fn, l1cs->last_tdma_fn);
+ elapsed_fs = GSM_TDMA_FN_SUB(fn, l1cs->last_tdma_fn);
if (elapsed_fs > l1ts->mf_period) { /* Too many! */
LOGL1S(DL1P, LOGL_ERROR, l1t, tn, frame_head->ul_chan, fn,
"Too many (>%u) contiguous TDMA frames=%u elapsed "
@@ -1310,7 +1304,7 @@ static int trx_sched_calc_frame_loss(struct l1sched_trx *l1t,
* Start counting from the last_fn + 1.
*/
for (i = 1; i < elapsed_fs; i++) {
- fn_i = TDMA_FN_SUM(l1cs->last_tdma_fn, i);
+ fn_i = GSM_TDMA_FN_SUM(l1cs->last_tdma_fn, i);
offset = fn_i % l1ts->mf_period;
frame = l1ts->mf_frames + offset;
@@ -1343,7 +1337,7 @@ static int trx_sched_calc_frame_loss(struct l1sched_trx *l1t,
};
for (i = 1; i < elapsed_fs; i++) {
- fn_i = TDMA_FN_SUM(l1cs->last_tdma_fn, i);
+ fn_i = GSM_TDMA_FN_SUM(l1cs->last_tdma_fn, i);
offset = fn_i % l1ts->mf_period;
frame = l1ts->mf_frames + offset;
func = trx_chan_desc[frame->ul_chan].ul_fn;