aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/include/openbsc/meas_rep.h2
-rw-r--r--openbsc/include/openbsc/signal.h1
-rw-r--r--openbsc/src/abis_rsl.c5
3 files changed, 7 insertions, 1 deletions
diff --git a/openbsc/include/openbsc/meas_rep.h b/openbsc/include/openbsc/meas_rep.h
index 0c2bdabde..b1ad2daa8 100644
--- a/openbsc/include/openbsc/meas_rep.h
+++ b/openbsc/include/openbsc/meas_rep.h
@@ -30,6 +30,8 @@ struct gsm_meas_rep_unidir {
/* parsed uplink and downlink measurement result */
struct gsm_meas_rep {
+ struct gsm_lchan *lchan;
+
u_int8_t nr;
unsigned int flags;
diff --git a/openbsc/include/openbsc/signal.h b/openbsc/include/openbsc/signal.h
index fbd61ae9e..5156fcb79 100644
--- a/openbsc/include/openbsc/signal.h
+++ b/openbsc/include/openbsc/signal.h
@@ -83,6 +83,7 @@ enum signal_lchan {
S_LCHAN_HANDOVER_COMPL, /* 04.08 Handover Completed */
S_LCHAN_HANDOVER_FAIL, /* 04.08 Handover Failed */
S_LCHAN_HANDOVER_DETECT, /* 08.58 Handover Detect */
+ S_LCHAN_MEAS_REP, /* 08.58 Measurement Report */
};
/* SS_SUBSCR signals */
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c
index 8033a3c74..b049c3c8a 100644
--- a/openbsc/src/abis_rsl.c
+++ b/openbsc/src/abis_rsl.c
@@ -1005,6 +1005,8 @@ static int rsl_rx_meas_res(struct msgb *msg)
memset(&mr, 0, sizeof(mr));
+ mr.lchan = msg->lchan;
+
rsl_tlv_parse(&tp, dh->data, msgb_l2len(msg)-sizeof(*dh));
if (!TLVP_PRESENT(&tp, RSL_IE_MEAS_RES_NR) ||
@@ -1048,9 +1050,10 @@ static int rsl_rx_meas_res(struct msgb *msg)
return rc;
}
- /* FIXME: do something with the actual result*/
print_meas_rep(&mr);
+ dispatch_signal(SS_LCHAN, S_LCHAN_MEAS_REP, &mr);
+
return 0;
}