diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2019-09-03 12:36:18 +0200 |
---|---|---|
committer | Alexander Couzens <lynxis@fe80.eu> | 2019-09-11 12:18:32 +0200 |
commit | 5d56f5251b6303f830d461bcf2f4695643636048 (patch) | |
tree | 446904490af0d9b2b053ea4aa573a6622f52314c | |
parent | 1552e79637da88bf1338ec8f5de71d951d85e262 (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.ttcn | 32 |
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; } } } |