From 8df9683b6806ab1e10ec5928bb0650b4f4ec9a87 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 10 Mar 2017 02:16:11 +0100 Subject: log: ciphering/security are implicit CM Service Accept Log just as prominently to mark CM Service Accept. Change-Id: I7afe9d4f69e5525ede7a7c380a2c48fb2c5054b6 --- openbsc/include/openbsc/osmo_msc.h | 1 + openbsc/src/libmsc/gsm_04_08.c | 21 +++++++++++++++++++++ openbsc/src/libmsc/iucs_ranap.c | 6 ++---- openbsc/src/libmsc/msc_ifaces.c | 3 ++- openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.err | 4 ++++ 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/openbsc/include/openbsc/osmo_msc.h b/openbsc/include/openbsc/osmo_msc.h index d6d2b116b..64c37346f 100644 --- a/openbsc/include/openbsc/osmo_msc.h +++ b/openbsc/include/openbsc/osmo_msc.h @@ -77,6 +77,7 @@ int msc_compl_l3(struct gsm_subscriber_connection *conn, void msc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg); void msc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t alg_id); +void msc_rx_sec_mode_compl(struct gsm_subscriber_connection *conn); void msc_conn_close(struct gsm_subscriber_connection *conn, uint32_t cause); bool msc_subscr_conn_is_accepted(struct gsm_subscriber_connection *conn); diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 8dbe2dbea..db7558e2c 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -3784,9 +3784,13 @@ static int msc_vlr_set_ciph_mode(void *msc_conn_ref, switch (conn->via_ran) { case RAN_GERAN_A: + DEBUGP(DMM, "-> CIPHER MODE COMMAND %s\n", + vlr_subscr_name(conn->vsub)); return msc_gsm0808_tx_cipher_mode(conn, ciph, tuple->vec.kc, 8, retrieve_imeisv); case RAN_UTRAN_IU: + DEBUGP(DMM, "-> SECURITY MODE CONTROL %s\n", + vlr_subscr_name(conn->vsub)); return iu_tx_sec_mode_cmd(conn->iu.ue_ctx, tuple, 0, 1); default: @@ -3798,6 +3802,23 @@ static int msc_vlr_set_ciph_mode(void *msc_conn_ref, return -ENOTSUP; } +void msc_rx_sec_mode_compl(struct gsm_subscriber_connection *conn) +{ + struct vlr_ciph_result vlr_res = {}; + + if (!conn || !conn->vsub) { + LOGP(DMM, LOGL_ERROR, + "Rx Security Mode Complete for invalid conn\n"); + return; + } + + DEBUGP(DMM, "<- SECURITY MODE COMPLETE %s\n", + vlr_subscr_name(conn->vsub)); + + vlr_res.cause = VLR_CIPH_COMPL; + vlr_subscr_rx_ciph_res(conn->vsub, &vlr_res); +} + /* VLR informs us that the subscriber data has somehow been modified */ static void msc_vlr_subscr_update(struct vlr_subscr *subscr) { diff --git a/openbsc/src/libmsc/iucs_ranap.c b/openbsc/src/libmsc/iucs_ranap.c index 7215b6c69..7990d9aaa 100644 --- a/openbsc/src/libmsc/iucs_ranap.c +++ b/openbsc/src/libmsc/iucs_ranap.c @@ -32,6 +32,7 @@ #include #include #include +#include /* To continue authorization after a Security Mode Complete */ int gsm0408_authorize(struct gsm_subscriber_connection *conn); @@ -54,8 +55,6 @@ static int iucs_rx_rab_assign(struct gsm_subscriber_connection *conn, int iucs_rx_sec_mode_compl(struct gsm_subscriber_connection *conn, RANAP_SecurityModeCompleteIEs_t *ies) { - struct vlr_ciph_result vlr_res = {}; - OSMO_ASSERT(conn->via_ran == RAN_UTRAN_IU); /* TODO evalute ies */ @@ -67,8 +66,7 @@ int iucs_rx_sec_mode_compl(struct gsm_subscriber_connection *conn, conn->iu.integrity_protection = INTEGRITY_PROTECTION_IK; - vlr_res.cause = VLR_CIPH_COMPL; - vlr_subscr_rx_ciph_res(conn->vsub, &vlr_res); + msc_rx_sec_mode_compl(conn); return 0; } diff --git a/openbsc/src/libmsc/msc_ifaces.c b/openbsc/src/libmsc/msc_ifaces.c index f3d11fbbc..1a7d878a2 100644 --- a/openbsc/src/libmsc/msc_ifaces.c +++ b/openbsc/src/libmsc/msc_ifaces.c @@ -76,7 +76,8 @@ int msc_gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn) gh->proto_discr = GSM48_PDISC_MM; gh->msg_type = GSM48_MT_MM_CM_SERV_ACC; - DEBUGP(DMM, "-> CM SERVICE ACCEPT\n"); + DEBUGP(DMM, "-> CM SERVICE ACCEPT %s\n", + vlr_subscr_name(conn->vsub)); return msc_tx_dtap(conn, msg); } diff --git a/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.err b/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.err index b953a8147..d98c5dc63 100644 --- a/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -523,6 +523,7 @@ DIUCS 0: IMSI:901700000010650 Iu link 0x23, conn_id 42 DIUCS subscribers registered: 1 DIUCS Found IuCS subscriber for link_id 0x23, conn_id 2a DIUCS IuCS security mode complete for IMSI:901700000010650 +DMM <- SECURITY MODE COMPLETE IMSI:901700000010650 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() DIUCS IMSI:901700000010650: tx CommonID 901700000010650 @@ -705,6 +706,7 @@ DIUCS 0: MSISDN:42342 Iu link 0x23, conn_id 42 DIUCS subscribers registered: 1 DIUCS Found IuCS subscriber for link_id 0x23, conn_id 2a DIUCS IuCS security mode complete for MSISDN:42342 +DMM <- SECURITY MODE COMPLETE MSISDN:42342 DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() DIUCS MSISDN:42342: tx CommonID 901700000010650 @@ -840,6 +842,7 @@ DIUCS 0: MSISDN:42342 Iu link 0x23, conn_id 42 DIUCS subscribers registered: 1 DIUCS Found IuCS subscriber for link_id 0x23, conn_id 2a DIUCS IuCS security mode complete for MSISDN:42342 +DMM <- SECURITY MODE COMPLETE MSISDN:42342 DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() DIUCS MSISDN:42342: tx CommonID 901700000010650 @@ -1243,6 +1246,7 @@ DIUCS 0: IMSI:901700000010650 Iu link 0x23, conn_id 42 DIUCS subscribers registered: 1 DIUCS Found IuCS subscriber for link_id 0x23, conn_id 2a DIUCS IuCS security mode complete for IMSI:901700000010650 +DMM <- SECURITY MODE COMPLETE IMSI:901700000010650 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() DIUCS IMSI:901700000010650: tx CommonID 901700000010650 -- cgit v1.2.3