From e77bcaecb6e45b55b8e31fea7cf10c2652431c1c Mon Sep 17 00:00:00 2001 From: bhargava Date: Wed, 17 Aug 2016 16:27:31 +0530 Subject: 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 --- src/common/l1sap.c | 9 ++++++--- src/common/pcu_sock.c | 5 ++++- src/osmo-bts-sysmo/l1_if.c | 6 ++++++ 3 files changed, 16 insertions(+), 4 deletions(-) (limited to 'src') 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; -- cgit v1.2.3