aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2019-09-03 12:36:18 +0200
committerAlexander Couzens <lynxis@fe80.eu>2019-09-11 12:18:32 +0200
commit5d56f5251b6303f830d461bcf2f4695643636048 (patch)
tree446904490af0d9b2b053ea4aa573a6622f52314c
parent1552e79637da88bf1338ec8f5de71d951d85e262 (diff)
sgsn: extend f_routing_area_update() to support Iu
Allow Iu tests to use f_routing_area_update() Change-Id: Ic03952a04c00a4fc437ef39c5ee046549c122c8b
-rw-r--r--sgsn/SGSN_Tests.ttcn32
1 files changed, 27 insertions, 5 deletions
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 501bec83..6de9987e 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -2360,22 +2360,44 @@ testcase TC_attach_check_complete_resend() runs on test_CT {
f_cleanup();
}
-private function f_routing_area_update(RoutingAreaIdentificationV ra, integer bssgp := 0) runs on BSSGP_ConnHdlr {
+friend function f_routing_area_update(RoutingAreaIdentificationV ra, integer bssgp := 0) runs on BSSGP_ConnHdlr {
var PDU_L3_SGSN_MS l3_mt;
+ var PDU_DTAP_PS_MT mt;
+ var template OCT4 p_tmsi := omit;
+ if (is_iu(bssgp)) {
+ p_tmsi := g_pars.p_tmsi;
+ }
/* then send RAU */
- f_send_l3(ts_GMM_RAU_REQ(f_mi_get_lv(), GPRS_UPD_T_RA, g_pars.ra, false, omit, omit), bssgp);
+ f_send_l3(ts_GMM_RAU_REQ(f_mi_get_lv(), GPRS_UPD_T_RA, g_pars.ra, false, omit, omit, p_tmsi), bssgp);
alt {
- [] BSSGP[bssgp].receive(tr_GMM_RAU_ACCEPT) -> value l3_mt {
+ [is_gb(bssgp)] BSSGP[bssgp].receive(tr_GMM_RAU_ACCEPT) -> value l3_mt {
f_process_rau_accept(l3_mt.msgs.gprs_mm.routingAreaUpdateAccept, bssgp);
f_send_l3(ts_GMM_RAU_COMPL, bssgp);
setverdict(pass);
}
- [] BSSGP[bssgp].receive(tr_GMM_RAU_REJECT) {
+ [is_iu(bssgp)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_RAU_ACCEPT)) -> value mt {
+ f_process_rau_accept(mt.dtap.msgs.gprs_mm.routingAreaUpdateAccept, bssgp);
+ f_send_l3(ts_GMM_RAU_COMPL, bssgp);
+ setverdict(pass);
+ }
+
+ [is_gb(bssgp)] BSSGP[bssgp].receive(tr_GMM_RAU_REJECT) {
+ setverdict(fail, "Unexpected RAU Reject");
+ mtc.stop;
+ }
+ [is_iu(bssgp)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_RAU_REJECT)) {
setverdict(fail, "Unexpected RAU Reject");
mtc.stop;
}
- [] BSSGP[bssgp].receive { repeat; }
+
+ [is_iu(bssgp)] BSSAP.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?, uia_key := oct2bit(g_pars.vec.ik),
+ key_sts := ?)) {
+ var IntegrityProtectionAlgorithm uia_chosen := 0; /* 0 = standard_UMTS_integrity_algorithm_UIA1 */
+ BSSAP.send(ts_RANAP_SecurityModeComplete(uia_chosen));
+ }
+ [is_gb(bssgp)] BSSGP[bssgp].receive { repeat; }
+ [is_iu(bssgp)] BSSAP.receive { repeat; }
}
}