From 028387be8f2459370f6e7d40d2d478cdbfa748a5 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Sat, 4 Mar 2017 03:34:50 +0100 Subject: vlr: fix: don't send CM Service Accept after Ciphering Command Ciphering Mode Command is an implicit CM Service Accept, if we're sending both we're confusing the MS. Change-Id: I3a04debe9b01c086e7f44b6139cb8796fcc71d38 --- openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.c | 4 ++-- openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.err | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.c b/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.c index c224de334..d026f0229 100644 --- a/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.c +++ b/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.c @@ -203,9 +203,9 @@ void _test_umts_authen(enum ran_type via_ran) VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - btw("MS sends SecurityModeControl acceptance, VLR accepts and sends CM Service Accept"); + btw("MS sends SecurityModeControl acceptance, VLR accepts; above Ciphering is an implicit CM Service Accept"); ms_sends_security_mode_complete(); - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); + VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); } btw("a USSD request is serviced"); 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 09bd362b2..531618381 100644 --- a/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/openbsc/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -641,7 +641,7 @@ DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_ DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH cipher_mode_cmd_sent == 1 cm_service_result_sent == 0 -- MS sends SecurityModeControl acceptance, VLR accepts and sends CM Service Accept +- MS sends SecurityModeControl acceptance, VLR accepts; above Ciphering is an implicit CM Service Accept DIUCS Looking for IuCS subscriber: link_id 0x23, conn_id 2a DIUCS 0: MSISDN:42342 Iu link 0x23, conn_id 42 DIUCS subscribers registered: 1 @@ -657,13 +657,12 @@ DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_ DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: state_chg to PR_ARQ_S_DONE DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:42342 DVLR Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED DVLR Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ DVLR Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED DVLR Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true DVLR Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP - cm_service_result_sent == 1 + cm_service_result_sent == 0 - a USSD request is serviced expecting USSD: Your extension is 42342 -- cgit v1.2.3