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
Review at https://gerrit.osmocom.org/434
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
1 file changed, 25 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/434/1
diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index 168e004..64bf65e 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -919,7 +919,7 @@
struct gsm_lchan *lchan;
struct osmo_phsap_prim *l1sap;
uint32_t fn;
- uint8_t ra, acc_delay = 0;
+ uint16_t ra = 0, acc_delay = 0, is_11bit = 0, burst_type = 0, temp = 0;
int rc;
/* increment number of busy RACH slots, if required */
@@ -941,16 +941,36 @@
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;
+
+ LOGP(DL1P, LOGL_DEBUG, "11 bit RACH :%d and burst type :%d ",
+ ra, burst_type);
+ LOGP(DL1P, LOGL_DEBUG, " 0th byte :%d \n and 1st byte: %d \n",
+ ra_ind->msgUnitParam.u8Buffer[0],
+ ra_ind->msgUnitParam.u8Buffer[1]);
+ } else {
+ is_11bit = 0;
+ ra = ra_ind->msgUnitParam.u8Buffer[0];
+ LOGP(DL1P, LOGL_DEBUG, "8 bit RACH ra:%d and burst type %d\n",
+ ra, burst_type);
+ }
+
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");
@@ -960,11 +980,8 @@
l1sap->u.rach_ind.ra = ra;
l1sap->u.rach_ind.acc_delay = acc_delay;
l1sap->u.rach_ind.fn = fn;
-
- /* Initialising the parameters needs to be handled when 11 bit RACH */
-
- l1sap->u.rach_ind.is_11bit = 0;
- l1sap->u.rach_ind.burst = GSM_L1_BURST_TYPE_ACCESS_0;
+ l1sap->u.rach_ind.is_11bit = is_11bit; /* no of bits in 11 bit RACH */
+ l1sap->u.rach_ind.burst = burst_type; /* type of burst */
if (!lchan || lchan->ts->pchan == GSM_PCHAN_CCCH ||
lchan->ts->pchan == GSM_PCHAN_CCCH_SDCCH4)
--
To view, visit https://gerrit.osmocom.org/434
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I93831ddfb3f31b637e6a576f23a9bb4557758582
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: bhargava_abhyankar <Bhargava.Abhyankar at radisys.com>