[PATCH] osmo-bts[master]: Update parameters in osmo-bts for 11 bit RACH

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/.

bhargava_abhyankar gerrit-no-reply at lists.osmocom.org
Tue Jul 26 11:51:51 UTC 2016


Hello Harald Welte, Jenkins Builder, Holger Freyther,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/434

to look at the new patch set (#3).

Update parameters in osmo-bts for 11 bit RACH

Based on the indication from L1, number of bits in RACH and burst
type is determined. Appropriate parameters are filled in osmo-bts.
These parameters are sent to osmo-pcu for processing of the RACH.

Change-Id: I93831ddfb3f31b637e6a576f23a9bb4557758582
---
M src/osmo-bts-sysmo/l1_if.c
M src/osmo-bts-sysmo/l1_if.h
2 files changed, 42 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/434/3

diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index dbe7173..1f30b53 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -924,7 +924,8 @@
 	struct gsm_lchan *lchan;
 	struct osmo_phsap_prim *l1sap;
 	uint32_t fn;
-	uint8_t ra, acc_delay = 0;
+	uint8_t acc_delay = 0;
+	uint16_t ra = 0, is_11bit = 0, burst_type = 0, temp = 0;
 	int rc;
 
 	/* increment number of busy RACH slots, if required */
@@ -946,16 +947,28 @@
 		btsb->load.rach.access++;
 
 	dump_meas_res(LOGL_DEBUG, &ra_ind->measParam);
+	burst_type = ra_ind->burstType;
 
-	if (ra_ind->msgUnitParam.u8Size != 1) {
+	if ((ra_ind->msgUnitParam.u8Size != 1) &&
+		(ra_ind->msgUnitParam.u8Size != 2)) {
 		LOGP(DL1C, LOGL_ERROR, "PH-RACH-INDICATION has %d bits\n",
 			ra_ind->sapi);
 		msgb_free(l1p_msg);
 		return 0;
 	}
 
+	if (ra_ind->msgUnitParam.u8Size == 2) {
+		is_11bit = 1;
+		ra = ra_ind->msgUnitParam.u8Buffer[0];
+		ra = ra << 3;
+		temp = (ra_ind->msgUnitParam.u8Buffer[1] & 0x7);
+		ra = ra | temp;
+	} else {
+		is_11bit = 0;
+		ra = ra_ind->msgUnitParam.u8Buffer[0];
+	}
+
 	fn = ra_ind->u32Fn;
-	ra = ra_ind->msgUnitParam.u8Buffer[0];
 	rc = msgb_trim(l1p_msg, sizeof(*l1sap));
 	if (rc < 0)
 		MSGB_ABORT(l1p_msg, "No room for primitive data\n");
@@ -965,11 +978,28 @@
 	l1sap->u.rach_ind.ra = ra;
 	l1sap->u.rach_ind.acc_delay = acc_delay;
 	l1sap->u.rach_ind.fn = fn;
+	l1sap->u.rach_ind.is_11bit = is_11bit;	/* no of bits in 11 bit RACH */
 
-	/* Initialising the parameters needs to be handled when 11 bit RACH */
+	/*mapping of the burst type, the values are specific to osmo-bts-sysmo*/
 
-	l1sap->u.rach_ind.is_11bit = 0;
-	l1sap->u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_0;
+	switch (burst_type) {
+		case GSM_L1_BURST_TYPE_0 :
+			l1sap->u.rach_ind.burst_type =
+				GSM_L1_BURST_TYPE_ACCESS_0;
+			break;
+		case GSM_L1_BURST_TYPE_1 :
+			l1sap->u.rach_ind.burst_type =
+				GSM_L1_BURST_TYPE_ACCESS_1;
+			break;
+		case GSM_L1_BURST_TYPE_2 :
+			l1sap->u.rach_ind.burst_type =
+				GSM_L1_BURST_TYPE_ACCESS_2;
+			break;
+		case :
+			l1sap->u.rach_ind.burst_type =
+				GSM_L1_BURST_TYPE_NONE;
+			break;
+	}
 
 	if (!lchan || lchan->ts->pchan == GSM_PCHAN_CCCH ||
 	    lchan->ts->pchan == GSM_PCHAN_CCCH_SDCCH4)
diff --git a/src/osmo-bts-sysmo/l1_if.h b/src/osmo-bts-sysmo/l1_if.h
index 2fc8a29..5f581f5 100644
--- a/src/osmo-bts-sysmo/l1_if.h
+++ b/src/osmo-bts-sysmo/l1_if.h
@@ -42,6 +42,12 @@
 	FIXUP_NOT_NEEDED,
 };
 
+enum {
+	GSM_L1_BURST_TYPE_0 =4,
+	GSM_L1_BURST_TYPE_1,
+	GSM_L1_BURST_TYPE_2,
+};
+
 struct femtol1_hdl {
 	struct gsm_time gsm_time;
 	uint32_t hLayer1;			/* handle to the L1 instance in the DSP */

-- 
To view, visit https://gerrit.osmocom.org/434
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I93831ddfb3f31b637e6a576f23a9bb4557758582
Gerrit-PatchSet: 3
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: bhargava_abhyankar <Bhargava.Abhyankar at radisys.com>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Holger Freyther <holger at freyther.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: bhargava_abhyankar <Bhargava.Abhyankar at radisys.com>



More information about the gerrit-log mailing list