aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbhargava <Bhargava.Abhyankar@radisys.com>2016-08-17 15:17:21 +0530
committerHarald Welte <laforge@gnumonks.org>2016-08-27 01:22:48 +0000
commit959d1dee67e1c6fcfc57b347be2fb7a2ed099b2d (patch)
tree8c38b916599ada30db3c40bc317d11e4e65deb63 /src
parenteebcb1e3e87a37cde3ac6aaf89b8c6c201abb6ba (diff)
Change interface in osmo-pcu 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: I265c2d92d36d6cbcbeee60cdd8407dafe1da06a4
Diffstat (limited to 'src')
-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
4 files changed, 13 insertions, 5 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 {