daniel has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27115 )


Change subject: hnbgw: Check for DLCX on Iu Release as well
......................................................................

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

Reply via email to