daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27116 )
Change subject: hnbgw: Use helper function for the rab assignment ......................................................................
hnbgw: Use helper function for the rab assignment
Change-Id: I95625796ee3c75e36637794018e5db27d022dddb --- M hnbgw/HNBGW_Tests.ttcn 1 file changed, 36 insertions(+), 21 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/16/27116/1
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 8a3c885..7de0959 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.ttcn @@ -125,6 +125,10 @@ CrcxResponse mgw_conn_2, uint7_t rtp_payload_type, charstring rtp_sdp_format, + HostName hnb_rtp_ip, + PortNumber hnb_rtp_port, + HostName cn_rtp_ip, + PortNumber cn_rtp_port, boolean use_osmux, integer got_osmux_count } @@ -142,21 +146,26 @@ mgw_conn_2 := { resp := 1, mgw_rtp_ip := "2.2.2.2", - mgw_rtp_port := 11000, + mgw_rtp_port := 20000, mgcp_connection_id := '22222'H }, rtp_payload_type := 23, rtp_sdp_format := "FOO", + hnb_rtp_ip := "1.1.1.2", + hnb_rtp_port := 10001, + cn_rtp_ip := "2.2.2.1", + cn_rtp_port := 20001, use_osmux := false, got_osmux_count := 0 } + type record TestHdlrParams { integer hnb_idx, hexstring imsi, boolean ps_domain, MgcpParameters mgcp_pars optional, HnbConfig hnb optional -}; +}
/* We extend: * RUA_ConnHdlr (for the Iuh side, emulating the HNB) @@ -745,21 +754,15 @@ return mgcp_resp; }
-friend function f_tc_rab_assignment(charstring id, TestHdlrParams pars) runs on ConnHdlr { +friend function f_create_rab(MgcpParameters pars) runs on ConnHdlr { var MgcpCommand mgcp_cmd; var RANAP_PDU tx; var template RAB_SetupOrModifyList rab_sml; var template RAB_SetupOrModifiedList rab_smdl; timer T := 5.0;
- f_init_handler(pars); - f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit}); - - tx := f_build_initial_ue(g_pars); - f_iuh2iu_connect(tx); - /* 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)); + rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(pars.cn_rtp_ip), t_RAB_binding_port(pars.cn_rtp_port)); tx := valueof(ts_RANAP_RabAssReq(rab_sml)); BSSAP.send(tx); T.start; @@ -768,7 +771,7 @@ 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); + var template MgcpResponse mgcp_rsp := f_handle_crcx(pars, mgcp_cmd); MGCP.send(valueof(mgcp_rsp)); } [] T.timeout { @@ -777,7 +780,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)); + rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(pars.mgw_conn_1.mgw_rtp_ip), t_RAB_binding_port(pars.mgw_conn_1.mgw_rtp_port)); tx := valueof(ts_RANAP_RabAssReq(rab_sml));
alt { @@ -790,7 +793,7 @@ }
/* 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)); + 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; @@ -800,34 +803,46 @@ [] 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); + var SDP_Message sdp := valueof(ts_SDP(pars.mgw_conn_1.mgw_rtp_ip, pars.mgw_conn_1.mgw_rtp_ip, hex2str(pars.mgcp_call_id), "42", pars.mgw_conn_1.mgw_rtp_port, + { int2str(pars.rtp_payload_type) }, { valueof(ts_SDP_rtpmap(pars.rtp_payload_type, pars.rtp_sdp_format)), valueof(ts_SDP_ptime(20)) } )); + var template MgcpResponse mgcp_rsp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, pars.mgw_conn_1.mgcp_connection_id, sdp); MGCP.send(valueof(mgcp_rsp)); } /* Handle CRCX for second leg of endpoint, answer with IP/port */ - [] MGCP.receive(tr_CRCX(pars.mgcp_pars.mgcp_ep)) -> value mgcp_cmd { + [] MGCP.receive(tr_CRCX(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); + var template MgcpResponse mgcp_rsp := f_handle_crcx(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)); + 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));
- log("Resp:", tx); alt { [] BSSAP.receive(tx) { - log("Got RAB Resp") setverdict(pass); } [] T.timeout { setverdict(fail, "Timeout waiting for Iuh ", tx); } } +} + +friend function f_tc_rab_assignment(charstring id, TestHdlrParams pars) runs on ConnHdlr { + var MgcpCommand mgcp_cmd; + var RANAP_PDU tx; + timer T := 5.0; + + f_init_handler(pars); + f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit}); + + tx := f_build_initial_ue(g_pars); + f_iuh2iu_connect(tx); + + f_create_rab(pars.mgcp_pars);
/* Send Iu Release */ tx := valueof(ts_RANAP_IuReleaseCommand(ts_RanapCause_om_intervention));