This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Vadim Yanitskiy gerrit-no-reply at lists.osmocom.org
Review at https://gerrit.osmocom.org/7078
common/l1sap.c: clean up RACH ToA (Timing of Arrival) check
And use units of 1/256 symbol periods for better precision.
Change-Id: Icfe1256cba117a5735107a25bf7cdb47479454ee
---
M src/common/l1sap.c
1 file changed, 8 insertions(+), 13 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/78/7078/1
diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index 330b40a..ecd6805 100644
--- a/src/common/l1sap.c
+++ b/src/common/l1sap.c
@@ -797,13 +797,6 @@
return 1;
}
-static int check_acc_delay(struct ph_rach_ind_param *rach_ind,
- struct gsm_bts_role_bts *btsb, uint8_t *acc_delay)
-{
- *acc_delay = rach_ind->acc_delay;
- return *acc_delay <= btsb->max_ta;
-}
-
/* special case where handover RACH is detected */
static int l1sap_handover_rach(struct gsm_bts_trx *trx,
struct osmo_phsap_prim *l1sap, struct ph_rach_ind_param *rach_ind)
@@ -1187,7 +1180,7 @@
struct gsm_bts *bts = trx->bts;
struct gsm_bts_role_bts *btsb = bts->role;
struct lapdm_channel *lc;
- uint8_t acc_delay;
+ int16_t toa256 = rach_ind->acc_delay_256bits;
DEBUGPFN(DL1P, rach_ind->fn, "Rx PH-RA.ind");
@@ -1215,16 +1208,18 @@
lc = &trx->ts[0].lchan[CCCH_LCHAN].lapdm_ch;
- /* check for under/overflow / sign */
- if (!check_acc_delay(rach_ind, btsb, &acc_delay)) {
- LOGPFN(DL1C, LOGL_INFO, rach_ind->fn, "ignoring RACH request %u > max_ta(%u)\n",
- acc_delay, btsb->max_ta);
+ /* Make sure that ToA (Timing of Arrival) is acceptable */
+ if (toa256 > btsb->max_ta * 256) {
+ LOGPFN(DL1C, LOGL_INFO, rach_ind->fn, "Ignoring RACH request: "
+ "ToA(%d) exceeds the maximal allowed TA(%u) * 256 value\n",
+ toa256, btsb->max_ta);
rate_ctr_inc2(trx->bts->ctrs, BTS_CTR_RACH_DROP);
return 0;
}
/* According to 3GPP TS 48.058 § 9.3.17 Access Delay is expressed same way as TA (number of symbols) */
- set_ms_to_data(get_lchan_by_chan_nr(trx, rach_ind->chan_nr), acc_delay, false);
+ set_ms_to_data(get_lchan_by_chan_nr(trx, rach_ind->chan_nr),
+ rach_ind->acc_delay, false);
/* check for packet access */
if ((trx == bts->c0 && L1SAP_IS_PACKET_RACH(rach_ind->ra)) ||
--
To view, visit https://gerrit.osmocom.org/7078
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icfe1256cba117a5735107a25bf7cdb47479454ee
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com>