lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/39236?usp=email )
Change subject: MSC Tests: add TC_gsup_lu_and_det: do a LU, Detach and expect GSUP MS Purge ......................................................................
MSC Tests: add TC_gsup_lu_and_det: do a LU, Detach and expect GSUP MS Purge
Currently the MSC/VLR doesn't inform the HLR when a MS detaches.
Change-Id: I9e87537efc2c921fa860539a706316ed410b45d5 --- M msc/MSC_Tests.ttcn 1 file changed, 20 insertions(+), 185 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/36/39236/1
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index b4b3614..b6d3ca4 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -3342,6 +3342,25 @@ f_vty_config(MSCVTY, "msc", "no sms-over-gsup"); }
+/* LU followed by detach and will trigger a Purge MS */ +friend function f_tc_gsup_lu_and_det(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + f_init_handler(pars); + f_perform_lu(); + + f_imsi_detach_by_imsi(); + + GSUP.receive(tr_GSUP_PURGE_MS_REQ(g_pars.imsi, OSMO_GSUP_CN_DOMAIN_CS)); + GSUP.send(ts_GSUP_PURGE_MS_RES(g_pars.imsi)); +} +testcase TC_gsup_lu_and_det() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + + vc_conn := f_start_handler(refers(f_tc_gsup_lu_and_det), 103); + vc_conn.done; +} + + /* convert GSM L3 TON to SMPP_TON enum */ function f_sm_ton_from_gsm(BIT3 ton) return SMPP_TON { select (ton) { @@ -7448,191 +7467,7 @@ }
control { - execute( TC_cr_before_reset() ); - execute( TC_lu_imsi_noauth_tmsi() ); - execute( TC_lu_imsi_noauth_notmsi() ); - execute( TC_lu_tmsi_noauth_notmsi() ); - execute( TC_lu_imsi_reject() ); - execute( TC_lu_imsi_timeout_gsup() ); - execute( TC_lu_imsi_auth_tmsi() ); - execute( TC_lu_imsi_auth3g_tmsi() ); - execute( TC_lu_imsi_timeout_tmsi_realloc() ); - execute( TC_cmserv_imsi_unknown() ); - execute( TC_cmserv_tmsi_unknown() ); - execute( TC_lu_and_mo_call() ); - execute( TC_lu_and_mo_call_ipv6() ); - execute( TC_lu_and_mo_call_sccp_tiar_timeout() ); - execute( TC_lu_auth_sai_timeout() ); - execute( TC_lu_auth_sai_err() ); - execute( TC_lu_clear_request() ); - execute( TC_mo_call_clear_request() ); - execute( TC_mt_call_clear_request() ); - execute( TC_lu_disconnect() ); - execute( TC_lu_by_imei() ); - execute( TC_lu_by_tmsi_noauth_unknown() ); - execute( TC_attached_imsi_lu_unknown_tmsi() ); - execute( TC_imsi_detach_by_imsi() ); - execute( TC_imsi_detach_by_tmsi() ); - execute( TC_imsi_detach_by_imei() ); - execute( TC_emerg_call_imei_reject() ); - execute( TC_emerg_call_imsi() ); - execute( TC_cm_serv_req_vgcs_reject() ); - execute( TC_cm_serv_req_vbs_reject() ); - execute( TC_cm_serv_req_lcs_reject() ); - execute( TC_cm_reest_req_reject() ); - execute( TC_lu_auth_2G_fail() ); - execute( TC_lu_imsi_auth_tmsi_encr_13_13() ); - execute( TC_cl3_no_payload() ); - execute( TC_cl3_rnd_payload() ); - execute( TC_establish_and_nothing() ); - execute( TC_mo_setup_and_nothing() ); - execute( TC_mo_crcx_ran_timeout() ); - execute( TC_mo_crcx_ran_reject() ); - execute( TC_mt_crcx_ran_reject() ); - execute( TC_mo_setup_and_dtmf_dup() ); - execute( TC_mt_t310() ); - execute( TC_gsup_cancel() ); - execute( TC_lu_imsi_auth_tmsi_encr_1_13() ); - execute( TC_lu_imsi_auth_tmsi_encr_3_13() ); - execute( TC_lu_imsi_auth_tmsi_encr_3_1() ); - execute( TC_lu_imsi_auth_tmsi_encr_3_1_no_cm() ); - execute( TC_lu_imsi_auth_tmsi_encr_13_2() ); - execute( TC_lu_imsi_auth_tmsi_encr_013_2() ); - execute( TC_lu_imsi_auth_tmsi_encr_0134_1() ); - execute( TC_lu_imsi_auth_tmsi_encr_0134_34() ); - execute( TC_lu_imsi_auth_tmsi_encr_0134_34_no_cm3() ); - - execute( TC_mo_release_timeout() ); - execute( TC_lu_and_mt_call_no_dlcx_resp() ); - execute( TC_reset_two() ); - - execute( TC_lu_and_mt_call() ); - execute( TC_lu_and_mt_call_ipv6() ); - execute( TC_lu_and_mt_call_already_paging() ); - execute( TC_lu_and_mt_call_osmux() ); - - execute( TC_lu_and_mo_sms() ); - execute( TC_lu_and_mt_sms() ); - execute( TC_lu_and_mt_sms_already_paging() ); - execute( TC_lu_and_mt_sms_paging_and_nothing() ); - execute( TC_lu_and_mt_sms_paging_repeated() ); - execute( TC_smpp_mo_sms() ); - execute( TC_smpp_mo_sms_rp_error() ); - execute( TC_smpp_mt_sms() ); - - execute( TC_gsup_mo_sms() ); - execute( TC_gsup_mo_smma() ); - execute( TC_gsup_mt_sms_ack() ); - execute( TC_gsup_mt_sms_err() ); - execute( TC_gsup_mt_sms_rp_mr() ); - execute( TC_gsup_mo_mt_sms_rp_mr() ); - execute( TC_gsup_mt_multi_part_sms() ); - execute( TC_gsup_mt_sms_lu_delay() ); - - execute( TC_lu_and_mo_ussd_single_request() ); - execute( TC_lu_and_mt_ussd_notification() ); - execute( TC_lu_and_mo_ussd_during_mt_call() ); - execute( TC_lu_and_mt_ussd_during_mt_call() ); - execute( TC_lu_and_mo_ussd_mo_release() ); - execute( TC_lu_and_ss_session_timeout() ); - - execute( TC_mt_ussd_for_unknown_subscr() ); - execute( TC_mo_ussd_for_unknown_trans() ); - execute( TC_proc_ss_for_unknown_session() ); - execute( TC_proc_ss_paging_fail() ); - execute( TC_proc_ss_abort() ); - - execute( TC_multi_lu_and_mo_ussd() ); - execute( TC_multi_lu_and_mt_ussd() ); - - execute( TC_cipher_complete_with_invalid_cipher() ); - execute( TC_cipher_complete_1_without_cipher() ); - execute( TC_cipher_complete_3_without_cipher() ); - execute( TC_cipher_complete_13_without_cipher() ); - execute( TC_lu_with_invalid_mcc_mnc() ); - - execute( TC_sgsap_reset() ); - execute( TC_sgsap_lu() ); - execute( TC_sgsap_lu_imsi_reject() ); - execute( TC_sgsap_lu_and_nothing() ); - execute( TC_sgsap_expl_imsi_det_eps() ); - execute( TC_sgsap_impl_imsi_det_eps() ); - execute( TC_sgsap_expl_imsi_det_noneps() ); - execute( TC_sgsap_impl_imsi_det_noneps() ); - execute( TC_sgsap_paging_rej() ); - execute( TC_sgsap_paging_subscr_rej() ); - execute( TC_sgsap_paging_ue_unr() ); - execute( TC_sgsap_paging_and_nothing() ); - execute( TC_sgsap_paging_and_lu() ); - execute( TC_sgsap_mt_sms() ); - execute( TC_sgsap_mo_sms() ); - execute( TC_sgsap_mt_sms_and_nothing() ); - execute( TC_sgsap_mt_sms_and_reject() ); - execute( TC_sgsap_unexp_ud() ); - execute( TC_sgsap_unsol_ud() ); - execute( TC_bssap_lu_sgsap_lu_and_mt_call() ); - execute( TC_sgsap_lu_and_mt_call() ); - execute( TC_sgsap_vlr_failure() ); - - execute( TC_ho_inter_bsc_unknown_cell() ); - execute( TC_ho_inter_bsc() ); - execute( TC_ho_inter_bsc_a5_1() ); - execute( TC_ho_inter_bsc_a5_3() ); - execute( TC_ho_inter_bsc_a5_4() ); - execute( TC_ho_inter_bsc_ipv6() ); - execute( TC_ho_inter_bsc_csd() ); - - execute( TC_ho_inter_msc_out() ); - execute( TC_ho_inter_msc_out_a5_1() ); - execute( TC_ho_inter_msc_out_a5_3() ); - execute( TC_ho_inter_msc_out_a5_4() ); - execute( TC_ho_inter_msc_out_ipv6() ); - execute( TC_ho_inter_msc_out_csd() ); - - 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() ); - execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); - - execute( TC_mo_cc_bssmap_clear() ); - execute( TC_invalid_mgcp_crash() ); - execute( TC_mm_id_resp_no_identity() ); - execute( TC_lu_and_expire_while_paging() ); - execute( TC_paging_response_imsi_unknown() ); - execute( TC_paging_response_tmsi_unknown() ); - - execute( TC_call_re_establishment() ); - execute( TC_call_re_establishment_auth() ); - execute( TC_call_re_establishment_ciph() ); - - execute( TC_cm_serv_wrong_mi() ); - - execute( TC_auth_options_0() ); - execute( TC_auth_options_1() ); - execute( TC_auth_options_2() ); - execute( TC_auth_options_3() ); - execute( TC_auth_options_4() ); - execute( TC_auth_options_5() ); - execute( TC_auth_options_6() ); - execute( TC_auth_options_7() ); - execute( TC_auth_options_8() ); - execute( TC_auth_options_9() ); - execute( TC_auth_options_10() ); - execute( TC_auth_options_11() ); - - execute( TC_lu_and_mo_csd() ); - execute( TC_lu_and_mt_csd() ); - - execute( TC_lu_and_mo_call_reass_for_mt_codec() ); + execute( TC_gsup_lu_and_det() ); }