aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc/msc_ifaces.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-09-07 17:52:32 +0200
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-11-12 16:05:35 +0100
commitfda5bb5e51a60ad168be5ba86db6b1fe15f7a6c9 (patch)
tree9a0962c464b8b0c3e920bab2e36439b5c453da8c /openbsc/src/libmsc/msc_ifaces.c
parent0faacd6adfa5a0f95c4db27494ebd2795f93e59d (diff)
IuCS: send RANAP CommonID
Add libiu function to send a CommonID message down a UE connection, iu_tx_common_id(); add also a corresponding stub to libiudummy for linking with tests. Add libmsc function msc_tx_common_id() to call the above. Add this mostly to clearly indicate in msc_ifaces.h that libmsc is calling out of the MSC; also to do conn->via_iface checking. Call msc_tx_common_id() after ciphering is established, in _gsm48_rx_mm_serv_req_sec_cb()'s GSM_SECURITY_SUCCEEDED case. Change-Id: I576ddd5bbabfc989149debd2f8a9743db6d26043
Diffstat (limited to 'openbsc/src/libmsc/msc_ifaces.c')
-rw-r--r--openbsc/src/libmsc/msc_ifaces.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/msc_ifaces.c b/openbsc/src/libmsc/msc_ifaces.c
index bc8533b5a..04a3d3a8f 100644
--- a/openbsc/src/libmsc/msc_ifaces.c
+++ b/openbsc/src/libmsc/msc_ifaces.c
@@ -23,6 +23,10 @@
#include <openbsc/debug.h>
#include <openbsc/gsm_data.h>
#include <openbsc/msc_ifaces.h>
+#include <openbsc/iu.h>
+#include <openbsc/gsm_subscriber.h>
+
+#include "../../bscconfig.h"
static int msc_tx(struct gsm_subscriber_connection *conn, struct msgb *msg)
{
@@ -81,3 +85,18 @@ int msc_gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,
return msc_tx_dtap(conn, msg);
}
+
+int msc_tx_common_id(struct gsm_subscriber_connection *conn)
+{
+ /* Common ID is only sent over IuCS */
+ if (conn->via_iface != IFACE_IU)
+ return 0;
+
+#ifdef BUILD_IU
+ return iu_tx_common_id(conn->iu.ue_ctx, conn->subscr->imsi);
+#else
+ LOGP(DMM, LOGL_ERROR,
+ "Cannot send CommonID: IFACE_IU but IuCS support not built\n");
+ return -ENOTSUP;
+#endif
+}