sgsn: extend f_routing_area_update() to support Iu
Allow Iu tests to use f_routing_area_update() Change-Id: Ic03952a04c00a4fc437ef39c5ee046549c122c8b
This commit is contained in:
parent
1552e79637
commit
5d56f5251b
|
@ -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;
|
||||
}
|
||||
[] BSSGP[bssgp].receive { repeat; }
|
||||
[is_iu(bssgp)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_RAU_REJECT)) {
|
||||
setverdict(fail, "Unexpected RAU Reject");
|
||||
mtc.stop;
|
||||
}
|
||||
|
||||
[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; }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue