diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2023-05-10 02:43:59 +0700 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2023-05-10 02:44:02 +0700 |
commit | 80de799514f20dd9d3759932d7c839902c7b7692 (patch) | |
tree | 198918e62d2f1b82bf47cb185aba18f50b74a67f | |
parent | 8e78ff491babe84416dbb5744b3aa3842b3dd68b (diff) |
virt_phy: fix TDMA Fn math in l1ctl_rx_rach_req()
Change-Id: I7922dd2d3257257b3bf8711ec859dd99463adc39
Related: OS#5500
-rw-r--r-- | src/host/virt_phy/src/virt_prim_rach.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/host/virt_phy/src/virt_prim_rach.c b/src/host/virt_phy/src/virt_prim_rach.c index 547e8f1f..d12e63c6 100644 --- a/src/host/virt_phy/src/virt_prim_rach.c +++ b/src/host/virt_phy/src/virt_prim_rach.c @@ -26,6 +26,7 @@ #include <osmocom/core/msgb.h> #include <osmocom/gsm/rsl.h> #include <osmocom/gsm/gsm_utils.h> +#include <osmocom/gsm/gsm0502.h> #include <osmocom/gsm/protocol/gsm_08_58.h> #include <osmocom/bb/virtphy/l1ctl_sap.h> @@ -97,11 +98,12 @@ void l1ctl_rx_rach_req(struct l1_model_ms *ms, struct msgb *msg) /* add elapsed RACH slots to offset */ offset += t3_to_rach_comb[l1s->current_time.t3]; /* offset is the number of RACH slots in the future */ - fn_sched = l1s->current_time.fn - l1s->current_time.t3; + fn_sched = GSM_TDMA_FN_SUB(l1s->current_time.fn, l1s->current_time.t3); fn_sched += offset / 27 * 51; fn_sched += rach_to_t3_comb[offset % 27]; + fn_sched %= GSM_TDMA_HYPERFRAME; } else - fn_sched = l1s->current_time.fn + offset; + fn_sched = GSM_TDMA_FN_SUM(l1s->current_time.fn, offset); virt_l1_sched_schedule(ms, msg, fn_sched, ul->chan_nr & 0x07, &virt_l1_sched_handler_cb); |