@@ -11,7 +11,8 @@ int pcu_tx_rts_req(struct gsm_bts_trx_ts *ts, uint8_t is_ptcch, uint32_t fn,
int pcu_tx_data_ind(struct gsm_bts_trx_ts *ts, uint8_t is_ptcch, uint32_t fn,
uint16_t arfcn, uint8_t block_nr, uint8_t *data, uint8_t len,
int8_t rssi);
-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);
int pcu_tx_time_ind(uint32_t fn);
int pcu_tx_pag_req(const uint8_t *identity_lv, uint8_t chan_needed);
int pcu_tx_pch_data_cnf(uint32_t fn, uint8_t *data, uint8_t len);
@@ -1,7 +1,7 @@
#ifndef _PCUIF_PROTO_H
#define _PCUIF_PROTO_H
-#define PCU_IF_VERSION 0x05
+#define PCU_IF_VERSION 0x06
/* msg_type */
#define PCU_IF_MSG_DATA_REQ 0x00 /* send data to given channel */
@@ -64,10 +64,12 @@ struct gsm_pcu_if_rts_req {
struct gsm_pcu_if_rach_ind {
uint8_t sapi;
- uint8_t ra;
+ uint16_t ra;
int16_t qta;
uint32_t fn;
uint16_t arfcn;
+ uint8_t is_11bit;
+ enum ph_burst_type burst;
} __attribute__ ((packed));
struct gsm_pcu_if_info_trx {
@@ -903,7 +903,8 @@ static int l1sap_ph_rach_ind(struct gsm_bts_trx *trx,
if (trx == bts->c0 && L1SAP_IS_PACKET_RACH(rach_ind->ra)) {
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);
return 0;
}
@@ -343,7 +343,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)
{
struct msgb *msg;
struct gsm_pcu_if *pcu_prim;
@@ -362,6 +363,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 = burst;
return pcu_sock_send(&bts_gsmnet, msg);
}
@@ -898,6 +898,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
+ * is supported */
+ l1sap->u.rach_ind.is_11bit = 0;
+ l1sap->u.rach_ind.burst = 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;