pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38588?usp=email )
(
1 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: hnbgw: Use g_pars.mgcp_pars directly during RAB CS setup ......................................................................
hnbgw: Use g_pars.mgcp_pars directly during RAB CS setup
Change-Id: I1f699e197e29f912ad06378f10563063aa291af3 --- M hnbgw/ConnHdlr.ttcn M hnbgw/HNBGW_Tests.ttcn 2 files changed, 28 insertions(+), 28 deletions(-)
Approvals: pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/hnbgw/ConnHdlr.ttcn b/hnbgw/ConnHdlr.ttcn index cc798e7..adbfcae 100644 --- a/hnbgw/ConnHdlr.ttcn +++ b/hnbgw/ConnHdlr.ttcn @@ -158,7 +158,7 @@ integer cn_idx, hexstring imsi, boolean ps_domain, - MgcpParameters mgcp_pars optional, + MgcpParameters mgcp_pars, HnbConfig hnb optional, boolean expect_separate_sccp_cr, integer tx_sccp_cr_data_len, @@ -567,14 +567,14 @@ return mgcp_resp; }
-function f_rab_ass_req_cs(inout MgcpParameters pars) runs on ConnHdlr { +function f_rab_ass_req_cs() runs on ConnHdlr { var MgcpCommand mgcp_cmd; var RANAP_PDU tx; var template RAB_SetupOrModifyList rab_sml; timer T := 5.0;
/* Send RAB Assignment Request */ - 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)); + rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(g_pars.mgcp_pars.cn_rtp_ip), t_RAB_binding_port(g_pars.mgcp_pars.cn_rtp_port)); tx := valueof(ts_RANAP_RabAssReq(rab_sml)); BSSAP.send(tx); T.start; @@ -583,7 +583,7 @@ alt { [] MGCP.receive(tr_CRCX) -> value mgcp_cmd { log("CRCX1", mgcp_cmd); - var template MgcpResponse mgcp_rsp := f_handle_crcx(pars, mgcp_cmd); + var template MgcpResponse mgcp_rsp := f_handle_crcx(g_pars.mgcp_pars, mgcp_cmd); MGCP.send(valueof(mgcp_rsp)); } [] T.timeout { @@ -593,77 +593,77 @@ T.stop;
/* 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.mgw_conn_ran.mgw_rtp_ip), t_RAB_binding_port(pars.mgw_conn_ran.mgw_rtp_port)); + rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_ip), t_RAB_binding_port(g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_port)); tx := valueof(ts_RANAP_RabAssReq(rab_sml));
f_rua_expect(tx); }
-friend function f_rab_ass_resp_cs(inout MgcpParameters pars) runs on ConnHdlr { +friend function f_rab_ass_resp_cs() runs on ConnHdlr { var MgcpCommand mgcp_cmd; var RANAP_PDU tx; var template RAB_SetupOrModifiedList rab_smdl;
/* 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)); + rab_smdl := ts_RAB_SMdL(t_RAB_id(23), f_ts_RAB_TLA(g_pars.mgcp_pars.hnb_rtp_ip), t_RAB_binding_port(g_pars.mgcp_pars.hnb_rtp_port)); tx := valueof(ts_RANAP_RabAssResp(rab_smdl)); RUA.send(tx);
interleave { /* Expect MDCX with IP/port from RAB Assignment Response */ - [] MGCP.receive(tr_MDCX(tr_SDP(pars.hnb_rtp_ip, pars.hnb_rtp_port))) -> value mgcp_cmd { + [] MGCP.receive(tr_MDCX(tr_SDP(g_pars.mgcp_pars.hnb_rtp_ip, g_pars.mgcp_pars.hnb_rtp_port))) -> value mgcp_cmd { var HostName mgw_rtp_ip; var boolean exp_rua_rab_reass := false; log("MDCX1", mgcp_cmd); - if (ispresent(pars.mgw_conn_ran.mgw_rtp_ip_mdcx)) { - mgw_rtp_ip := pars.mgw_conn_ran.mgw_rtp_ip_mdcx; - if (pars.mgw_conn_ran.mgw_rtp_ip != pars.mgw_conn_ran.mgw_rtp_ip_mdcx) { + if (ispresent(g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_ip_mdcx)) { + mgw_rtp_ip := g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_ip_mdcx; + if (g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_ip != g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_ip_mdcx) { exp_rua_rab_reass := true; } } else { - mgw_rtp_ip := pars.mgw_conn_ran.mgw_rtp_ip; + mgw_rtp_ip := g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_ip; }
/* Verify SDP of MDCX */ - var SDP_Message sdp := valueof(ts_SDP(mgw_rtp_ip, mgw_rtp_ip, hex2str(pars.mgcp_call_id), "42", pars.mgw_conn_ran.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_ran.mgcp_connection_id, sdp); + var SDP_Message sdp := valueof(ts_SDP(mgw_rtp_ip, mgw_rtp_ip, hex2str(g_pars.mgcp_pars.mgcp_call_id), "42", g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_port, + { int2str(g_pars.mgcp_pars.rtp_payload_type) }, { valueof(ts_SDP_rtpmap(g_pars.mgcp_pars.rtp_payload_type, g_pars.mgcp_pars.rtp_sdp_format)), valueof(ts_SDP_ptime(20)) } )); + var template MgcpResponse mgcp_rsp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_pars.mgcp_pars.mgw_conn_ran.mgcp_connection_id, sdp); MGCP.send(valueof(mgcp_rsp));
/* If IP address changed, we expect HNBGW to Modify the RAB through RAB-Ass-Req: */ if (exp_rua_rab_reass) { var template RAB_SetupOrModifyList rab_sml; /* Expect RAB Assignment Request with IP/port from MDCX ACK via Iuh */ - rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(pars.mgw_conn_ran.mgw_rtp_ip_mdcx), t_RAB_binding_port(pars.mgw_conn_ran.mgw_rtp_port)); + rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_ip_mdcx), t_RAB_binding_port(g_pars.mgcp_pars.mgw_conn_ran.mgw_rtp_port)); tx := valueof(ts_RANAP_RabAssReq(rab_sml));
f_rua_expect(tx); /* 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)); + rab_smdl := ts_RAB_SMdL(t_RAB_id(23), f_ts_RAB_TLA(g_pars.mgcp_pars.hnb_rtp_ip), t_RAB_binding_port(g_pars.mgcp_pars.hnb_rtp_port)); tx := valueof(ts_RANAP_RabAssResp(rab_smdl)); RUA.send(tx); /* This shouldn't trigger any MGCP, since nothing changed on the HNB IP side. Continue below. */ } } /* Handle CRCX for second leg of endpoint, answer with IP/port */ - [] MGCP.receive(tr_CRCX(pars.mgcp_ep, tr_SDP(pars.cn_rtp_ip, pars.cn_rtp_port))) -> value mgcp_cmd { + [] MGCP.receive(tr_CRCX(g_pars.mgcp_pars.mgcp_ep, tr_SDP(g_pars.mgcp_pars.cn_rtp_ip, g_pars.mgcp_pars.cn_rtp_port))) -> value mgcp_cmd { log("CRCX2", mgcp_cmd); /* Verify SDP of CRCX */ - var template MgcpResponse mgcp_rsp := f_handle_crcx(pars, mgcp_cmd); + var template MgcpResponse mgcp_rsp := f_handle_crcx(g_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.mgw_conn_cn.mgw_rtp_ip), t_RAB_binding_port(pars.mgw_conn_cn.mgw_rtp_port)); + rab_smdl := ts_RAB_SMdL(t_RAB_id(23), f_ts_RAB_TLA(g_pars.mgcp_pars.mgw_conn_cn.mgw_rtp_ip), t_RAB_binding_port(g_pars.mgcp_pars.mgw_conn_cn.mgw_rtp_port)); tx := valueof(ts_RANAP_RabAssResp(rab_smdl));
f_bssap_expect(tx); }
-function f_create_rab_cs(inout MgcpParameters pars) runs on ConnHdlr { - f_rab_ass_req_cs(pars); - f_rab_ass_resp_cs(pars); +function f_create_rab_cs() runs on ConnHdlr { + f_rab_ass_req_cs(); + f_rab_ass_resp_cs(); }
altstep as_mgcp_dlcx() runs on ConnHdlr { diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 6c16cec..3d0907a 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.ttcn @@ -994,7 +994,7 @@ }; f_statsd_expect(expect);
- f_create_rab_cs(g_pars.mgcp_pars); + f_create_rab_cs();
expect := { {name := hnb0_ctr_prefix & "ranap.cs.rab_act.req", mtype := "c", min := 1, max := 1}, @@ -1052,7 +1052,7 @@ }; f_statsd_expect(expect);
- f_rab_ass_req_cs(g_pars.mgcp_pars); + f_rab_ass_req_cs();
/* Send RAB failed list in response */ tx := valueof(ts_RANAP_RabAssResp(rab_fl := ts_RAB_FL(t_RAB_id(23), g_pars.rab_rel_cause))); @@ -1100,7 +1100,7 @@ tx := f_build_initial_ue(g_pars); f_iuh2iu_connect(tx);
- f_create_rab_cs(g_pars.mgcp_pars); + f_create_rab_cs();
var charstring ctr_name; if (g_pars.rab_rel_cause == valueof(ts_RanapCause_nas_normal)) { @@ -1340,7 +1340,7 @@ tx := f_build_initial_ue(g_pars); f_iuh2iu_connect(tx);
- f_create_rab_cs(g_pars.mgcp_pars); + f_create_rab_cs();
RUA.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted)); BSSAP.receive(tr_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted)); @@ -2391,7 +2391,7 @@ tx := f_build_initial_ue(g_pars); f_iuh2iu_connect(tx);
- f_create_rab_cs(g_pars.mgcp_pars); + f_create_rab_cs();
/* Now send a second RAB Assignment with different subflows and omitting transportLayerInformation. (Assuming * the first RAB Assignment's transportLayerInformation remains in use unchanged.) */