bsc: Introduce test TC_ctrl_location
Related: OS#2012
Change-Id: I3640f6889e3b6adc3b4601082f948543c64a2fe3
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index c3275e1..00995bf 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -80,6 +80,8 @@
/* array of per-BTS RSL test ports */
port IPA_RSL_PT IPA_RSL[NUM_BTS];
port IPA_CODEC_PT IPA; /* Required for compilation of TC_rsl_unknown_unit_id() */
+ /* CTRL muxed over IPA in SCCPlite conn BSC<->MSC (or BSC-NAT) */
+ port IPA_CTRL_PT SCCPLITE_IPA_CTRL;
var MGCP_Emulation_CT vc_MGCP;
port TELNETasp_PT BSCVTY;
@@ -350,6 +352,7 @@
var RanOps ranops := MSC_RanOps;
ranops.use_osmux := g_osmux_enabled;
f_ran_adapter_init(g_bssap, mp_bssap_cfg, "VirtMSC", ranops);
+ connect(self:SCCPLITE_IPA_CTRL, g_bssap.vc_RAN:CTRL_CLIENT);
f_ran_adapter_start(g_bssap);
} else {
f_ran_adapter_init(g_bssap, mp_bssap_cfg, "VirtMSC", omit);
@@ -1204,6 +1207,32 @@
setverdict(pass);
}
+/* Verify that Upon receival of SET "location", BSC forwards a TRAP
+ "location-state" over the SCCPlite IPA conn */
+testcase TC_ctrl_location() runs on test_CT {
+ var MSC_ConnHdlr vc_conn;
+ var integer bts_nr := 0;
+
+ f_init(1, true);
+ f_sleep(1.0);
+
+ f_ctrl_set_bts(IPA_CTRL, bts_nr, "location", "1234567,fix3d,0.340000,0.560000,0.780000");
+ f_ctrl_exp_trap(SCCPLITE_IPA_CTRL, "bts." & int2str(bts_nr) & ".location-state",
+ "1234567,fix3d,0.340000,0.560000,0.780000,operational,unlocked,on,001,01");
+
+ f_ctrl_set(SCCPLITE_IPA_CTRL, "rf_locked", "1");
+ f_sleep(2.0);
+
+ f_ctrl_set_bts(IPA_CTRL, bts_nr, "location", "1234888,fix3d,0.350000,0.570000,0.790000");
+ f_ctrl_exp_trap(SCCPLITE_IPA_CTRL, "bts." & int2str(bts_nr) & ".location-state",
+ "1234888,fix3d,0.350000,0.570000,0.790000,operational,locked,off,001,01");
+
+ /* should match the one from config */
+ f_ctrl_set(SCCPLITE_IPA_CTRL, "rf_locked", "0");
+
+ setverdict(pass);
+}
+
function f_bssap_tx_ud(template PDU_BSSAP bssap) runs on test_CT {
BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, bssap));
}
@@ -3987,6 +4016,9 @@
execute( TC_ctrl_msc_connection_status() );
execute( TC_ctrl_msc0_connection_status() );
execute( TC_ctrl() );
+ if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_SCCPlite_SERVER) {
+ execute( TC_ctrl_location() );
+ }
/* RSL DCHAN Channel ACtivation / Deactivation */
execute( TC_chan_act_noreply() );