aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2016-07-28 14:54:13 +0200
committerHarald Welte <laforge@gnumonks.org>2016-08-04 15:06:12 +0000
commitcbf9a721d669ef0c724553f4604aee89f8e723dc (patch)
tree2d11c67e4bc3515e85551c21963bc454cd0950ad
parent505a86d396d4ee6e821e8337056e85362a55848f (diff)
Extend BTS <-> PCU protocol with measurement
Note: this increases the version of BTS <-> PCU protocol and thus requires corresponding change in BTS. Change-Id: Ide0e29b668ee38516605c1763fda85e87e867813 Related: OS#1616
-rw-r--r--src/pcu_l1_if.cpp10
-rw-r--r--src/pcuif_proto.h5
2 files changed, 13 insertions, 2 deletions
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp
index 36cf9adc..14342136 100644
--- a/src/pcu_l1_if.cpp
+++ b/src/pcu_l1_if.cpp
@@ -214,7 +214,15 @@ static int pcu_rx_data_ind(struct gsm_pcu_if_data *data_ind, struct gsmtap_inst
int rc;
pcu_l1_meas meas;
meas.set_rssi(data_ind->rssi);
-
+#ifndef ENABLE_DIRECT_PHY
+ /* convert BER to % value */
+ meas.set_ber(data_ind->ber10k / 100);
+ meas.set_bto(data_ind->ta_offs_qbits);
+ meas.set_link_qual(data_ind->lqual_cb / 10);
+ LOGP(DL1IF, LOGL_DEBUG, "Data indication with raw measurements "
+ "received: BER10k = %d, BTO = %d, Q = %d\n", data_ind->ber10k,
+ data_ind->ta_offs_qbits, data_ind->lqual_cb);
+#endif
LOGP(DL1IF, LOGL_DEBUG, "Data indication received: sapi=%d arfcn=%d "
"block=%d data=%s\n", data_ind->sapi,
data_ind->arfcn, data_ind->block_nr,
diff --git a/src/pcuif_proto.h b/src/pcuif_proto.h
index 9d740ac1..d3203802 100644
--- a/src/pcuif_proto.h
+++ b/src/pcuif_proto.h
@@ -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 */
@@ -50,6 +50,9 @@ struct gsm_pcu_if_data {
uint8_t ts_nr;
uint8_t block_nr;
int8_t rssi;
+ uint16_t ber10k; /*!< \brief BER in units of 0.01% */
+ int16_t ta_offs_qbits; /* !< \brief Burst TA Offset in quarter bits */
+ int16_t lqual_cb; /* !< \brief Link quality in centiBel */
} __attribute__ ((packed));
struct gsm_pcu_if_rts_req {