fixeria has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmocom-bb/+/32675 )
Change subject: virt_phy: fix TDMA Fn math in l1ctl_rx_rach_req()
......................................................................
virt_phy: fix TDMA Fn math in l1ctl_rx_rach_req()
Change-Id: I7922dd2d3257257b3bf8711ec859dd99463adc39
Related: OS#5500
---
M src/host/virt_phy/src/virt_prim_rach.c
1 file changed, 14 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/75/32675/1
diff --git a/src/host/virt_phy/src/virt_prim_rach.c
b/src/host/virt_phy/src/virt_prim_rach.c
index 547e8f1..d12e63c 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 @@
/* 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);
--
To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/32675
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I7922dd2d3257257b3bf8711ec859dd99463adc39
Gerrit-Change-Number: 32675
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newchange