Change in ...osmo-bts[master]: osmo-bts-trx/scheduler: fix handover RACH handling

Vadim Yanitskiy gerrit-no-reply at lists.osmocom.org
Sat Jun 1 16:28:41 UTC 2019


Vadim 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.html>


More information about the gerrit-log mailing list