sgsn: Add functions for BSSGP suspend + resume procedure
Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Related: OS#4616
This commit is contained in:
parent
a36b246462
commit
f2f3c9bf79
|
@ -799,6 +799,46 @@ friend function f_gmm_attach(boolean umts_aka_challenge, boolean force_gsm_sres,
|
|||
f_sleep(0.05);
|
||||
}
|
||||
|
||||
friend function f_bssgp_suspend(integer ran_idx := 0) runs on BSSGP_ConnHdlr return OCT1 {
|
||||
timer T := 5.0;
|
||||
var PDU_BSSGP rx_pdu;
|
||||
BSSGP_SIG[ran_idx].send(ts_BSSGP_SUSPEND(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id));
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu {
|
||||
return rx_pdu.pDU_BSSGP_SUSPEND_ACK.suspend_Reference_Number.suspend_Reference_Number_value;
|
||||
}
|
||||
[] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu {
|
||||
setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli);
|
||||
mtc.stop;
|
||||
}
|
||||
[] T.timeout {
|
||||
setverdict(fail, "No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli);
|
||||
mtc.stop;
|
||||
}
|
||||
}
|
||||
return '00'O;
|
||||
}
|
||||
|
||||
friend function f_bssgp_resume(OCT1 susp_ref, integer ran_idx := 0) runs on BSSGP_ConnHdlr {
|
||||
timer T := 5.0;
|
||||
BSSGP_SIG[ran_idx].send(ts_BSSGP_RESUME(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, susp_ref));
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id));
|
||||
[] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id,
|
||||
?)) {
|
||||
setverdict(fail, "RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli);
|
||||
mtc.stop;
|
||||
}
|
||||
[] T.timeout {
|
||||
setverdict(fail, "No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli);
|
||||
mtc.stop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function f_TC_attach(charstring id) runs on BSSGP_ConnHdlr {
|
||||
f_gmm_attach(false, false);
|
||||
setverdict(pass);
|
||||
|
|
Loading…
Reference in New Issue