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>