[handover] export measurement reports via signal
This patch introduces the S_LCHAN_MEAS_REP signal which is used to export
measurement reports as input to the yet-to-be-written handover algorithm.
diff --git a/openbsc/include/openbsc/meas_rep.h b/openbsc/include/openbsc/meas_rep.h
index 0c2bdab..b1ad2da 100644
--- a/openbsc/include/openbsc/meas_rep.h
+++ b/openbsc/include/openbsc/meas_rep.h
@@ -30,6 +30,8 @@
/* 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 fbd61ae..5156fcb 100644
--- a/openbsc/include/openbsc/signal.h
+++ b/openbsc/include/openbsc/signal.h
@@ -83,6 +83,7 @@
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 8033a3c..b049c3c 100644
--- a/openbsc/src/abis_rsl.c
+++ b/openbsc/src/abis_rsl.c
@@ -1005,6 +1005,8 @@
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 @@
return rc;
}
- /* FIXME: do something with the actual result*/
print_meas_rep(&mr);
+ dispatch_signal(SS_LCHAN, S_LCHAN_MEAS_REP, &mr);
+
return 0;
}