hnbgw: add f_bssap_expect()
End the guessing when seeing "timeout of T_guard": set a precise failure verdict when an expected RANAP/SCCP ("BSSAP") message did not arrive as expected. Change-Id: I51c60ed8fcef83c98e6c62c9f62a8c3c665de860
This commit is contained in:
parent
6bbfe057af
commit
dc416c97b3
|
@ -474,6 +474,28 @@ private altstep as_Tguard_ConnHdlr() runs on ConnHdlr {
|
|||
}
|
||||
}
|
||||
|
||||
private function f_bssap_expect(template (present) RANAP_PDU exp_rx) runs on ConnHdlr return RANAP_PDU
|
||||
{
|
||||
var RANAP_PDU rx;
|
||||
timer T := 5.0;
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSAP.receive(exp_rx) -> value rx {
|
||||
setverdict(pass);
|
||||
}
|
||||
[] BSSAP.receive(RANAP_PDU:?) {
|
||||
setverdict(fail, "Got an unexpected RANAP message on BSSAP port, was waiting for ", exp_rx);
|
||||
mtc.stop;
|
||||
}
|
||||
[] T.timeout {
|
||||
setverdict(fail, "Timeout waiting for RANAP on BSSAP port: ", exp_rx);
|
||||
mtc.stop;
|
||||
}
|
||||
}
|
||||
T.stop;
|
||||
return rx;
|
||||
}
|
||||
|
||||
/* send RANAP on Iuh and expect it to show up on Iu */
|
||||
function f_iuh2iu(template (present) RANAP_PDU tx, template RANAP_PDU exp_rx := omit)
|
||||
runs on ConnHdlr return RANAP_PDU {
|
||||
|
@ -485,17 +507,8 @@ runs on ConnHdlr return RANAP_PDU {
|
|||
}
|
||||
|
||||
RUA.send(tx);
|
||||
T.start;
|
||||
|
||||
alt {
|
||||
[] BSSAP.receive(exp_rx) -> value rx {
|
||||
setverdict(pass);
|
||||
}
|
||||
[] T.timeout {
|
||||
setverdict(fail, "Timeout waiting for Iu ", exp_rx);
|
||||
}
|
||||
}
|
||||
return rx;
|
||||
return f_bssap_expect(exp_rx);
|
||||
}
|
||||
|
||||
/* send RANAP on Iu and expect it to show up on Iuh */
|
||||
|
@ -560,16 +573,7 @@ runs on ConnHdlr return RANAP_PDU {
|
|||
}
|
||||
|
||||
/* expect to receive it on the Iu side */
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSAP.receive(exp_rx) -> value rx {
|
||||
setverdict(pass);
|
||||
}
|
||||
[] T.timeout {
|
||||
setverdict(fail, "Timeout waiting for Iu ", exp_rx);
|
||||
}
|
||||
}
|
||||
return rx;
|
||||
return f_bssap_expect(exp_rx);
|
||||
}
|
||||
|
||||
/* 3GPP TS 48.006 9.2 Connection release:
|
||||
|
@ -600,17 +604,10 @@ runs on ConnHdlr return RANAP_PDU {
|
|||
RUA.send(RUA_Disc_Req:{tx, cause});
|
||||
|
||||
/* expect to receive it on the Iu side */
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSAP.receive(exp_rx) -> value rx {
|
||||
}
|
||||
[] T.timeout {
|
||||
setverdict(fail, "Timeout waiting for Iu ", exp_rx);
|
||||
return rx;
|
||||
}
|
||||
}
|
||||
rx := f_bssap_expect(exp_rx);
|
||||
|
||||
/* expect disconnect on the Iu side */
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {
|
||||
setverdict(pass);
|
||||
|
@ -969,13 +966,11 @@ friend function f_rab_ass_resp(inout MgcpParameters pars) runs on ConnHdlr {
|
|||
var MgcpCommand mgcp_cmd;
|
||||
var RANAP_PDU tx;
|
||||
var template RAB_SetupOrModifiedList rab_smdl;
|
||||
timer T := 5.0;
|
||||
|
||||
/* Send back RAB Assignment Response via Iuh */
|
||||
rab_smdl := ts_RAB_SMdL(t_RAB_id(23), f_ts_RAB_TLA(pars.hnb_rtp_ip), t_RAB_binding_port(pars.hnb_rtp_port));
|
||||
tx := valueof(ts_RANAP_RabAssResp(rab_smdl));
|
||||
RUA.send(tx);
|
||||
T.start;
|
||||
|
||||
interleave {
|
||||
/* Expect MDCX with IP/port from RAB Assignment Response */
|
||||
|
@ -1000,14 +995,7 @@ friend function f_rab_ass_resp(inout MgcpParameters pars) runs on ConnHdlr {
|
|||
rab_smdl := ts_RAB_SMdL(t_RAB_id(23), f_ts_RAB_TLA(pars.mgw_conn_2.mgw_rtp_ip), t_RAB_binding_port(pars.mgw_conn_2.mgw_rtp_port));
|
||||
tx := valueof(ts_RANAP_RabAssResp(rab_smdl));
|
||||
|
||||
alt {
|
||||
[] BSSAP.receive(tx) {
|
||||
setverdict(pass);
|
||||
}
|
||||
[] T.timeout {
|
||||
setverdict(fail, "Timeout waiting for Iuh ", tx);
|
||||
}
|
||||
}
|
||||
f_bssap_expect(tx);
|
||||
}
|
||||
|
||||
private altstep as_mgcp_dlcx(inout TestHdlrParams pars) runs on ConnHdlr {
|
||||
|
@ -1398,7 +1386,7 @@ friend function f_tc_ps_rab_assignment_with_pfcp(charstring id, TestHdlrParams p
|
|||
PFCP.send(r);
|
||||
|
||||
rab_smdl := ts_RAB_SMdL_ps(t_RAB_id(23), f_ts_RAB_TLA(gtp_pars.core.local.addr), gtp_pars.core.local.teid);
|
||||
BSSAP.receive(tr_RANAP_RabAssResp(rab_smdl));
|
||||
f_bssap_expect(tr_RANAP_RabAssResp(rab_smdl));
|
||||
|
||||
f_sleep(2.0);
|
||||
tx := valueof(ts_RANAP_IuReleaseCommand(ts_RanapCause_om_intervention));
|
||||
|
@ -1464,7 +1452,7 @@ friend function f_tc_ps_rab_assignment_without_pfcp(charstring id, TestHdlrParam
|
|||
RUA.send(tx);
|
||||
|
||||
/* Expect on IuPS: unmodified RAB Assignment Response */
|
||||
BSSAP.receive(tr_RANAP_RabAssResp(rab_smdl));
|
||||
f_bssap_expect(tr_RANAP_RabAssResp(rab_smdl));
|
||||
|
||||
f_sleep(2.0);
|
||||
tx := valueof(ts_RANAP_IuReleaseCommand(ts_RanapCause_om_intervention));
|
||||
|
|
Loading…
Reference in New Issue