aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbhargava <Bhargava.Abhyankar@radisys.com>2016-08-17 16:27:31 +0530
committerHarald Welte <laforge@gnumonks.org>2016-08-27 01:20:46 +0000
commite77bcaecb6e45b55b8e31fea7cf10c2652431c1c (patch)
tree45b73d5d28419b63808a378f670b006dfdcf5495 /src
parent43d082e6f1ec42aae566cc21cecc90e56a262090 (diff)
Change interface in osmo-bts for 11 bit RACH
Interface structure between osmo-bts and osmo-pcu is updated with the parameters to differentiate the type of RACH and further support 11 bit RACH. The function prototype and definitions are changed accordingly. Interface version number is increased. Change-Id: I4f4c501b2d86d77c78de32a84b1804172ffb6f4d
Diffstat (limited to 'src')
-rw-r--r--src/common/l1sap.c9
-rw-r--r--src/common/pcu_sock.c5
-rw-r--r--src/osmo-bts-sysmo/l1_if.c6
3 files changed, 16 insertions, 4 deletions
diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index 64981033..2ab40557 100644
--- a/src/common/l1sap.c
+++ b/src/common/l1sap.c
@@ -288,7 +288,7 @@ static int gsmtap_ph_rach(struct osmo_phsap_prim *l1sap, uint8_t *chan_type,
*ss = L1SAP_CHAN2SS_SDCCH4(chan_nr);
else if (L1SAP_IS_CHAN_SDCCH8(chan_nr))
*ss = L1SAP_CHAN2SS_SDCCH8(chan_nr);
- *data = &l1sap->u.rach_ind.ra;
+ *data = (uint8_t *)&l1sap->u.rach_ind.ra;
*len = 1;
return 0;
@@ -965,10 +965,13 @@ static int l1sap_ph_rach_ind(struct gsm_bts_trx *trx,
return l1sap_handover_rach(trx, l1sap, rach_ind);
/* check for packet access */
- if (trx == bts->c0 && L1SAP_IS_PACKET_RACH(rach_ind->ra)) {
+ if ((trx == bts->c0 && L1SAP_IS_PACKET_RACH(rach_ind->ra)) ||
+ (trx == bts->c0 && rach_ind->is_11bit)) {
+
LOGP(DL1P, LOGL_INFO, "RACH for packet access\n");
pcu_tx_rach_ind(bts, rach_ind->acc_delay << 2,
- rach_ind->ra, rach_ind->fn);
+ rach_ind->ra, rach_ind->fn,
+ rach_ind->is_11bit, rach_ind->burst_type);
return 0;
}
diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c
index fed464fb..62f18a78 100644
--- a/src/common/pcu_sock.c
+++ b/src/common/pcu_sock.c
@@ -371,7 +371,8 @@ int pcu_tx_data_ind(struct gsm_bts_trx_ts *ts, uint8_t is_ptcch, uint32_t fn,
return pcu_sock_send(&bts_gsmnet, msg);
}
-int pcu_tx_rach_ind(struct gsm_bts *bts, int16_t qta, uint8_t ra, uint32_t fn)
+int pcu_tx_rach_ind(struct gsm_bts *bts, int16_t qta, uint16_t ra, uint32_t fn,
+ uint8_t is_11bit, enum ph_burst_type burst_type)
{
struct msgb *msg;
struct gsm_pcu_if *pcu_prim;
@@ -390,6 +391,8 @@ int pcu_tx_rach_ind(struct gsm_bts *bts, int16_t qta, uint8_t ra, uint32_t fn)
rach_ind->ra = ra;
rach_ind->qta = qta;
rach_ind->fn = fn;
+ rach_ind->is_11bit = is_11bit;
+ rach_ind->burst_type = burst_type;
return pcu_sock_send(&bts_gsmnet, msg);
}
diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index f70ccf5d..fcd3a3e0 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -970,6 +970,12 @@ static int handle_ph_ra_ind(struct femtol1_hdl *fl1, GsmL1_PhRaInd_t *ra_ind,
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_type = GSM_L1_BURST_TYPE_ACCESS_0;
+
if (!lchan || lchan->ts->pchan == GSM_PCHAN_CCCH ||
lchan->ts->pchan == GSM_PCHAN_CCCH_SDCCH4)
l1sap->u.rach_ind.chan_nr = 0x88;