laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33719 )

Change subject: BSC_Tests_ASCI: Add test to seize or release uplink by MSC
......................................................................

BSC_Tests_ASCI: Add test to seize or release uplink by MSC

The MSC will block (seize) or unblock (release) the uplink on one BSC,
if a talker requests or releases uplink on a different BSC. An UPLINK
BUSY or UPLINK FREE message es expected to be sent to the BTS.

Change-Id: I7ebf03662e81f59d76ca8d8fa29f581043053564
---
M bsc/BSC_Tests_ASCI.ttcn
M bsc/MSC_ConnectionHandler.ttcn
2 files changed, 99 insertions(+), 4 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  dexter: Looks good to me, but someone else must approve
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified




diff --git a/bsc/BSC_Tests_ASCI.ttcn b/bsc/BSC_Tests_ASCI.ttcn
index bfc66a9..70fcb4d 100644
--- a/bsc/BSC_Tests_ASCI.ttcn
+++ b/bsc/BSC_Tests_ASCI.ttcn
@@ -95,8 +95,9 @@
        var boolean assign_res := false;
        var boolean assign_fail := false;
        /* Note: This timer is used to receive messages after the expected 
event.
-        * After timeout, the outcome of the test is checked. */
-       timer T := 0.2;
+        * After timeout, the outcome of the test is checked.
+        * The timeout must be large enough, so all the messages pass before 
checking the outcome. */
+       timer T := 1.0;

        /* Wait for the COORD ports to be connected. */
        f_sleep(1.0);
@@ -155,6 +156,19 @@
                if (g_pars.asci_test.vgcs_assign_ok) {
                        T.start;
                }
+               if (g_pars.asci_test.vgcs_uplink_seized or
+                   g_pars.asci_test.vgcs_uplink_release) {
+                       log("VGCS: sending Uplink Seized Cmd");
+                       BSSAP.send(ts_BSSMAP_UplinkSeizedCmd(9, omit, omit, 
omit));
+               }
+               if (g_pars.asci_test.vgcs_uplink_release) {
+                       log("VGCS: sending Uplink Release Cmd");
+                       BSSAP.send(ts_BSSMAP_UplinkRelCmd(9));
+               }
+               if (g_pars.asci_test.vgcs_uplink_seized or
+                   g_pars.asci_test.vgcs_uplink_release) {
+                       T.start;
+               }
                repeat;
                }
        [] COORD.receive(COORD_VGCS_ASSIGN_FAIL) {
@@ -249,6 +263,24 @@
                setverdict(pass);
                return;
        }
+       if (g_pars.asci_test.vgcs_uplink_seized) {
+               if (not uplink_busy) {
+                       setverdict(fail, "VGCS: Uplink not busy as expected!");
+                       return;
+               }
+               log("VGCS: Uplink established+released and uplink marked free 
as expected!");
+               setverdict(pass);
+               return;
+       }
+       if (g_pars.asci_test.vgcs_uplink_release) {
+               if (not uplink_free) {
+                       setverdict(fail, "VGCS: Uplink not free as expected!");
+                       return;
+               }
+               log("VGCS: Uplink established+released and uplink marked free 
as expected!");
+               setverdict(pass);
+               return;
+       }
 }

 /*
@@ -505,6 +537,50 @@
        f_shutdown_helper();
 }

+testcase TC_vgcs_vbs_uplink_seized() runs on test_CT {
+       var MSC_ConnHdlr call_conn, chan_conn;
+       var TestHdlrParams pars := f_gen_test_hdlr_pars();
+
+       f_init(1, true);
+
+       pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
+       pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
+
+       pars.asci_test.vgcs_uplink_seized := true;
+
+       call_conn := f_start_handler(refers(f_tc_vgcs_vbs_setup), pars);
+       chan_conn := f_start_handler(refers(f_tc_asci_assignment), pars);
+       /* Connect COORD ports of both functions. The functions will delay 
before using them. */
+       connect(call_conn:COORD, chan_conn:COORD);
+
+       call_conn.done;
+       chan_conn.done;
+
+       f_shutdown_helper();
+}
+
+testcase TC_vgcs_vbs_uplink_release() runs on test_CT {
+       var MSC_ConnHdlr call_conn, chan_conn;
+       var TestHdlrParams pars := f_gen_test_hdlr_pars();
+
+       f_init(1, true);
+
+       pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
+       pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
+
+       pars.asci_test.vgcs_uplink_release := true;
+
+       call_conn := f_start_handler(refers(f_tc_vgcs_vbs_setup), pars);
+       chan_conn := f_start_handler(refers(f_tc_asci_assignment), pars);
+       /* Connect COORD ports of both functions. The functions will delay 
before using them. */
+       connect(call_conn:COORD, chan_conn:COORD);
+
+       call_conn.done;
+       chan_conn.done;
+
+       f_shutdown_helper();
+}
+
 control {
        execute( TC_vgcs_vbs_setup_only() );
        execute( TC_vgcs_vbs_assignment() );
@@ -512,6 +588,8 @@
        execute( TC_vgcs_vbs_talker_req() );
        execute( TC_vgcs_vbs_talker_est() );
        execute( TC_vgcs_vbs_talker_rel() );
+       execute( TC_vgcs_vbs_uplink_seized() );
+       execute( TC_vgcs_vbs_uplink_release() );
 }


diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index 433dab5..f919fa6 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -758,7 +758,9 @@
        boolean vgcs_assign_fail,
        boolean vgcs_talker_req,
        boolean vgcs_talker_est,
-       boolean vgcs_talker_rel
+       boolean vgcs_talker_rel,
+       boolean vgcs_uplink_seized,
+       boolean vgcs_uplink_release
 };

 type record TestHdlrParams {
@@ -851,7 +853,9 @@
                vgcs_assign_fail := false,
                vgcs_talker_req := false,
                vgcs_talker_est := false,
-               vgcs_talker_rel := false
+               vgcs_talker_rel := false,
+               vgcs_uplink_seized := false,
+               vgcs_uplink_release := false
        }
 }


--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33719
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: I7ebf03662e81f59d76ca8d8fa29f581043053564
Gerrit-Change-Number: 33719
Gerrit-PatchSet: 3
Gerrit-Owner: jolly <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to