diff options
author | bhargava <Bhargava.Abhyankar@radisys.com> | 2016-08-17 16:27:31 +0530 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-08-27 01:20:46 +0000 |
commit | e77bcaecb6e45b55b8e31fea7cf10c2652431c1c (patch) | |
tree | 45b73d5d28419b63808a378f670b006dfdcf5495 /src | |
parent | 43d082e6f1ec42aae566cc21cecc90e56a262090 (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.c | 9 | ||||
-rw-r--r-- | src/common/pcu_sock.c | 5 | ||||
-rw-r--r-- | src/osmo-bts-sysmo/l1_if.c | 6 |
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; |