jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33856 )
Change subject: BSC_Test_ASCI: Add Talker detect with UPLINK REJECT COMMAND test ......................................................................
BSC_Test_ASCI: Add Talker detect with UPLINK REJECT COMMAND test
The talker requests uplink. The UPLINK REQUEST is rejected by the MSC. The uplink is marked free again.
Change-Id: Iba4dd21a69d49e6a8508b15b823ffccc7f0dafc9 --- M bsc/BSC_Tests_ASCI.ttcn M bsc/MSC_ConnectionHandler.ttcn 2 files changed, 57 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/33856/1
diff --git a/bsc/BSC_Tests_ASCI.ttcn b/bsc/BSC_Tests_ASCI.ttcn index 78b4902..a97e0db 100644 --- a/bsc/BSC_Tests_ASCI.ttcn +++ b/bsc/BSC_Tests_ASCI.ttcn @@ -146,9 +146,15 @@ log("VGCS: delay uplink req ack"); f_delay_msc(); } - log("VGCS: sending uplink req ack"); - BSSAP.send(ts_BSSMAP_UplinkReqAck(omit)); - if (g_pars.asci_test.vgcs_talker_req) { + if (g_pars.asci_test.vgcs_uplink_reject) { + log("VGCS: sending uplink rej cmd"); + BSSAP.send(ts_BSSMAP_UplinkRejCmd(9)); + } else { + log("VGCS: sending uplink req ack"); + BSSAP.send(ts_BSSMAP_UplinkReqAck(omit)); + } + if (g_pars.asci_test.vgcs_talker_req or + g_pars.asci_test.vgcs_uplink_reject) { T.start; } repeat; @@ -327,6 +333,15 @@ setverdict(pass); return; } + if (g_pars.asci_test.vgcs_uplink_reject) { + if (not uplink_free) { + setverdict(fail, "VGCS: Uplink not free as expected!"); + return; + } + log("VGCS: Uplink rejected and uplink marked free as expected!"); + setverdict(pass); + return; + } }
/* @@ -402,7 +417,8 @@ 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) { + g_pars.asci_test.vgcs_talker_rel or + g_pars.asci_test.vgcs_uplink_reject) { log("VGCS: sending talker det"); RSL.send(ts_RSL_TALKER_DET(g_chan_nr)); } @@ -706,6 +722,28 @@ f_shutdown_helper(); }
+testcase TC_vgcs_vbs_uplink_reject() 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_reject := 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_seized() runs on test_CT { var MSC_ConnHdlr call_conn, chan_conn; var TestHdlrParams pars := f_gen_test_hdlr_pars(); @@ -761,6 +799,7 @@ execute( TC_vgcs_vbs_talker_est_late_msc() ); execute( TC_vgcs_vbs_talker_rel() ); execute( TC_vgcs_vbs_talker_rel_late_msc() ); + execute( TC_vgcs_vbs_uplink_reject() ); 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 b7760d0..269fb79 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -760,6 +760,7 @@ boolean vgcs_talker_fail, boolean vgcs_talker_est, boolean vgcs_talker_rel, + boolean vgcs_uplink_reject, boolean vgcs_uplink_seized, boolean vgcs_uplink_release, boolean delay_bts, @@ -858,6 +859,7 @@ vgcs_talker_fail := false, vgcs_talker_est := false, vgcs_talker_rel := false, + vgcs_uplink_reject := false, vgcs_uplink_seized := false, vgcs_uplink_release := false, delay_bts := false,