This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
osmith gerrit-no-reply at lists.osmocom.orgosmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14694 Change subject: msc: add check imei tests ...................................................................... msc: add check imei tests Related: OS#2542 Change-Id: Ic34bb8dc8547cafb5a53df03884554dd4f72956d --- M library/GSUP_Types.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn M msc/expected-results.xml 4 files changed, 420 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/94/14694/1 diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn index e627538..74fbfc4 100644 --- a/library/GSUP_Types.ttcn +++ b/library/GSUP_Types.ttcn @@ -538,10 +538,30 @@ ts_GSUP(OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST, { valueof(ts_GSUP_IE_IMSI(imsi)), valueof(ts_GSUP_IE_IMEI(imei)) }); +template GSUP_PDU tr_GSUP_CHECK_IMEI_REQ( + template hexstring imsi, + template hexstring imei +) := tr_GSUP( + OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_IMEI(imei), + tr_GSUP_IE_Message_Class(OSMO_GSUP_MESSAGE_CLASS_SUBSCRIBER_MANAGEMENT) + } +); + +template (value) GSUP_PDU ts_GSUP_CHECK_IMEI_RES(hexstring imsi, GSUP_IMEIResult result) := + ts_GSUP(OSMO_GSUP_MSGT_CHECK_IMEI_RESULT, { + valueof(ts_GSUP_IE_IMSI(imsi)), valueof(ts_GSUP_IE_IMEI_Result(result)) }); + template GSUP_PDU tr_GSUP_CHECK_IMEI_RES(template hexstring imsi, template GSUP_IMEIResult result) := tr_GSUP(OSMO_GSUP_MSGT_CHECK_IMEI_RESULT, { tr_GSUP_IE_IMSI(imsi), tr_GSUP_IE_IMEI_Result(result) }); +template (value) GSUP_PDU ts_GSUP_CHECK_IMEI_ERR(hexstring imsi, integer cause) := + ts_GSUP(OSMO_GSUP_MSGT_CHECK_IMEI_ERROR, { + valueof(ts_GSUP_IE_IMSI(imsi)), valueof(ts_GSUP_IE_Cause(cause)) }); + template GSUP_PDU tr_GSUP_CHECK_IMEI_ERR(template hexstring imsi, template integer cause) := tr_GSUP(OSMO_GSUP_MSGT_CHECK_IMEI_ERROR, { tr_GSUP_IE_IMSI(imsi), tr_GSUP_IE_Cause(cause) }); diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 1dd4d05..a5a110d 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -70,7 +70,11 @@ OCT1 kc_support, boolean expect_tmsi, boolean expect_auth, - boolean expect_ciph + boolean expect_ciph, + boolean expect_imei, + boolean expect_imei_early, + GSUP_IMEIResult check_imei_result, + boolean check_imei_error } type record BSC_ConnHdlrPars { @@ -433,6 +437,82 @@ } } +function f_mm_imei() runs on BSC_ConnHdlr +{ + var PDU_DTAP_MT dtap_mt; + var GSUP_PDU gsup_msg; + var MobileL3_CommonIE_Types.MobileIdentityLV mi; + + if (not g_pars.net.expect_imei) { + return + } + + /* MSC <-> BSC: ID req/rsp for IMEI */ + alt { + [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req('010'B /* IMEI */))) { + mi := valueof(ts_MI_IMEI_LV(g_pars.imei)); + BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp(mi))); + } + [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt { + setverdict(fail, "Expected ID REQ for IMEI DTAP MT message, but got: ", dtap_mt); + mtc.stop; + } + } + + /* MSC <-> HLR: Check IMEI req/res/err */ + alt { + [g_pars.net.check_imei_error] GSUP.receive(tr_GSUP_CHECK_IMEI_REQ(g_pars.imsi, g_pars.imei)) { + GSUP.send(ts_GSUP_CHECK_IMEI_ERR(g_pars.imsi, 96 /* Invalid Mandatory Information */)); + } + [not g_pars.net.check_imei_error] GSUP.receive(tr_GSUP_CHECK_IMEI_REQ(g_pars.imsi, g_pars.imei)) { + GSUP.send(ts_GSUP_CHECK_IMEI_RES(g_pars.imsi, g_pars.net.check_imei_result)); + } + [] GSUP.receive(?) -> value gsup_msg { + setverdict(fail, "Expected CHECK IMEI REQ GSUP message (with IMEI:", g_pars.imei, " and IMSI: ", + g_pars.imsi, "), but got: ", gsup_msg); + mtc.stop; + } + } +} + +function f_mm_imei_early() runs on BSC_ConnHdlr +{ + var PDU_DTAP_MT dtap_mt; + var GSUP_PDU gsup_msg; + var MobileL3_CommonIE_Types.MobileIdentityLV mi; + + if (not g_pars.net.expect_imei_early) { + return + } + + /* MSC <-> BSC: ID req/rsp for IMEISV */ + alt { + [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req('011'B /* IMEISV */))) { + mi := valueof(ts_MI_IMEISV_LV(g_pars.imei)); + BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp(mi))); + } + [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt { + setverdict(fail, "Expected ID REQ for IMEISV DTAP MT message, but got: ", dtap_mt); + mtc.stop; + } + } + + /* MSC <-> HLR: Check IMEI req/res/err */ + alt { + [g_pars.net.check_imei_error] GSUP.receive(tr_GSUP_CHECK_IMEI_REQ(g_pars.imsi, g_pars.imei)) { + GSUP.send(ts_GSUP_CHECK_IMEI_ERR(g_pars.imsi, 96 /* Invalid Mandatory Information */)); + } + [not g_pars.net.check_imei_error] GSUP.receive(tr_GSUP_CHECK_IMEI_REQ(g_pars.imsi, g_pars.imei)) { + GSUP.send(ts_GSUP_CHECK_IMEI_RES(g_pars.imsi, g_pars.net.check_imei_result)); + } + [] GSUP.receive(?) -> value gsup_msg { + setverdict(fail, "Expected CHECK IMEI REQ GSUP message (with IMEI:", g_pars.imei, " and IMSI: ", + g_pars.imsi, "), but got: ", gsup_msg); + mtc.stop; + } + } +} + function f_mm_common() runs on BSC_ConnHdlr { f_mm_auth(); @@ -508,8 +588,10 @@ f_ranap_initial_ue(l3_lu); } + f_mm_imei_early(); f_mm_common(); f_msc_lu_hlr(); + f_mm_imei(); f_accept_reject_lu(); /* FIXME: there could be pending SMS or other common procedures by the MSC, let's ignore them */ f_expect_clear(); diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 4b00e34..7df2e76 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -335,6 +335,7 @@ /* set some defaults */ f_vty_config(MSCVTY, "network", "authentication optional"); f_vty_config(MSCVTY, "msc", "assign-tmsi"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd 0"); f_vty_config(MSCVTY, "network", "encryption a5 0"); if (mp_enable_osmux_test) { if (osmux) { @@ -367,7 +368,11 @@ kc_support := '0A'O, /* A5/1 and A5/3 enabled */ expect_tmsi := true, expect_auth := false, - expect_ciph := false + expect_ciph := false, + expect_imei := false, + expect_imei_early := false, + check_imei_result := OSMO_GSUP_IMEI_RESULT_ACK, + check_imei_error := false }; var BSC_ConnHdlrPars pars := { sccp_addr_own := g_bssap[ran_idx].sccp_addr_own, @@ -5531,6 +5536,287 @@ vc_conn.done; } +private function f_tc_lu_imsi_auth_tmsi_check_imei(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + pars.net.expect_auth := true; + pars.net.expect_imei := true; + f_init_handler(pars); + f_perform_lu(); +} +testcase TC_lu_imsi_auth_tmsi_check_imei() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "network", "authentication required"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd 1"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_check_imei), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_auth3g_tmsi_check_imei(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + pars.net.expect_auth := true; + pars.use_umts_aka := true; + pars.net.expect_imei := true; + f_init_handler(pars); + f_perform_lu(); +} +testcase TC_lu_imsi_auth3g_tmsi_check_imei() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "network", "authentication required"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd 1"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth3g_tmsi_check_imei), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_noauth_tmsi_check_imei(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + pars.net.expect_imei := true; + f_init_handler(pars); + f_perform_lu(); +} +testcase TC_lu_imsi_noauth_tmsi_check_imei() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "msc", "check-imei-rqd 1"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_noauth_tmsi_check_imei), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_noauth_notmsi_check_imei(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + pars.net.expect_tmsi := false; + pars.net.expect_imei := true; + f_init_handler(pars); + f_perform_lu(); +} +testcase TC_lu_imsi_noauth_notmsi_check_imei() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "msc", "no assign-tmsi"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd 1"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_noauth_notmsi_check_imei), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_auth_tmsi_check_imei_nack(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + var PDU_ML3_MS_NW l3_lu; + var PDU_DTAP_MT dtap_mt; + + pars.net.expect_auth := true; + pars.net.expect_imei := true; + pars.net.check_imei_result := OSMO_GSUP_IMEI_RESULT_NACK; + f_init_handler(pars); + + /* Cannot use f_perform_lu() as we expect a reject */ + l3_lu := f_build_lu_imsi(g_pars.imsi) + f_create_gsup_expect(hex2str(g_pars.imsi)); + f_bssap_compl_l3(l3_lu); + BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3)); + + f_mm_common(); + f_msc_lu_hlr(); + f_mm_imei(); + + /* Expect reject. As of writing, sometimes it passes, sometimes we get a broken pipe (race condition)! */ + alt { + [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { + setverdict(pass); + } + [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt { + setverdict(fail, "Expected LU reject BSSAP message, got: ", dtap_mt); + mtc.stop; + } + } +} +testcase TC_lu_imsi_auth_tmsi_check_imei_nack() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "network", "authentication required"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd 1"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_check_imei_nack), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_auth_tmsi_check_imei_err(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + var PDU_ML3_MS_NW l3_lu; + var PDU_DTAP_MT dtap_mt; + + pars.net.expect_auth := true; + pars.net.expect_imei := true; + pars.net.check_imei_error := true; + f_init_handler(pars); + + /* Cannot use f_perform_lu() as we expect a reject */ + l3_lu := f_build_lu_imsi(g_pars.imsi) + f_create_gsup_expect(hex2str(g_pars.imsi)); + f_bssap_compl_l3(l3_lu); + BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3)); + + f_mm_common(); + f_msc_lu_hlr(); + f_mm_imei(); + + /* Expect reject. As of writing, sometimes it passes, sometimes we get a broken pipe (race condition)! */ + alt { + [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { + setverdict(pass); + } + [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt { + setverdict(fail, "Expected LU reject BSSAP message, got: ", dtap_mt); + mtc.stop; + } + } +} +testcase TC_lu_imsi_auth_tmsi_check_imei_err() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "network", "authentication required"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd 1"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_check_imei_err), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_auth_tmsi_check_imei_early(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + pars.net.expect_auth := true; + pars.net.expect_imei_early := true; + f_init_handler(pars); + f_perform_lu(); +} +testcase TC_lu_imsi_auth_tmsi_check_imei_early() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "network", "authentication required"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd early"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_check_imei_early), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_auth3g_tmsi_check_imei_early(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + pars.net.expect_auth := true; + pars.use_umts_aka := true; + pars.net.expect_imei_early := true; + f_init_handler(pars); + f_perform_lu(); +} +testcase TC_lu_imsi_auth3g_tmsi_check_imei_early() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "network", "authentication required"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd early"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth3g_tmsi_check_imei_early), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_noauth_tmsi_check_imei_early(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + pars.net.expect_imei_early := true; + f_init_handler(pars); + f_perform_lu(); +} +testcase TC_lu_imsi_noauth_tmsi_check_imei_early() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "msc", "check-imei-rqd early"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_noauth_tmsi_check_imei_early), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_noauth_notmsi_check_imei_early(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + pars.net.expect_tmsi := false; + pars.net.expect_imei_early := true; + f_init_handler(pars); + f_perform_lu(); +} +testcase TC_lu_imsi_noauth_notmsi_check_imei_early() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "msc", "no assign-tmsi"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd early"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_noauth_notmsi_check_imei_early), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_auth_tmsi_check_imei_early_nack(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + var PDU_ML3_MS_NW l3_lu; + var PDU_DTAP_MT dtap_mt; + + pars.net.expect_auth := true; + pars.net.expect_imei_early := true; + pars.net.check_imei_result := OSMO_GSUP_IMEI_RESULT_NACK; + f_init_handler(pars); + + /* Cannot use f_perform_lu() as we expect a reject */ + l3_lu := f_build_lu_imsi(g_pars.imsi) + f_create_gsup_expect(hex2str(g_pars.imsi)); + f_bssap_compl_l3(l3_lu); + BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3)); + + f_mm_imei_early(); + + /* Expect reject */ + alt { + [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { + setverdict(pass); + } + [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt { + setverdict(fail, "Expected LU reject BSSAP message, got: ", dtap_mt); + mtc.stop; + } + } +} +testcase TC_lu_imsi_auth_tmsi_check_imei_early_nack() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "network", "authentication required"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd early"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_check_imei_early_nack), 5); + vc_conn.done; +} + +private function f_tc_lu_imsi_auth_tmsi_check_imei_early_err(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + var PDU_ML3_MS_NW l3_lu; + var PDU_DTAP_MT dtap_mt; + + pars.net.expect_auth := true; + pars.net.expect_imei_early := true; + pars.net.check_imei_error := true; + f_init_handler(pars); + + /* Cannot use f_perform_lu() as we expect a reject */ + l3_lu := f_build_lu_imsi(g_pars.imsi) + f_create_gsup_expect(hex2str(g_pars.imsi)); + f_bssap_compl_l3(l3_lu); + BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3)); + + f_mm_imei_early(); + + /* Expect reject */ + alt { + [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { + setverdict(pass); + } + [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt { + setverdict(fail, "Expected LU reject BSSAP message, got: ", dtap_mt); + mtc.stop; + } + } +} +testcase TC_lu_imsi_auth_tmsi_check_imei_early_err() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + f_vty_config(MSCVTY, "network", "authentication required"); + f_vty_config(MSCVTY, "msc", "check-imei-rqd early"); + + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_check_imei_early_err), 5); + vc_conn.done; +} control { execute( TC_cr_before_reset() ); @@ -5641,6 +5927,19 @@ execute( TC_ho_inter_msc_out() ); + execute( TC_lu_imsi_auth_tmsi_check_imei() ); + execute( TC_lu_imsi_auth3g_tmsi_check_imei() ); + execute( TC_lu_imsi_noauth_tmsi_check_imei() ); + execute( TC_lu_imsi_noauth_notmsi_check_imei() ); + execute( TC_lu_imsi_auth_tmsi_check_imei_nack() ); + execute( TC_lu_imsi_auth_tmsi_check_imei_err() ); + execute( TC_lu_imsi_auth_tmsi_check_imei_early() ); + execute( TC_lu_imsi_auth3g_tmsi_check_imei_early() ); + execute( TC_lu_imsi_noauth_tmsi_check_imei_early() ); + execute( TC_lu_imsi_noauth_notmsi_check_imei_early() ); + execute( TC_lu_imsi_auth_tmsi_check_imei_early_nack() ); + execute( TC_lu_imsi_auth_tmsi_check_imei_early_err() ); + /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); execute( TC_gsup_mt_multi_part_sms() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index a60e2ec..ca8edd2 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<testsuite name='Titan' tests='84' failures='2' errors='1' skipped='0' inconc='0' time='MASKED'> +<testsuite name='Titan' tests='96' failures='2' errors='3' skipped='0' inconc='0' time='MASKED'> <testcase classname='MSC_Tests' name='TC_cr_before_reset' time='MASKED'/> <testcase classname='MSC_Tests' name='TC_lu_imsi_noauth_tmsi' time='MASKED'/> <testcase classname='MSC_Tests' name='TC_lu_imsi_noauth_notmsi' time='MASKED'/> @@ -97,4 +97,20 @@ <testcase classname='MSC_Tests' name='TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug' time='MASKED'/> <testcase classname='MSC_Tests' name='TC_gsup_mt_multi_part_sms' time='MASKED'/> <testcase classname='MSC_Tests' name='TC_mo_cc_bssmap_clear' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_auth_tmsi_check_imei' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_auth3g_tmsi_check_imei' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_noauth_tmsi_check_imei' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_noauth_notmsi_check_imei' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_auth_tmsi_check_imei_nack' time='MASKED'/> + <error type='DTE'></error> + </testcase> + <testcase classname='MSC_Tests' name='TC_lu_imsi_auth_tmsi_check_imei_err' time='MASKED'/> + <error type='DTE'></error> + </testcase> + <testcase classname='MSC_Tests' name='TC_lu_imsi_auth_tmsi_check_imei_early' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_auth3g_tmsi_check_imei_early' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_noauth_tmsi_check_imei_early' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_noauth_notmsi_check_imei_early' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_auth_tmsi_check_imei_early_nack' time='MASKED'/> + <testcase classname='MSC_Tests' name='TC_lu_imsi_auth_tmsi_check_imei_early_err' time='MASKED'/> </testsuite> -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic34bb8dc8547cafb5a53df03884554dd4f72956d Gerrit-Change-Number: 14694 Gerrit-PatchSet: 1 Gerrit-Owner: osmith <osmith at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190708/205d89cd/attachment.htm>