From b2124b21ba6c3606cf6d9db3062c59667612e537 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Fri, 16 Feb 2018 22:26:56 +0100 Subject: sgsn: Add TC_attach_closed for "auth-policy closed" Change-Id: Ic8aa77d1825fa2e39a09c3f0f0918ef24a3b3f7b --- sgsn/SGSN_Tests.ttcn | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'sgsn') diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 134193c0..be1af57e 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -465,6 +465,47 @@ testcase TC_attach_accept_all() runs on test_CT { vc_conn.done; } +/* Attempt of GPRS ATTACH in 'accept all' mode */ +private function f_TC_attach_closed_foreign(charstring id) runs on BSSGP_ConnHdlr { + var MobileIdentityLV mi; + var RoutingAreaIdentificationV old_ra := f_random_RAI(); + + /* Simulate a foreign IMSI */ + g_pars.imsi := '001010123456789'H; + f_bssgp_client_register(g_pars.imsi, g_pars.tlli, g_pars.bssgp_cell_id); + + g_pars.net.expect_auth := false; + + if (ispresent(g_pars.p_tmsi)) { + mi := valueof(ts_MI_TMSI_LV(g_pars.p_tmsi)); + } else { + mi := valueof(ts_MI_IMSI_LV(g_pars.imsi)); + } + BSSGP.send(ts_GMM_ATTACH_REQ(mi, old_ra, false, false, omit, omit)); + alt { + [] as_mm_identity(); + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT('07'O))) { + setverdict(pass); + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + setverdict(pass); + } + } +} +testcase TC_attach_closed() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + f_vty_config(SGSNVTY, "sgsn", "auth-policy closed"); + /* test with foreign IMSI: Must Reject */ + vc_conn := f_start_handler(refers(f_TC_attach_closed_foreign), testcasename(), g_gb[0], 7); + vc_conn.done; + /* test with home IMSI: Must Accept */ + vc_conn := f_start_handler(refers(f_TC_attach_accept_all), testcasename(), g_gb[0], 8); + vc_conn.done; +} + + control { execute( TC_attach() ); @@ -473,6 +514,7 @@ control { execute( TC_attach_gsup_lu_timeout() ); execute( TC_attach_combined() ); execute( TC_attach_accept_all() ); + execute( TC_attach_closed() ); } -- cgit v1.2.3