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.orgVadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/14323
Change subject: osmo-bts-trx/scheduler: fix handover RACH handling
......................................................................
osmo-bts-trx/scheduler: fix handover RACH handling
Change-Id: I78fa77799f5184cc96a28856eead8b296529c5d8
---
M src/common/scheduler.c
M src/osmo-bts-trx/scheduler_trx.c
2 files changed, 12 insertions(+), 14 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/23/14323/1
diff --git a/src/common/scheduler.c b/src/common/scheduler.c
index 6ad2e1f..caccda2 100644
--- a/src/common/scheduler.c
+++ b/src/common/scheduler.c
@@ -1338,8 +1338,17 @@
func = trx_chan_desc[chan].ul_fn;
/* check if channel is active */
- if (!TRX_CHAN_IS_ACTIVE(l1cs, chan))
- return -EINVAL;
+ if (!TRX_CHAN_IS_ACTIVE(l1cs, chan)) {
+ /* do we expect handover RACH? */
+ if (!l1cs->ho_rach_detect)
+ return -EINVAL;
+
+ /* Handover RACH can be initiated on any multi-frame slot (excluding TRXC_IDLE)
+ * regardless of the current logical channel type and the associated handler.
+ * TODO: it would be good to know whether it's an Access Burst or not. */
+ func = trx_chan_desc[TRXC_RACH].ul_fn;
+ goto proc_burst;
+ }
/* omit bursts which have no handler, like IDLE bursts */
if (!func)
@@ -1366,6 +1375,7 @@
}
}
+proc_burst:
/* put burst to function */
func(l1t, tn, fn, chan, bid, bits, nbits, rssi, toa256);
diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c
index ade3cff..95292a5 100644
--- a/src/osmo-bts-trx/scheduler_trx.c
+++ b/src/osmo-bts-trx/scheduler_trx.c
@@ -881,10 +881,6 @@
uint16_t ber10k;
int rc;
- /* handle RACH, if handover RACH detection is turned on */
- if (chan_state->ho_rach_detect == 1)
- return rx_rach_fn(l1t, tn, fn, chan, bid, bits, GSM_BURST_LEN, rssi, toa256);
-
LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Received Data, bid=%u\n", bid);
/* allocate burst memory, if not already */
@@ -1079,10 +1075,6 @@
struct gsm_lchan *lchan =
get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | tn);
- /* handle rach, if handover rach detection is turned on */
- if (chan_state->ho_rach_detect == 1)
- return rx_rach_fn(l1t, tn, fn, chan, bid, bits, GSM_BURST_LEN, rssi, toa256);
-
LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Received TCH/F, bid=%u\n", bid);
/* allocate burst memory, if not already */
@@ -1260,10 +1252,6 @@
*/
int fn_is_odd = (((fn + 26 - 10) % 26) >> 2) & 1;
- /* handle RACH, if handover RACH detection is turned on */
- if (chan_state->ho_rach_detect == 1)
- return rx_rach_fn(l1t, tn, fn, chan, bid, bits, GSM_BURST_LEN, rssi, toa256);
-
LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Received TCH/H, bid=%u\n", bid);
/* allocate burst memory, if not already */
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/14323
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I78fa77799f5184cc96a28856eead8b296529c5d8
Gerrit-Change-Number: 14323
Gerrit-PatchSet: 1
Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190601/63c35510/attachment.htm>