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.orgHello 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 (#4). 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/4 diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index dbe7173..7606c40 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; + default : + 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: 4 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>