neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/31767 ) Change subject: hnbgw: add f_bssap_expect() ...................................................................... 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 --- M hnbgw/HNBGW_Tests.ttcn 1 file changed, 42 insertions(+), 41 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 71761b5..1c0b121 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.ttcn @@ -474,6 +474,28 @@ } } +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 @@ } 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 @@ } /* 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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)); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/31767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I51c60ed8fcef83c98e6c62c9f62a8c3c665de860 Gerrit-Change-Number: 31767 Gerrit-PatchSet: 3 Gerrit-Owner: neels <nhofmeyr@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> Gerrit-MessageType: merged