daniel has uploaded this change for review.
hnbgw: Check for DLCX on Iu Release as well
Change-Id: Id53e99e51dbc6b9af67503ba6ecbc8990a7de4c9
---
M hnbgw/HNBGW_Tests.ttcn
1 file changed, 37 insertions(+), 12 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/15/27115/1
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn
index 3973a0e..8a3c885 100644
--- a/hnbgw/HNBGW_Tests.ttcn
+++ b/hnbgw/HNBGW_Tests.ttcn
@@ -758,24 +758,16 @@
tx := f_build_initial_ue(g_pars);
f_iuh2iu_connect(tx);
- /** BSSAP send: RAB Assignment Request
- * MGCP receive: CRCXf_handle_crcx
- * MGCP send: ACK
- * RUA receive: RAB Assignment Request (*)
- * RUA send: RAB Assignment Response
- * MGCP receive: MDCX
- * MGCP send: ACK
- * BSSAP receive: RAB Assignment Response (*)
- */
-
-
+ /* Send RAB Assignment Request */
rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA("192.168.0.1"), t_RAB_binding_port(1234));
tx := valueof(ts_RANAP_RabAssReq(rab_sml));
BSSAP.send(tx);
T.start;
+ /* Handle MGCP CRCX */
alt {
[] MGCP.receive(tr_CRCX) -> value mgcp_cmd {
+ log("CRCX1", mgcp_cmd);
var template MgcpResponse mgcp_rsp := f_handle_crcx(pars.mgcp_pars, mgcp_cmd);
MGCP.send(valueof(mgcp_rsp));
}
@@ -784,6 +776,7 @@
}
}
+ /* Expect RAB Assignment Request with IP/port from CRCX ACK via Iuh */
rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(pars.mgcp_pars.mgw_conn_1.mgw_rtp_ip), t_RAB_binding_port(pars.mgcp_pars.mgw_conn_1.mgw_rtp_port));
tx := valueof(ts_RANAP_RabAssReq(rab_sml));
@@ -796,27 +789,32 @@
}
}
+ /* Send back RAB Assignment Response via Iuh */
rab_smdl := ts_RAB_SMdL(t_RAB_id(23), f_ts_RAB_TLA("192.168.0.2"), t_RAB_binding_port(1235));
tx := valueof(ts_RANAP_RabAssResp(rab_smdl));
RUA.send(tx);
T.start;
interleave {
+ /* Expect MDCX with IP/port from RAB Assignment Response */
[] MGCP.receive(tr_MDCX) -> value mgcp_cmd {
log("MDCX1", mgcp_cmd);
+ /* Verify SDP of MDCX */
var SDP_Message sdp := valueof(ts_SDP(pars.mgcp_pars.mgw_conn_1.mgw_rtp_ip, pars.mgcp_pars.mgw_conn_1.mgw_rtp_ip, hex2str(pars.mgcp_pars.mgcp_call_id), "42", pars.mgcp_pars.mgw_conn_1.mgw_rtp_port,
{ int2str(pars.mgcp_pars.rtp_payload_type) }, { valueof(ts_SDP_rtpmap(pars.mgcp_pars.rtp_payload_type, pars.mgcp_pars.rtp_sdp_format)), valueof(ts_SDP_ptime(20)) } ));
var template MgcpResponse mgcp_rsp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, pars.mgcp_pars.mgw_conn_1.mgcp_connection_id, sdp);
MGCP.send(valueof(mgcp_rsp));
}
- /* Second CRCX */
+ /* Handle CRCX for second leg of endpoint, answer with IP/port */
[] MGCP.receive(tr_CRCX(pars.mgcp_pars.mgcp_ep)) -> value mgcp_cmd {
log("CRCX2", mgcp_cmd);
+ /* Verify SDP of CRCX */
var template MgcpResponse mgcp_rsp := f_handle_crcx(pars.mgcp_pars, mgcp_cmd);
MGCP.send(valueof(mgcp_rsp));
}
}
+ /* Expect RAB Assignment Response with IP/port from second CRCX ACK */
rab_smdl := ts_RAB_SMdL(t_RAB_id(23), f_ts_RAB_TLA(pars.mgcp_pars.mgw_conn_2.mgw_rtp_ip), t_RAB_binding_port(pars.mgcp_pars.mgw_conn_2.mgw_rtp_port));
tx := valueof(ts_RANAP_RabAssResp(rab_smdl));
@@ -830,6 +828,33 @@
setverdict(fail, "Timeout waiting for Iuh ", tx);
}
}
+
+ /* Send Iu Release */
+ tx := valueof(ts_RANAP_IuReleaseCommand(ts_RanapCause_om_intervention));
+ f_iu2iuh(tx);
+
+ T.start;
+ var integer count := 0;
+
+ alt {
+ [count == 0] MGCP.receive(tr_DLCX(pars.mgcp_pars.mgcp_ep)) -> value mgcp_cmd {
+ log("DLCX1", mgcp_cmd);
+ MGCP.send(ts_DLCX_ACK2(mgcp_cmd.line.trans_id));
+ count := 1;
+ repeat;
+ }
+ [count == 1] MGCP.receive(tr_DLCX(pars.mgcp_pars.mgcp_ep)) -> value mgcp_cmd {
+ log("DLCX2", mgcp_cmd);
+ MGCP.send(ts_DLCX_ACK2(mgcp_cmd.line.trans_id));
+ setverdict(pass);
+ }
+ [] T.timeout {
+ setverdict(fail, "Timeout waiting for DLCX");
+ }
+ }
+
+ tx := valueof(ts_RANAP_IuReleaseComplete());
+ f_iuh2iu(tx);
}
testcase TC_rab_assignment() runs on test_CT {
To view, visit change 27115. To unsubscribe, or for help writing mail filters, visit settings.