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


Change subject: BSC_Test_ASCI: Add Talker detect with link fail test
......................................................................

BSC_Test_ASCI: Add Talker detect with link fail test

The talker requests uplink. Instead of receiving link establishment from
the BTS, the BSC receives a link failure. The MSC expects to receive an
UPLINK RELEASE INDICATION, caused by radio link failure.

Change-Id: Ied56a6bdc0bfa541b1419e63e9e209ed20af804c
---
M bsc/BSC_Tests_ASCI.ttcn
M bsc/MSC_ConnectionHandler.ttcn
2 files changed, 64 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/53/33853/1

diff --git a/bsc/BSC_Tests_ASCI.ttcn b/bsc/BSC_Tests_ASCI.ttcn
index 70fcb4d..b4b0173 100644
--- a/bsc/BSC_Tests_ASCI.ttcn
+++ b/bsc/BSC_Tests_ASCI.ttcn
@@ -92,6 +92,7 @@
        var boolean uplink_req := false;
        var boolean uplink_req_conf := false;
        var boolean uplink_rel_ind := false;
+       var boolean uplink_rel_ind_failure := false;
        var boolean assign_res := false;
        var boolean assign_fail := false;
        /* Note: This timer is used to receive messages after the expected 
event.
@@ -150,6 +151,14 @@
                }
                repeat;
                }
+       [] 
BSSAP.receive(tr_BSSMAP_UplinkRelInd(GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, 
omit)) -> value rx_bssap {
+               log("VGCS: received uplink rel ind, caused by failure");
+               uplink_rel_ind_failure := true;
+               if (g_pars.asci_test.vgcs_talker_fail) {
+                       T.start;
+               }
+               repeat;
+               }
        [] COORD.receive(COORD_VGCS_ASSIGN_RES) {
                log("VGCS: got assignment result at call control");
                assign_res := true;
@@ -236,6 +245,19 @@
                setverdict(pass);
                return;
        }
+       if (g_pars.asci_test.vgcs_talker_fail) {
+               if (not uplink_rel_ind_failure) {
+                       setverdict(fail, "VGCS: No uplink release indication as 
expected!");
+                       return;
+               }
+               if (not uplink_free) {
+                       setverdict(fail, "VGCS: Uplink not free as expected!");
+                       return;
+               }
+               log("VGCS: Uplink release and uplink marked free as expected!");
+               setverdict(pass);
+               return;
+       }
        if (g_pars.asci_test.vgcs_talker_est) {
                if (not uplink_req_conf) {
                        setverdict(fail, "VGCS: No uplink request confirm as 
expected!");
@@ -343,11 +365,16 @@
                log("VGCS: got assignment result on channel");
                COORD.send(COORD_VGCS_ASSIGN_RES);
                if (g_pars.asci_test.vgcs_talker_req or
+                   g_pars.asci_test.vgcs_talker_fail or
                    g_pars.asci_test.vgcs_talker_est or
                    g_pars.asci_test.vgcs_talker_rel) {
                        log("VGCS: sending talker det");
                        RSL.send(ts_RSL_TALKER_DET(g_chan_nr));
                }
+               if (g_pars.asci_test.vgcs_talker_fail) {
+                       log("VGCS: sending RSL failure ind");
+                       RSL.send(ts_RSL_CONN_FAIL_IND(g_chan_nr, 
RSL_ERR_TALKER_ACC_FAIL));
+               }
                if (g_pars.asci_test.vgcs_talker_est or
                    g_pars.asci_test.vgcs_talker_rel) {
                        log("VGCS: sending RSL etabish ind");
@@ -493,6 +520,28 @@
        f_shutdown_helper();
 }

+testcase TC_vgcs_vbs_talker_fail() 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_talker_fail := 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_talker_est() runs on test_CT {
        var MSC_ConnHdlr call_conn, chan_conn;
        var TestHdlrParams pars := f_gen_test_hdlr_pars();
@@ -586,6 +635,7 @@
        execute( TC_vgcs_vbs_assignment() );
        execute( TC_vgcs_vbs_assignment_fail() );
        execute( TC_vgcs_vbs_talker_req() );
+       execute( TC_vgcs_vbs_talker_fail() );
        execute( TC_vgcs_vbs_talker_est() );
        execute( TC_vgcs_vbs_talker_rel() );
        execute( TC_vgcs_vbs_uplink_seized() );
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index f919fa6..0c62003 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -757,6 +757,7 @@
        boolean vgcs_assign_ok,
        boolean vgcs_assign_fail,
        boolean vgcs_talker_req,
+       boolean vgcs_talker_fail,
        boolean vgcs_talker_est,
        boolean vgcs_talker_rel,
        boolean vgcs_uplink_seized,

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

Reply via email to