summaryrefslogtreecommitdiffstats
path: root/sgsn
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2018-06-12 16:24:12 +0200
committerAlexander Couzens <lynxis@fe80.eu>2018-06-12 19:22:50 +0200
commit53f205657194f96b08f81a31012a72bca60ab9fa (patch)
tree5d2aeb72cb3a33c8d35d36fc527eec66b1588f80 /sgsn
parent667dd7fa848fae6e2d1bf704768c60ddd6e764a1 (diff)
sgsn: add TC_attach_no_imsi_response
Ignores Identity Request IMSI. MS -> SGSN: Attach Request TMSI (unknown) MS <- SGSN: Identity Request IMEI (optional) MS -> SGSN: Identity Response IMEI (optional) MS <- SGSN: Identity Request IMSI MS -x SGSN: no response MS <- SGSN: re-send: Identity Request IMSI 4x MS <- SGSN: Attach Reject Change-Id: I4f41d59cfe6b0168b5e0874082fd700b56a7f0da
Diffstat (limited to 'sgsn')
-rw-r--r--sgsn/SGSN_Tests.ttcn48
1 files changed, 48 insertions, 0 deletions
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index c1d4cdf..9632718 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -1411,6 +1411,53 @@ testcase TC_attach_no_imei_response() runs on test_CT {
vc_conn.done;
}
+/* Attempt an attach, but loose the Identification Request (IMSI) */
+private function f_TC_attach_no_imsi_response(charstring id) runs on BSSGP_ConnHdlr {
+ var integer count_req := 0;
+ var MobileL3_CommonIE_Types.MobileIdentityLV mi;
+
+ /* set p_tmsi to use it in Attach Req via f_mi_get_lv() */
+ g_pars.p_tmsi := 'c0000035'O;
+
+ BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit));
+
+ alt {
+ [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) {
+ /* break */
+ }
+ [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) {
+ /* ignore ID REQ IMSI */
+ count_req := count_req + 1;
+ repeat;
+ }
+ [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) {
+ mi := valueof(ts_MI_IMEI_LV(g_pars.imei));
+ BSSGP.send(ts_GMM_ID_RESP(mi));
+ repeat;
+ }
+ }
+ if (count_req != 5) {
+ setverdict(fail, "Did not received GMM ID Request Type IMSI 5 times!");
+ }
+ setverdict(pass);
+}
+
+testcase TC_attach_no_imsi_response() runs on test_CT {
+ /* MS -> SGSN: Attach Request TMSI (unknown)
+ * MS <- SGSN: Identity Request IMEI (optional)
+ * MS -> SGSN: Identity Response IMEI (optional)
+ * MS <- SGSN: Identity Request IMSI
+ * MS -x SGSN: no response
+ * MS <- SGSN: re-send: Identity Request IMSI 4x
+ * MS <- SGSN: Attach Reject
+ */
+ var BSSGP_ConnHdlr vc_conn;
+ f_init();
+ f_sleep(1.0);
+ vc_conn := f_start_handler(refers(f_TC_attach_no_imsi_response), testcasename(), g_gb[0], 35, 60.0);
+ vc_conn.done;
+}
+
control {
execute( TC_attach() );
execute( TC_attach_mnc3() );
@@ -1425,6 +1472,7 @@ control {
execute( TC_attach_accept_all() );
execute( TC_attach_closed() );
execute( TC_attach_no_imei_response() );
+ execute( TC_attach_no_imsi_response() );
execute( TC_hlr_location_cancel_request_update(), 10.0 );
execute( TC_hlr_location_cancel_request_withdraw(), 10.0 );
execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 );