summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2015-08-20 20:48:39 -0400
committerAlexander Chemeris <Alexander.Chemeris@gmail.com>2015-08-20 20:48:39 -0400
commit810d29aa03a5ab34917e759aa77d8b2afcaba58b (patch)
tree2da826dbe3164cd7b7a7b2f5362a68efa4cfee7b
parente77bfb9e22dc61a3b9089bf57bb1abfde9559096 (diff)
msc: Add channel information to the meas_feed, bump version to v1.
-rw-r--r--openbsc/include/openbsc/meas_feed.h14
-rw-r--r--openbsc/src/libmsc/meas_feed.c9
2 files changed, 22 insertions, 1 deletions
diff --git a/openbsc/include/openbsc/meas_feed.h b/openbsc/include/openbsc/meas_feed.h
index 65d09b896..f77ee075f 100644
--- a/openbsc/include/openbsc/meas_feed.h
+++ b/openbsc/include/openbsc/meas_feed.h
@@ -17,13 +17,25 @@ struct meas_feed_meas {
char name[31+1];
char scenario[31+1];
struct gsm_meas_rep mr;
+ /* The logical channel type, enum gsm_chan_t */
+ uint8_t lchan_type;
+ /* The physical channel type, enum gsm_phys_chan_config */
+ uint8_t pchan_type;
+ /* number of ths BTS in network */
+ uint8_t bts_nr;
+ /* number of this TRX in the BTS */
+ uint8_t trx_nr;
+ /* number of this timeslot at the TRX */
+ uint8_t ts_nr;
+ /* The logical subslot number in the TS */
+ uint8_t ss_nr;
};
enum meas_feed_msgtype {
MEAS_FEED_MEAS = 0,
};
-#define MEAS_FEED_VERSION 0
+#define MEAS_FEED_VERSION 1
#endif
diff --git a/openbsc/src/libmsc/meas_feed.c b/openbsc/src/libmsc/meas_feed.c
index 86d679abf..6a91886d4 100644
--- a/openbsc/src/libmsc/meas_feed.c
+++ b/openbsc/src/libmsc/meas_feed.c
@@ -60,6 +60,15 @@ static int process_meas_rep(struct gsm_meas_rep *mr)
/* copy the entire measurement report */
memcpy(&mfm->mr, mr, sizeof(mfm->mr));
+ /* copy channel information */
+ /* we assume that the measurement report always belong to some timeslot */
+ mfm->lchan_type = (uint8_t)mr->lchan->type;
+ mfm->pchan_type = (uint8_t)mr->lchan->ts->pchan;
+ mfm->bts_nr = mr->lchan->ts->trx->bts->nr;
+ mfm->trx_nr = mr->lchan->ts->trx->nr;
+ mfm->ts_nr = mr->lchan->ts->nr;
+ mfm->ss_nr = mr->lchan->nr;
+
/* and send it to the socket */
if (osmo_wqueue_enqueue(&g_mfs.wqueue, msg) != 0)
msgb_free(msg);