aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/bts.cpp3
-rw-r--r--src/bts.h4
-rw-r--r--src/pcu_l1_if.cpp3
-rw-r--r--src/pcuif_proto.h8
-rw-r--r--tests/tbf/TbfTest.cpp9
5 files changed, 18 insertions, 9 deletions
diff --git a/src/bts.cpp b/src/bts.cpp
index c53c92c1..e65d6081 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -467,7 +467,8 @@ int BTS::rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn)
return 0;
}
-int BTS::rcv_rach(uint8_t ra, uint32_t Fn, int16_t qta)
+int BTS::rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, uint8_t is_11bit,
+ enum ph_burst_type burst_type)
{
struct gprs_rlcmac_ul_tbf *tbf = NULL;
uint8_t trx_no, ts_no = 0;
diff --git a/src/bts.h b/src/bts.h
index 38896c8e..801342dd 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -28,6 +28,7 @@ extern "C" {
#include <osmocom/core/stat_item.h>
#include <osmocom/core/timer.h>
#include <osmocom/core/gsmtap.h>
+#include <osmocom/gsm/l1sap.h>
}
#include "poll_controller.h"
@@ -289,7 +290,8 @@ public:
int tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx);
int rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn);
- int rcv_rach(uint8_t ra, uint32_t Fn, int16_t qta);
+ int rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, uint8_t is_11bit,
+ enum ph_burst_type burst_type);
void trigger_dl_ass(gprs_rlcmac_dl_tbf *tbf, gprs_rlcmac_tbf *old_tbf);
void snd_dl_ass(gprs_rlcmac_tbf *tbf, uint8_t poll, const char *imsi);
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp
index 14342136..f1c73c93 100644
--- a/src/pcu_l1_if.cpp
+++ b/src/pcu_l1_if.cpp
@@ -322,7 +322,8 @@ static int pcu_rx_rach_ind(struct gsm_pcu_if_rach_ind *rach_ind)
case PCU_IF_SAPI_RACH:
rc = BTS::main_bts()->rcv_rach(
rach_ind->ra, rach_ind->fn,
- rach_ind->qta);
+ rach_ind->qta, rach_ind->is_11bit,
+ (ph_burst_type)rach_ind->burst_type);
break;
default:
LOGP(DL1IF, LOGL_ERROR, "Received PCU rach request with "
diff --git a/src/pcuif_proto.h b/src/pcuif_proto.h
index d3203802..944f3644 100644
--- a/src/pcuif_proto.h
+++ b/src/pcuif_proto.h
@@ -1,7 +1,9 @@
#ifndef _PCUIF_PROTO_H
#define _PCUIF_PROTO_H
-#define PCU_IF_VERSION 0x06
+#include <osmocom/gsm/l1sap.h>
+
+#define PCU_IF_VERSION 0x07
/* msg_type */
#define PCU_IF_MSG_DATA_REQ 0x00 /* send data to given channel */
@@ -67,10 +69,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;
+ uint8_t burst_type;
} __attribute__ ((packed));
struct gsm_pcu_if_info_trx {
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp
index 5e40abcb..2feb9c3a 100644
--- a/tests/tbf/TbfTest.cpp
+++ b/tests/tbf/TbfTest.cpp
@@ -36,6 +36,7 @@ extern "C" {
#include <osmocom/core/utils.h>
#include <osmocom/vty/vty.h>
#include <osmocom/gprs/protocol/gsm_04_60.h>
+#include <osmocom/gsm/l1sap.h>
}
#include <errno.h>
@@ -553,7 +554,7 @@ static gprs_rlcmac_ul_tbf *establish_ul_tbf_single_phase(BTS *the_bts,
tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1);
- the_bts->rcv_rach(0x03, *fn, qta);
+ the_bts->rcv_rach(0x03, *fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0);
ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no);
OSMO_ASSERT(ul_tbf != NULL);
@@ -787,7 +788,7 @@ static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_spb(BTS *the_bts,
* simulate RACH, this sends an Immediate
* Assignment Uplink on the AGCH
*/
- the_bts->rcv_rach(0x73, rach_fn, qta);
+ the_bts->rcv_rach(0x73, rach_fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0);
/* get next free TFI */
tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1);
@@ -1232,8 +1233,8 @@ static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase(BTS *the_bts,
/* needed to set last_rts_fn in the PDCH object */
request_dl_rlc_block(bts, trx_no, ts_no, fn);
- /* simulate RACH, this sends an Immediate Assignment Uplink on the AGCH */
- the_bts->rcv_rach(0x73, rach_fn, qta);
+ /* simulate RACH, sends an Immediate Assignment Uplink on the AGCH */
+ the_bts->rcv_rach(0x73, rach_fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0);
/* get next free TFI */
tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1);