aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/osmo-cscn/cscn_main.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-03-21 22:27:15 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-03-22 19:54:09 +0100
commitdebb0e386871e64a769d7414b71bedec09d7e76a (patch)
tree4c2dcaec7f22257e2d650ceacc5759805f5853f7 /openbsc/src/osmo-cscn/cscn_main.c
parentd025a3cfbb53f690a4ebbd628cafda81c1b34bc7 (diff)
cscn: implement integrity protection
Upon authentication response, initiate integrity protection for Iu by sending a Security Mode Command (IK), with hardcoded auth tuple so far. Implement RANAP event handling to receive Security Mode Complete message, adding stubs for the other events; in new files osmo-cscn/iucs_ranap.[hc] to keep RANAP dependencies separate, and particularly out of libmsc. Upon receiving Security Mode Complete, call the security operation callback (conn->sec_operation->cb) to complete the Location Update. Introduce enum integrity_protection_state constants to indicate integrity protection, record in gsm_subscriber_conn.iu.integrity_protection. Make subscr_conn_lookup_iu() non-static and declare in iu_cs.h to be able to call from iucs_ranap.c's Security Mode Complete event. Implement dummy iu_tx_sec_mode_cmd() to allow tests to build without RANAP dependencies. In cscn_main.c, call iucs_rx_ranap_event(), to populate the struct gsm_network struct with cscn_network explicitly (don't share cscn_network across compilation scopes because it's ugly).
Diffstat (limited to 'openbsc/src/osmo-cscn/cscn_main.c')
-rw-r--r--openbsc/src/osmo-cscn/cscn_main.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/openbsc/src/osmo-cscn/cscn_main.c b/openbsc/src/osmo-cscn/cscn_main.c
index 80b98731b..2b1b505a6 100644
--- a/openbsc/src/osmo-cscn/cscn_main.c
+++ b/openbsc/src/osmo-cscn/cscn_main.c
@@ -71,6 +71,8 @@
#include <openbsc/iu.h>
#include <openbsc/iu_cs.h>
+#include "iucs_ranap.h"
+
static const char * const osmocscn_copyright =
"OsmoCSCN - Osmocom Circuit-Switched Core Network implementation\r\n"
"Copyright (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de>\r\n"
@@ -327,11 +329,9 @@ static int rx_iu_event(struct ue_conn_ctx *ctx, enum iu_event_type type,
{
DEBUGP(DIUCS, "got Iu-CS event %u\n", type);
- /* TODO: Handle RAB assignment response for UE */
- return 0;
+ return iucs_rx_ranap_event(cscn_network, ctx, type, data);
}
-
int main(int argc, char **argv)
{
int rc;