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));

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27116
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: I95625796ee3c75e36637794018e5db27d022dddb
Gerrit-Change-Number: 27116
Gerrit-PatchSet: 1
Gerrit-Owner: daniel <[email protected]>
Gerrit-MessageType: newchange

Reply via email to