aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2015-08-20 20:48:39 -0400
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2015-09-14 10:08:41 +0200
commit08c508f84a8d088f8454d0f21f83ecc22e30d72d (patch)
treef1cdac3070f3d3ca791603890662114b3425d4be
parentd721579a6aba0e6d72f44fe8ec21a7276acebda4 (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 5fc7c4979..cd2b64842 100644
--- a/openbsc/src/libmsc/meas_feed.c
+++ b/openbsc/src/libmsc/meas_feed.c
@@ -62,6 +62,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);