BSC_Tests: Re-wire MSC_ConnectionHandler to handle BSSAP and RSL
Using the MSC_ConnHdlr component, we can now handle the BSSAP (MSC)
and RSL (BTS) side of a single radio channel.
Change-Id: I00dcf1e4eaa7f133788cc01fbbcd4148a0258ef4
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index c824415..2e43375 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1254,6 +1254,55 @@
/* TODO: Test OML link drop causes counter increment */
+/***********************************************************************
+ * "New world" test cases using RSL_Emulation + BSSMAP_Emulation
+ ***********************************************************************/
+
+import from BSSMAP_Emulation all;
+import from RSL_Emulation all;
+import from MSC_ConnectionHandler all;
+
+type function void_fn(charstring id) runs on MSC_ConnHdlr;
+
+/* helper function to create, connect and start a MSC_ConnHdlr component */
+function f_start_handler(void_fn fn, charstring id) runs on test_CT return MSC_ConnHdlr {
+ var MSC_ConnHdlr vc_conn;
+
+ vc_conn := MSC_ConnHdlr.create(id);
+ connect(vc_conn:BSSMAPEM, vc_BSSMAP:PROC);
+ connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT);
+ connect(vc_conn:BSSAP, vc_BSSMAP:CLIENT);
+ vc_conn.start(derefers(fn)(id));
+ return vc_conn;
+}
+
+
+private function f_ass(charstring id) runs on MSC_ConnHdlr {
+ var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+
+ var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?);
+ var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
+ var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
+ const OCT8 kc := '0001020304050607'O;
+
+ ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
+ ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
+ ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
+ valueof(ts_BSSMAP_IE_EncrInfo(kc, '02'O));
+
+ f_establish_fully(pars, ass_cmd, exp_compl);
+}
+
+testcase TC_hdlr() runs on test_CT {
+ var MSC_ConnHdlr vc_conn;
+
+ f_init(true);
+ f_sleep(1.0);
+
+ vc_conn := f_start_handler(refers(f_ass), "foo");
+ vc_conn.done;
+}
+
control {
execute( TC_ctrl_msc_connection_status() );
execute( TC_ctrl() );